在 IPTables 中记录丢弃的数据包?

问题描述 投票:0回答:2

我正在尝试在 iptables 中记录一些来自不断攻击我的服务器的恶意 IP 地址的丢弃数据包。

来自该恶意 IP 的所有内容都会被删除,我在 Web 服务器日志中再也看不到它了,这是一件好事。使用 tcpdump,我可以看到流量仍然来自该 IP,并且我想在 iptables 中记录丢弃的数据包,因为我知道它正在工作并且它们正在被丢弃。

我有一些 iptables 规则,但我不知道为什么日志记录不起作用。我确信我错过了一些东西。

-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
**-A INPUT -s 80.82.65.0/24 -j DROP**
-A INPUT -s 167.74.0.0/18 -j DROP
-A INPUT -s 167.87.0.0/16 -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -j LOGGING
-A FORWARD -m state --state INVALID -j DROP
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -m state --state INVALID -j DROP
-A LOGGING -s 80.82.65.0/24 -m limit --limit 5/min -j LOG --log-prefix "iptables dropped packets " --log-level 7
$ grep iptables /etc/rsyslog.conf 
kern.debug                      /var/log/iptables.log
iptables
2个回答
12
投票

您的配置问题在于,指定应丢弃数据包的规则先于指定应在记录数据包的

LOGGING
链中处理该数据包的规则。
一旦
iptables
将数据包与第一条规则(
DROP
操作的规则)匹配,它就会停止搜索并且不会到达其他规则。

我会改变规则的顺序并重写它们如下:

iptables -N LOGANDDROP
iptables -A INPUT -s 80.82.65.0/24 -j LOGANDDROP
iptables -A LOGANDDROP -m limit --limit 5/min -j LOG --log-prefix "iptables dropped packets " --log-level 7
iptables -A LOGANDDROP -j DROP

为了完整起见,我将建议一个替代解决方案,该解决方案不涉及创建新的临时链:

iptables -A INPUT -s 80.82.65.0/24 -m limit --limit 5/min -j LOG --log-prefix "iptables dropped packets " --log-level 7
iptables -A INPUT -s 80.82.65.0/24 -j DROP

此方法基于以下警告。如前所述,

iptables
默认行为是查找手头包的第一个匹配项,一旦找到,就停止搜索其他匹配项。但是,此规则有一个例外:

  • 与指定
    LOG
    操作的规则进行匹配不会导致
    iptables
    停止搜索其他适用规则。

虽然这个解决方案更短,因此乍一看似乎更有吸引力,但不推荐它,因为它不够健壮。一旦有多个源需要相同的处理,则应为每个新源复制这两个配置行(而不是在先前的解决方案中仅添加一行)。此外,一旦完成,更改日志记录详细信息将需要更改多个规则(而不是先前解决方案中的单个规则)。
我还认为,由于该解决方案依赖于上述警告,因此不太容易遵循和理解,这是配置时要考虑的重要因素

iptables
,但这只是我个人的意见。

注意 - 请参阅 这个有用的链接,获取有关

iptables
的简明教程。


0
投票

当然,我没有在日志中看到任何结果,但这一行已被接受。

iptables -A INPUT -s 80.82.65.0/24 -m limit --limit 5/min -j LOG --log-prefix “iptables 丢弃的数据包” --log-level 4

© www.soinside.com 2019 - 2024. All rights reserved.