|
通常入侵主机的第一步是端口扫描,在反端口扫描上多花一点精力永远是值得的。
以下为本人有关反端口扫描的一点探索,不当之处,敬请指出。
脚本节选如下:
-----------------------------------------------------------------------------
......
IPTABLES="/sbin/iptables"
......
$IPTABLES -N bad_tcp_pkt
$IPTABLES -N dos_protection
$IPTABLES -N general_chk
......
# bad_tcp_pkt chain, including port scanning protection.
# Null scaning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags ALL NONE \
-j REJECT --reject-with tcp-reset
# SYN|ACK scanning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags SYN,ACK SYN,ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset
# FIN scanning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags ALL FIN \
-m state --state NEW -j REJECT --reject-with tcp-reset
# Xmas scanning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH \
-m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_pkt -p tcp ! --syn -m state --state NEW \
-m limit --limit 1/m --limit-burst 1 -j LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_pkt -p tcp ! --syn -m state --state NEW -j DROP
# dos_protection rules, change the value if necessary
$IPTABLES -A dos_protection -m limit --limit 1/s --limit-burst 3 -j RETURN
$IPTABLES -A dos_protection -j DROP
# general_chk rules
$IPTABLES -A general_chk -p tcp -j bad_tcp_pkt
$IPTABLES -A general_chk -p tcp --syn -j dos_protection
$IPTABLES -A general_chk -p icmp --icmp-type 8 -j dos_protection
...... |
|