在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文件來查看記錄的日志。