Networking

iptables 記錄來自外部世界的數據包

  • June 5, 2011

我想記錄所有不是源自 LAN 的 INPUT 數據包以用於審計目的,我有一個帶有 tcpdump 的腳本,基本上將結果附加到一個文件中:

tcpdump "(dst net 192.168.0.0/24 and ! src net 192.168.0.0/24)"

但是,我在 /var/log/syslog 中看到了一些外部嘗試

[567325.985994] iptables INPUT denied: IN=eth1 OUT= MAC=..... SRC=69.163.149.200 DST=192.168.0.2 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=50281 DF PROTO=TCP SPT=51380 DPT=1194 WINDOW=5840 RES=0x00 SYN URGP=0 
[567895.076532] iptables INPUT denied: IN=eth1 OUT= MAC=.... SRC=72.21.91.19 DST=192.168.0.2 LEN=40 TOS=0x00 PREC=0x00 TTL=59 ID=0 DF PROTO=TCP SPT=80 DPT=52589 WINDOW=0 RES=0x00 RST URGP=0 

沒有出現在 tcpdump outout 中。我想添加一條規則

-A INPUT -j LOG

但我想(如果有意義的話)避免放入來自 LAN 的日誌輸入數據包

放這個就夠了嗎?

-A INPUT ! -s 192.168.0.0/24 -j LOG

順便說一句,作為一個附帶問題,iptables 是否支持將不同的內容記錄到不同的文件中?

iptables 始終記錄到 syslog 的核心設施,您可以將syslog 設施分成不同的文件- 有關詳細資訊,請參閱syslog.conf 文件

你的規則

-輸入!-s 192.168.0.0/24 -j 日誌

將記錄沒有源 IP 192.168.0.0/24 的數據包,但 iptables 日誌記錄僅涵蓋一些數據標頭數據,而不是數據包的有效負載。

那麼,如何擷取有效載荷?

tcpdump 是擷取有效負載的工具。您應該明確指定您希望流量進入的介面 (-i eth1) 或使用任何介面 (-i any)。您可能還想增加 snaplen(-s 參數)並將擷取寫入二進制格式的文件(-W 參數)。

但是由於 tcpdump 不是一個安全工具,而是一個具有復雜安全歷史的診斷工具,並且可能在您的配置中以 root 權限執行(儘管有一些方法可以非 root 執行它),您應該考慮編寫不同的解決方案考慮到安全性 - IDS 系統可能是合適的。

引用自:https://serverfault.com/questions/277209