Centos
在 centos 7 上記錄 iptables 事件
我的centos 7 上有iptables。我的firewalld 已禁用。如何記錄我的 iptables 事件?在 debian 上它是 dmesg 選項,但我不知道如何在 centos 上設置它。
我想記錄我所有的 iptables 事件。沒有具體規定。
我找到了最適合我的解決方案:警告級別:
iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 4 iptables -A FORWARD -j LOG --log-prefix "BAD_FORWARD: " --log-level 4 iptables -A OUTPUT -j LOG --log-prefix "BAD_OUTPUT: " --log-level 4
調試級別:
iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 7 iptables -A FORWARD -j LOG --log-prefix "BAD_FORWARD: " --log-level 7 iptables -A OUTPUT -j LOG --log-prefix "BAD_OUTPUT: " --log-level 7
日誌儲存在:
/var/log/messages
樣本輸出:
Aug 4 13:22:40 centos kernel: BAD_INPUT: IN= OUT=em1 SRC=192.168.1.23 DST=192.168.1.20 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=59228 SEQ=2 Aug 4 13:23:00 centos kernel: BAD_INPUT: IN=em1 OUT= MAC=a2:be:d2:ab:11:af:e2:f2:00:00 SRC=192.168.2.115 DST=192.168.1.23 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=9434 DF PROTO=TCP SPT=58428 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0
當數據包匹配
iptables ... -j LOG
規則時,會生成核心日誌消息。您可以使用選項指定消息的嚴重級別,--log-level <level>
其中<level>
可以是標準系統日誌級別標識符之一:emerg
、alert
、crit
、error
、warning
、notice
或。info``debug
這些日誌消息被處理
rsyslog
:如果嚴重級別足夠低,rsyslog
可能會完全丟棄這些消息。由於 iptables 日誌消息來自核心,因此它們的日誌類別將始終為kern
. 因此/etc/rsyslog.conf
,請查看要處理的消息的最低嚴重性級別kern.*
,以及它們將儲存到哪個日誌文件中。iptables -j LOG
然後為您的規則設置適當的嚴重性級別。或者使用
iptables ... -j LOG --log-prefix <prefix>
選項為 iptables 消息添加可辨識的前綴,然後使用 的高級功能rsyslog
將 iptables 消息寫入單獨的日誌文件。