iptables防火牆如何記錄日志


當你的iptables規則無法正常工作時,可能希望記錄iptables的數據包以進行故障排除。本文介紹了如何使用iptables的日志記錄模塊。
例如:記錄所有ssh服務的登錄的日志

首先,我們需要了解如何將所有的iptables的INPUT鏈數據包記錄到/var/log/messages中。如果你已經有一些iptables規則了,那么將記錄日志的規則放在這些規則的頂部,如果放在規則的后面,將不會記錄日志。

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 4/min -j LOG --log-prefix "Iptables-SSH-IN: " --log-level 4
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

iptables防火牆如何記錄日志iptables防火牆如何記錄日志
在上面的示例中,它執行以下操作:

  • 第一條規則記錄所有訪問目的端口為22的,將記錄日志,限制日志每分鍾4條,日志前綴為“Iptables-SSH-IN: ”,日志記錄級別為Warning。
  • 第二條規則允許所有源地址的新連接訪問目的端口22。
  • 第三條規則允許所有已建立的連接訪問本機。
  • 設置INPUT鏈的默認規則為DROP。

上面第一條規則解釋:

  • -m limit:使用limit模塊。使用此選項,可以使用--limit選項限制訪問速率。
  • --limit 4/min:這表示記錄的最大平均訪問速率。在此示例中,對於類似的數據包,它將日志記錄限制為每分鍾4個。還可以設置為2/second, 2/minute, 2/hour, 2/day。
  • -j LOG:這表示此數據包的目標是LOG。即寫入日志文件。
  • --log-prefix "Iptables-SSH-IN: ” 可以指定任何日志前綴,這些前綴將寫入到/var/log/messages日志文件中。
  • --log-level 4這是標准的系統日志級別。4是警告(warning)。可以使用0到7之間的數字。0是emerg,1是alert,2是crit,3是err,4是warning,5是notice,6是info,7是debug。

www.donews.com/news/detail/4/2977560.html
www.techweb.com.cn/prnews/qiyenews/archives/46669.html

修改iptables日志存放位置

默認情況下,iptables將使用/var/log/messages記錄所有消息。如果要將其更改為自己的定制日志文件,將下面命令添加到/etc/rsyslog.conf中。前提需要安裝rsyslog服務:

# 安裝rsyslog服務
[root@localhost ~]# yum -y install rsyslog
# 設置開機啟動、並立即啟動
[root@localhost ~]# systemctl enable rsyslog --now
# 編輯/etc/rsyslog.conf文件,添加下面內容到文件底部
[root@localhost ~]# vim /etc/rsyslog.conf 
kern.warning /var/log/iptables.log

iptables防火牆如何記錄日志iptables防火牆如何記錄日志
查看剛才設置的日志文件:

[root@localhost ~]# ll -h /var/log/iptables.log 
-rw-------. 1 root root 2.0K Feb  9 10:46 /var/log/iptables.log
[root@localhost ~]# tail -f /var/log/iptables.log 

iptables防火牆如何記錄日志iptables防火牆如何記錄日志

如何讀取IPTables日志?
[root@localhost ~]# cat /var/log/iptables.log 

Feb  9 10:46:20 localhost kernel: Iptables-SSH-IN: IN=ens160 OUT= MAC=00:0c:29:ae:7d:09:00:50:56:c0:00:08:08:00 SRC=192.168.43.1 DST=192.168.43.137 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=49928 DF PROTO=TCP SPT=16512 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
  • Iptables-SSH-IN: 通過指定--log-prefix選項,這是我們在日志記錄中使用的前綴
  • IN=ens160 OUT=: 這表示從該接口傳入數據包。對於傳出數據包將為空。
  • IN= OUT=: 這表示從該接口傳出數據包。對於傳入的數據包將為空。
  • MAC=: 00:0c:29:ae:7d:09小時目標MAC地址,:00:50:56:c0:00:08為源MAC地址,08:00為上層協議代碼,表示IP協議。
  • SRC=: 源IP地址
  • DST=:目的IP地址
  • LEN=: 數據包的長度
  • PROTO=: 使用什么類型協議
  • SPT=: 源端口
  • DPT=: 目標端口
總結

當你的iptables規則無法正常工作時,可能希望記錄iptables的數據包以進行故障排除。本文介紹了如何使用iptables的日志記錄模塊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM