2012-06-15 130 views
1

在我的應用程序中,我將數據包從netfilter帶到NFQUEU的用戶空間,然後將其與我的標準進行比較,並在nfq_set_verdict2函數中通過NF_DROP或NF_ACCEPT丟棄或接受數據包。以普通的iptables日誌格式記錄丟棄的數據包。我可以如何實現這一點?使用nfq_set_verdict2(NF_DROP)丟棄日誌數據包

回答

1

爲了記錄丟棄的數據包,創建一個新的鏈,它將丟棄它收到的每個數據包。重定向要下降到新的鏈和使用日誌記錄的語法,而新的鏈

iptables -N LOGGING 
iptables -A INPUT -j LOGGING 
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4 
iptables -A LOGGING -j DROP 

線#3的聲明所有這些數據包:-m限制:本品採用限制匹配模塊。使用這個,你可以使用-limit選項限制日誌記錄。

–limit 2/min:這表示記錄的最大平均匹配率。在這個例子中,對於類似的數據包,它將限制日誌記錄爲每分鐘2次。您也可以指定2/second, 2/minute, 2/hour, 2/day。當您不想用重複的同一丟包數據包混淆日誌消息時,這很有用。

-j LOG:這表明這個數據包的目標是LOG。即寫入日誌文件。

–log-prefix 「IPTables-Dropped:」你可以指定任何日誌前綴,這將被附加到將被寫入到/ var/log中的日誌消息/ messages文件

–log-level 4這是標準的syslog水平。 4是警告。您可以使用0到7範圍內的數字。0是緊急情況,7是調試。

iptables -A LOGGING -j DROP:最後,丟棄所有來到LOGGING鏈的數據包。即現在它真的會丟棄傳入的數據包。