3 # create_chain_tcp_scan_handling
5 # These rules are mainly copied from "Arno's IPTABLES firewall script"
6 # by Arno van Amersfoort. See http://rocky.eld.leidenuniv.nl/ for details
8 # Maximilian Wilhelm <max@rfc2324.org>
9 # -- Mon, 24 Apr 2006 20:05:49 +0200
12 . /usr/share/alff/lib/plugin-routines
19 # Make sure there is (an empty) chain tcp_scan_handling
20 createChain tcp_scan_handling
23 # Log scanning of nmap etc.
24 if [ "${log_scans}" != "0" ]; then
25 echo " * Logging of stealth scans (nmap probes etc.) enabled."
29 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN,URG,PSH \
30 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth XMAS scan: "
33 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG \
34 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth XMAS-PSH scan: "
37 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL ALL \
38 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth XMAS-ALL scan: "
41 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN \
42 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth FIN scan: "
45 iptables -A tcp_scan_handling -p tcp --tcp-flags SYN,RST SYN,RST \
46 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth SYN/RST scan: "
49 iptables -A tcp_scan_handling -p tcp --tcp-flags SYN,FIN SYN,FIN \
50 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth SYN/FIN scan(?): "
53 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL NONE \
54 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth Null scan: "
58 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN,URG,PSH \
59 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth XMAS scan: "
62 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG \
63 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth XMAS-PSH scan: "
66 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL ALL \
67 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth XMAS-ALL scan: "
70 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN \
71 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth FIN scan: "
74 ip6tables -A tcp_scan_handling -p tcp --tcp-flags SYN,RST SYN,RST \
75 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth SYN/RST scan: "
78 ip6tables -A tcp_scan_handling -p tcp --tcp-flags SYN,FIN SYN,FIN \
79 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth SYN/FIN scan(?): "
82 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL NONE \
83 -m limit --limit 3/m --limit-burst 5 -j LOG --log-level ${loglevel} --log-prefix "Stealth Null scan: "
89 echo " * Logging of stealth scans (nmap probes etc.) disabled."
93 # Drop (NMAP) scan packets:
94 if [ "${drop_scans}" != '0' ]; then
95 echo " * stealth scans (nmap probes etc.) will be DROPed."
100 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
102 # SYN/RST/ACK/FIN/URG
103 #####################
104 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
108 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL ALL -j DROP
112 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN -j DROP
116 iptables -A tcp_scan_handling -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
118 # SYN/FIN -- Scan(probably)
119 ###########################
120 iptables -A tcp_scan_handling -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
124 iptables -A tcp_scan_handling -p tcp --tcp-flags ALL NONE -j DROP
129 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
131 # SYN/RST/ACK/FIN/URG
132 #####################
133 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
137 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL ALL -j DROP
141 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN -j DROP
145 ip6tables -A tcp_scan_handling -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
147 # SYN/FIN -- Scan(probably)
148 ###########################
149 ip6tables -A tcp_scan_handling -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
153 ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL NONE -j DROP
159 echo " * stealth scans (nmap probes etc.) will *not* be DROPed."