
netfilter
似乎允許來自我的INPUT
鏈的被拒絕的流量通過我的OUTPUT
鏈。以下是INPUT
應用於相關資料包的鏈中的規則:
LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix "ICATCH:"
REJECT-PKT all -- * * 0.0.0.0/0 0.0.0.0/0
使用者自訂REJECT-PKT
鍊及其相關規則:
REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp reject-with tcp-reset
這是記錄的結果:
May 15 06:41:51 li51-144 kernel: ICATCH:IN=eth0 OUT= MAC=f2:3c:91:1f:61:44:84:78:ac:0d:97:c1:08:00 SRC=188.138.135.9 DST=<my IP> LEN=40 TOS=0x00 PREC=0x00 TTL=46 ID=46841 PROTO=TCP SPT=8838 DPT=23 WINDOW=22014 RES=0x00 SYN URGP=0
May 15 06:41:51 li51-144 kernel: OCATCH:IN= OUT=eth0 SRC=<my IP> DST=188.138.135.9 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=23 DPT=8838 WINDOW=0 RES=0x00 ACK RST URGP=0
第二行由表中的以下(倒數第二)規則產生OUTPUT
:
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix "OCATCH:"
我的印像是被拒絕的資料包以某種方式被核心標記,並且帶有RST
由iptables
規則產生的標誌的 TCP 流量未被防火牆處理。
我誤解了什麼?
答案1
就像@Aaron 所說,這是正常的。
當傳入封包達到REJECT
規則時,它將由 netfilter 處理,並用RST
封包和訊息回覆發送者。
但是,如果您將其設為DROP
相反,則來源將不會收到任何訊息。
檢查此連結: DROP 和 REJECT 之間的區別
值得運行tcpdump
或wireshark
捕獲輸出並查看集線器下發生了什麼。