503f684b9c6bd26012007ee2883e65104a288c61
[alff.git] / share / plugins / plugin.d / create_chain_tcp_scan_handling
1 #!/bin/bash -e
2 #
3 # create_chain_tcp_scan_handling
4 #
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
7 #
8 # Maximilian Wilhelm <max@rfc2324.org>
9 #  -- Mon, 24 Apr 2006 20:05:49 +0200
10
11
12 . /usr/share/alff/lib/plugin-routines
13
14 loglevel="info"
15 log_scans="1"
16 drop_scans="1"
17
18 ##
19 # Make sure there is (an empty) chain tcp_scan_handling
20 createChain tcp_scan_handling
21
22 ##
23 # Log scanning of nmap etc.
24 if [ "${log_scans}" != "0" ]; then
25         echo " * Logging of stealth scans (nmap probes etc.) enabled."
26
27 cat <<- EOF >&3
28         # (NMAP) FIN/URG/PSH
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: "
31         
32         # SYN/RST/ACK/FIN/URG
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: "
35         
36         # ALL/ALL
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: "
39         
40         # NMAP FIN Stealth
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: "
43         
44         # SYN/RST
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: "
47         
48         # SYN/FIN (probably)
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(?): "
51         
52         # Null 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: "
55
56         # ipv6
57         # (NMAP) FIN/URG/PSH
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: "
60         
61         # SYN/RST/ACK/FIN/URG
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: "
64         
65         # ALL/ALL
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: "
68         
69         # NMAP FIN Stealth
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: "
72         
73         # SYN/RST
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: "
76         
77         # SYN/FIN (probably)
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(?): "
80         
81         # Null 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: "
84
85
86 EOF
87
88 else
89         echo " * Logging of stealth scans (nmap probes etc.) disabled."
90 fi
91
92 ##
93 # Drop (NMAP) scan packets:
94 if [ "${drop_scans}" != '0' ]; then
95         echo " * stealth scans (nmap probes etc.) will be DROPed."
96
97 cat <<- EOF >&3
98         # NMAP FIN/URG/PSH
99         ##################
100         iptables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
101
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
105
106         # ALL/ALL Scan
107         ##############
108         iptables -A tcp_scan_handling -p tcp --tcp-flags ALL ALL -j DROP
109
110         # NMAP FIN Stealth
111         ##################
112         iptables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN -j DROP
113
114         # SYN/RST
115         #########
116         iptables -A tcp_scan_handling -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
117
118         # SYN/FIN -- Scan(probably)
119         ###########################
120         iptables -A tcp_scan_handling -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
121
122         # NMAP Null Scan
123         ################
124         iptables -A tcp_scan_handling -p tcp --tcp-flags ALL NONE -j DROP
125
126         # IPv6
127         # NMAP FIN/URG/PSH
128         ##################
129         ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
130
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
134
135         # ALL/ALL Scan
136         ##############
137         ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL ALL -j DROP
138
139         # NMAP FIN Stealth
140         ##################
141         ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL FIN -j DROP
142
143         # SYN/RST
144         #########
145         ip6tables -A tcp_scan_handling -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
146
147         # SYN/FIN -- Scan(probably)
148         ###########################
149         ip6tables -A tcp_scan_handling -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
150
151         # NMAP Null Scan
152         ################
153         ip6tables -A tcp_scan_handling -p tcp --tcp-flags ALL NONE -j DROP
154
155
156 EOF
157
158 else
159         echo " * stealth scans (nmap probes etc.) will *not* be DROPed."
160 fi