- Update paketa za Lenny
[iptables-cn.git] / debian / postinst
1 #!/bin/sh
2 # postinst script for bind9-cn
3 #
4 # see: dh_installdeb(1)
5
6 set -e
7
8 # summary of how this script can be called:
9 #        * <postinst> `configure' <most-recently-configured-version>
10 #        * <old-postinst> `abort-upgrade' <new version>
11 #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12 #          <new-version>
13 #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
14 #          <failed-install-package> <version> `removing'
15 #          <conflicting-package> <version>
16 # for details, see http://www.debian.org/doc/debian-policy/ or
17 # the debian-policy package
18 #
19
20 case "$1" in
21     configure|reconfigure)
22       # continue below
23     ;;
24
25     *)
26         exit 0
27     ;;
28 esac
29
30 # fix problem with permissions from the old package
31 if dpkg --compare-versions "$2" lt "2:1.2.11-4"; then
32     chown -f -Rh root:root /var/lib/iptables /etc/init.d/iptables \
33                 /etc/default/iptables >/dev/null 2>&1 || true
34 fi
35
36 # remove old iptables init script
37 update-rc.d -f iptables remove >/dev/null 2>&1 || true
38
39 # check if old default file exists and import it
40 if [ -e /etc/default/iptables ]; then
41     mv /etc/default/iptables /etc/default/iptables-cn
42 fi
43
44 # check to see if fail2ban is installed
45 check=(fail2ban fail2ban-cn)
46 check=$(dpkg -s $check 2> /dev/null | egrep '^Package:|^Status:' | awk '{if ($1 ~ /^Package:/) { package=$2 } else if ($0 ~ /^Status: .* installed$/) { print package }}')
47 if [ "x$check" != "x" ]; then
48     echo "CN: Detected Fail2Ban installation, will remove SSH bruteforce rules by default"
49     iptables -D SSH_Brute_Force -m recent ! --rcheck --seconds 90 \
50         --hitcount 3 --name SSH --rsource \
51         -j RETURN >/dev/null 2>&1 || true
52     iptables -D SSH_Brute_Force -p tcp -j REJECT \
53         --reject-with icmp-port-unreachable >/dev/null 2>&1 || true
54     iptables -D INPUT -p tcp -m tcp --dport 22 -m state \
55         --state NEW -m recent --set --name SSH --rsource \
56         -j SSH_Brute_Force >/dev/null 2>&1 || true
57     iptables -X SSH_Brute_Force >/dev/null 2>&1 || true
58
59     echo "CN: Saving current Netfilter rules to /var/lib/iptables/active"
60     iptables-save > /var/lib/iptables/active
61 else
62     # check if there is any default netfilter policy and install default SSH
63     # REJECT recent if there is none..
64     # also, save current set of rules into active and inactive configuration
65     if [ ! -e /var/lib/iptables/active ]; then
66         if ! iptables-save | grep '^-' >/dev/null; then
67             echo "CN: Netfilter rules empty: importing SSH bruteforce rules"
68             /usr/share/doc/iptables-cn/examples/ssh-bruteforce \
69                 1>/dev/null 2>&1 || true
70         fi
71         echo "CN: Saving current Netfilter rules to /var/lib/iptables/active"
72         iptables-save > /var/lib/iptables/active
73     fi
74 fi
75
76 # create inactive
77 if [ ! -e /var/lib/iptables/inactive ]; then
78     touch /var/lib/iptables/inactive
79 fi
80
81 # dh_installdeb will replace this with shell code automatically
82 # generated by other debhelper scripts.
83
84 #DEBHELPER#
85
86 exit 0