我正在尝试从恶意IP地址中记录iptables中的一些丢弃数据包,这些地址一直在袭击我的服务器。
来自此恶意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丢弃数据包”--log-level 7
$ grep iptables /etc/rsyslog.conf
kern.debug /var/log/iptables.log
答案 0 :(得分:5)
您的配置存在的问题是,指定应丢弃数据包的规则先于规则指定应在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
的简明教程,请参阅this useful link。
答案 1 :(得分:0)
我当然没有在日志中看到任何结果,但是接受了这一行。
iptables -A INPUT -s 80.82.65.0/24 -m limit --limit 5 / min -j LOG --log-prefix“iptables丢弃数据包”--log-level 4