在 CentOS 系统中,使用 iptables 实现日志记录可以通过将数据包重定向到一个特定的日志前缀,然后使用 journalctl 或其他日志工具来查看这些日志。以下是具体步骤:
创建一个新的链: 首先,创建一个新的自定义链,用于处理日志记录。
sudo iptables -N LOGGING
将所有流量跳转到自定义链: 将所有进入的流量跳转到新创建的自定义链。
sudo iptables -A INPUT -j LOGGING
在自定义链中记录日志:
在自定义链中,使用 LOG 目标记录日志,并指定日志前缀和日志级别。
sudo iptables -A LOGGING -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
这里的 --log-prefix 参数用于在日志消息前添加一个前缀,便于识别。--log-level 参数用于设置日志级别,4 表示警告级别。
拒绝不符合条件的流量: 如果你希望在记录日志后拒绝某些流量,可以在自定义链中添加相应的规则。
sudo iptables -A LOGGING -p tcp --dport 80 -j DROP
这条规则会拒绝所有进入的 TCP 流量,目标端口为 80(HTTP)。
保存 iptables 规则:
保存 iptables 规则,以确保它们在系统重启后仍然有效。
sudo service iptables save
或者使用 iptables-save 和 iptables-restore 命令:
sudo iptables-save > /etc/sysconfig/iptables
查看日志:
使用 journalctl 查看日志。你可以使用以下命令来过滤和查看与 IPTables-Dropped 相关的日志条目。
sudo journalctl -u iptables -f | grep "IPTables-Dropped"
这里的 -u iptables 参数用于指定查看 iptables 服务的日志,-f 参数用于实时跟踪日志。
通过以上步骤,你可以在 CentOS 系统中使用 iptables 实现日志记录,并通过 journalctl 查看这些日志。