iptables 在 portscan 预防中查看 ip

iptables 在 portscan 预防中查看 ip

我确实有以下 iptables 规则来防止服务器上的端口扫描:

/sbin/iptables -A INPUT -m state --state NEW -m set ! --match-set scanned_ports src,dst -m hashlimit --hashlimit-above 1/hour --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name portscan --hashlimit-htable-expire 10000 -j SET --add-set port_scanners src --exist
/sbin/iptables -A INPUT -m state --state NEW -m set --match-set port_scanners src -j DROP
/sbin/iptables -A INPUT -m state --state NEW -j SET --add-set scanned_ports src,dst

如何查看当前哪些 ip 被锁定?我想编写一个脚本来记录任何尝试进行端口扫描的 ip。

谢谢

答案1

日志记录内置于 iptables 中。查找 iptables LOGGING 设置起来相当容易。像这样的东西会抓取所有丢弃的 IP 地址并放入 /var/log/messages 中。

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

默认情况下,它将转到 /var/log/messages,但您可以通过将以下内容添加到 /etc/syslog.conf 来重定向到其他内容,然后触摸 /var/log/dropped.log

kern.warning /var/log/dropped.log

相关内容