Centos

在 centos 7 上記錄 iptables 事件

  • August 16, 2021

我的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>可以是標準系統日誌級別標識符之一:emergalertcriterrorwarningnotice或。info``debug

這些日誌消息被處理rsyslog:如果嚴重級別足夠低,rsyslog可能會完全丟棄這些消息。由於 iptables 日誌消息來自核心,因此它們的日誌類別將始終為kern. 因此/etc/rsyslog.conf,請查看要處理的消息的最低嚴重性級別kern.*,以及它們將儲存到哪個日誌文件中。iptables -j LOG然後為您的規則設置適當的嚴重性級別。

或者使用iptables ... -j LOG --log-prefix <prefix>選項為 iptables 消息添加可辨識的前綴,然後使用 的高級功能rsyslog將 iptables 消息寫入單獨的日誌文件。

引用自:https://unix.stackexchange.com/questions/423778