5 [ "$1" = "configure" ] || exit 0
6 [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
8 # remove old iptables init script
9 update-rc.d -f iptables remove >/dev/null 2>&1 || true
10 update-rc.d -f iptables-cn remove >/dev/null 2>&1 || true
12 # check if old default file exists and delete it
13 if [ -e /etc/default/iptables-cn ]; then
14 rm -f /etc/default/iptables-cn
16 if [ -e /etc/default/iptables ]; then
17 rm -f /etc/default/iptables
20 # check to see if fail2ban is installed
21 if dpkg-query -f '${Status}' -W fail2ban | grep -q installed; then
22 echo "CN: Detected Fail2Ban installation, will remove SSH bruteforce rules by default"
23 iptables -D SSH_Brute_Force -m recent ! --rcheck --seconds 90 \
24 --hitcount 3 --name SSH --rsource \
25 -j RETURN >/dev/null 2>&1 || true
26 iptables -D SSH_Brute_Force -p tcp -j REJECT \
27 --reject-with icmp-port-unreachable >/dev/null 2>&1 || true
28 iptables -D INPUT -p tcp -m tcp --dport 22 -m state \
29 --state NEW -m recent --set --name SSH --rsource \
30 -j SSH_Brute_Force >/dev/null 2>&1 || true
31 iptables -X SSH_Brute_Force >/dev/null 2>&1 || true
33 echo "CN: Saving current Netfilter rules to /etc/iptables/rules.v4"
34 iptables-save > /etc/iptables/rules.v4
36 # check if there is any default netfilter policy and install default SSH
37 # REJECT recent if there is none..
38 # also, save current set of rules into active and inactive configuration
39 if [ ! -e /etc/iptables/rules.v4 ]; then
40 if ! iptables-save | grep '^-' >/dev/null; then
41 echo "CN: Netfilter rules empty: importing SSH bruteforce rules"
42 /usr/share/doc/iptables-cn/examples/ssh-bruteforce \
43 1>/dev/null 2>&1 || true
45 echo "CN: Saving current Netfilter rules to /etc/iptables/rules.v4"
46 iptables-save > /etc/iptables/rules.v4
50 # dh_installdeb will replace this with shell code automatically
51 # generated by other debhelper scripts.