Dodana ovisnost o ipcalc i carnet-tools-cn, popravak postinsta
[fail2ban-cn.git] / debian / postinst
1 #!/bin/sh
2
3 set -e
4 [ "$1" = "configure" ] || exit 0
5 [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
6
7 # Load CARNET Tools
8 . /usr/share/carnet-tools/functions.sh
9
10 CONF="/etc/fail2ban/jail.conf"
11
12 if [ -e "$CONF" ]; then
13     # enable ssh, pam-generic, sasl, proftpd and vsftpd service
14     echo "CN: Enabling SSH, PAM-generic, SASL and Dovecot support..."
15     perl -ne 'if (/^\[(ssh|pam-generic|sasl|dovecot)\]/ .. /^enabled/) { $_ =~ s/^enabled\s+=\s+false/enabled  = true/gi }; print $_' "$CONF" > "$CONF.$$" && \
16         cp_mv "$CONF.$$" "$CONF"
17     rm -f "$CONF.$$"
18
19     if [ -f /var/log/vsftpd.log ]; then
20       echo "CN: Enabling vsftpd support..."
21       perl -ne 'if (/^\[vsftpd\]/ .. /^enabled/) { $_ =~ s/^enabled\s+=\s+false/enabled  = true/gi }; print $_' "$CONF" > "$CONF.$$" && \
22           cp_mv "$CONF.$$" "$CONF"
23       rm -f "$CONF.$$"
24     else
25       echo "CN: Disabling vsftpd support..."
26       perl -ne 'if (/^\[vsftpd\]/ .. /^enabled/) { $_ =~ s/^enabled\s+=\s+true/enabled  = false/gi }; print $_' "$CONF" > "$CONF.$$" && \
27           cp_mv "$CONF.$$" "$CONF"
28       rm -f "$CONF.$$"
29     fi
30
31     if [ -f /var/log/proftpd/proftpd.log ]; then
32       echo "CN: Enabling ProFTPD support..."
33       perl -ne 'if (/^\[proftpd\]/ .. /^enabled/) { $_ =~ s/^enabled\s+=\s+false/enabled  = true/gi }; print $_' "$CONF" > "$CONF.$$" && \
34           cp_mv "$CONF.$$" "$CONF"
35       rm -f "$CONF.$$"
36    else
37       echo "CN: Disabling ProFTPD support..."
38       perl -ne 'if (/^\[proftpd\]/ .. /^enabled/) { $_ =~ s/^enabled\s+=\s+true/enabled  = false/gi }; print $_' "$CONF" > "$CONF.$$" && \
39           cp_mv "$CONF.$$" "$CONF"
40       rm -f "$CONF.$$"
41     fi
42
43     # postfix-sasl in jessie, not sasl anymore
44     cp_check_and_sed 'filter[ ]*=[ ]*sasl' \
45                      's/^filter[ ]*=[ ]*sasl/filter     = postfix-sasl/gi' \
46                      "$CONF" && echo "CN: Fixing sasl to postfix-sasl..." || true
47
48     # add network address and class if needed
49     cp_get_netaddr || true
50     NETADDR="$RET"
51     IGNOREIP=$(grep '^ignoreip' "$CONF" || true)
52     if grep -q '^ignoreip' "$CONF"; then
53         IGNOREIP=$(grep '^ignoreip' "$CONF")
54         if ! echo "$IGNOREIP" | grep -q "$NETADDR"; then
55             echo "CN: Enabling local IP ranges exclusion..."
56             cp_check_and_sed '^ignoreip' \
57                 "s;^\(ignoreip.*\)$;\1 $NETADDR;g" "$CONF" || true
58         fi
59     elif grep -q '^#ignoreip' "$CONF"; then
60         echo "CN: Enabling local IP ranges exclusion..."
61         cp_check_and_sed '^#ignoreip' \
62             "s;^#ignoreip.*$;ignoreip = $NETADDR;g" "$CONF" || true
63    fi
64 fi
65
66 # restart the services
67 service fail2ban restart || exit $?
68
69 # dh_installdeb will replace this with shell code automatically
70 # generated by other debhelper scripts.
71
72 #DEBHELPER#
73
74 exit 0