在Debian系统中,使用iptables进行日志记录可以通过以下步骤实现:
sudo apt-get update
sudo apt-get install iptables
sudo touch /var/log/iptables.log
sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH: "
sudo iptables -A OUTPUT -p tcp --sport 22 -j LOG --log-prefix "SSH: "
这里,-A
表示追加规则,INPUT
和OUTPUT
分别表示输入和输出链,-p tcp
表示使用TCP协议,--dport 22
和--sport 22
分别表示目标端口和源端口为22(SSH默认端口),-j LOG
表示将匹配的数据包记录到日志中,--log-prefix
用于在日志条目前添加自定义前缀,以便于识别。
sudo iptables-save > /etc/iptables/rules.v4
sudo nano /etc/network/if-pre-up.d/iptables
将以下内容粘贴到文件中,然后保存并关闭文件:
#!/bin/sh
# Load iptables rules
iptables-restore < /etc/iptables/rules.v4
为文件添加可执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
现在,每次系统启动时,iptables规则都会自动加载,包括日志记录规则。
sudo nano /etc/rsyslog.conf
在文件末尾添加以下行:
:msg, contains, "SSH: " -/var/log/iptables.log
& stop
这里,:msg, contains, "SSH: "
表示匹配包含"SSH: "前缀的日志消息,-/var/log/iptables.log
表示将这些消息记录到/var/log/iptables.log文件中,& stop
表示在记录日志后停止进一步处理这些消息。
保存并关闭文件,然后重启rsyslog服务以应用更改:
sudo systemctl restart rsyslog
现在,iptables的日志记录已经配置完成。你可以通过查看/var/log/iptables.log文件来查看记录的日志。