Do some spoofcheks even in ipv6. This is probably not complete
[alff.git] / share / plugins / plugin.d / create_chain_spoofcheck
1 #!/bin/bash -e
2 #
3 # 01drop_spoofed
4 #
5 # Drop spoofed connection attemps
6 #
7 # Maximilian Wilhelm <max@rfc2324.org>
8 #  -- Wed, 12 Apr 2006 19:00:04 +0200
9 #
10
11 . /usr/share/alff/lib/plugin-routines
12
13 ##
14 # Make sure we have (an empty) chain
15 createChain spoofcheck
16
17 cat << EOF >&3
18 ##
19 # RFC1918 networks
20 #
21 iptables -A spoofcheck -p all -i ! lo -s 10.0.0.0/8 -j LOG --log-prefix "alff spoofed: "
22 iptables -A spoofcheck -p all -i ! lo -s 10.0.0.0/8 -j DROP
23 #
24 iptables -A spoofcheck -p all -i ! lo -s 172.16.0.0/12 -j LOG --log-prefix "alff spoofed: "
25 iptables -A spoofcheck -p all -i ! lo -s 172.16.0.0/12 -j DROP
26 #
27 iptables -A spoofcheck -p all -i ! lo -s 192.168.0.0/16 -j LOG --log-prefix "alff spoofed: "
28 iptables -A spoofcheck -p all -i ! lo -s 192.168.0.0/16 -j DROP
29
30 ##
31 # RFC 3330 networks
32 #
33 # documentation network
34 iptables -A spoofcheck -p all -i ! lo -s 192.0.2.0/24 -j LOG --log-prefix "alff spoofed: "
35 iptables -A spoofcheck -p all -i ! lo -s 192.0.2.0/24 -j DROP
36 # link local
37 iptables -A spoofcheck -p all -i ! lo -s 169.254.0.0/16 -j LOG --log-prefix "alff spoofed: "
38 iptables -A spoofcheck -p all -i ! lo -s 169.254.0.0/16 -j DROP
39
40 ##
41 # Loopback address on eth* is probably not right
42 iptables -A spoofcheck -p all -i ! lo -s 127.0.0.0/8 -j LOG --log-prefix "alff spoofed: "
43 iptables -A spoofcheck -p all -i ! lo -s 127.0.0.0/8 -j DROP
44
45 EOF
46
47 # do the same for ipv6
48 cat << EOF >&3
49 ##
50 # Some sample networks to block, there might be more
51
52 ##
53 # site local unicast is deprecated (RFC3879)
54 ip6tables -A spoofcheck -p all -i ! lo -s fec0::/10 -j LOG --log-prefix "alff spoofed: "
55 ip6tables -A spoofcheck -p all -i ! lo -s fec0::/10 -j DROP
56
57 ##
58 # Uniqe local unicast (RFC4193) should be opt in
59 ip6tables -A spoofcheck -p all -i ! lo -s fc00::/7 -j LOG --log-prefix "alff spoofed: "
60 ip6tables -A spoofcheck -p all -i ! lo -s fc00::/7 -j DROP
61
62 ##
63 # Some more deprecated networks
64
65 ##
66 # ipv4 compability, deprecated by RFC4291
67 ip6tables -A spoofcheck -p all -i ! lo -s ::/96 -j LOG --log-prefix "alff spoofed: "
68 ip6tables -A spoofcheck -p all -i ! lo -s ::/96 -j DROP
69
70 EOF