通常情況下,iptables的默認政策為DROP,不匹配的數據包將被直接丟棄。但在丟棄之前建議把信息記錄下來,以使你了解哪些信息沒有通過規則,有時可依此判斷是否有人在嘗試攻擊你的服務器。
下面給出一個用來詳細記錄未匹配規則的數據包的iptables規則:
#記錄下未符合規則的udp數據包,然后丟棄之。
#iptables -A INPUT -i $IFACE -p udp -j LOG --log-prefix "IPTABLES UDP-IN: "
#iptables -A INPUT -i $IFACE -p udp -j DROP
#iptables -A OUTPUT -o $IFACE -p udp -j LOG --log-prefix "IPTABLES UDP-OUT: "
#iptables -A OUTPUT -o $IFACE -p udp -j DROP
# 記錄下未符合規則的icmp數據包,然后丟棄之。
#iptables -A INPUT -i $IFACE -p icmp -j LOG --log-prefix "IPTABLES ICMP-IN: "
#iptables -A INPUT -i $IFACE -p icmp -j DROP
#iptables -A OUTPUT -o $IFACE -p icmp -j LOG --log-prefix "IPTABLES ICMP-OUT: "
#iptables -A OUTPUT -o $IFACE -p icmp -j DROP
# 記錄下未符合規則的tcp數據包,然后丟棄之。
iptables -A INPUT -i $IFACE -p tcp -j LOG --log-prefix "IPTABLES TCP-IN: "
iptables -A INPUT -i $IFACE -p tcp -j DROP
iptables -A OUTPUT -o $IFACE -p tcp -j LOG --log-prefix "IPTABLES TCP-OUT: "
iptables -A OUTPUT -o $IFACE -p tcp -j DROP
# 記錄下其他未符合規則的數據包,然后丟棄之。
iptables -A INPUT -i $IFACE -j LOG --log-prefix "IPTABLES PROTOCOL-X-IN: "
iptables -A INPUT -i $IFACE -j DROP
iptables -A OUTPUT -o $IFACE -j LOG --log-prefix "IPTABLES PROTOCOL-X-OUT: "
iptables -A OUTPUT -o $IFACE -j DROP
加上適當的記錄日志前綴,可以方便對日志進行分析。 日志通常記錄在/var/log/message文件中。如,可以使用 cat /var/log/message | grep "IPTABLES UDP-IN: " 查找出你需要的日志信息。 當然為了防止日志文件過大,你也可以對日志文件記錄進行限制,如可以在-j LOG 命令 前加上-m limit --limit 6/h --limit-burst 5