X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=246b85fee05767b7e5641d3a22e79fa5818e725e;hb=HEAD;hp=54c8a67381447730daaca5e47e7fa141903c6d43;hpb=75e879985fa0baa9d3287ad71341a7c28b9b9ca5;p=iptables-cn.git diff --git a/debian/postinst b/debian/postinst index 54c8a67..246b85f 100755 --- a/debian/postinst +++ b/debian/postinst @@ -1,57 +1,49 @@ #!/bin/sh -# postinst script for bind9-cn -# -# see: dh_installdeb(1) set -e -# summary of how this script can be called: -# * `configure' -# * `abort-upgrade' -# * `abort-remove' `in-favour' -# -# * `abort-deconfigure' `in-favour' -# `removing' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package -# - -case "$1" in - configure|reconfigure) - # continue below - ;; - - *) - exit 0 - ;; -esac - -# fix problem with permissions from the old package -if dpkg --compare-versions "$2" lt "2:1.2.11-4"; then - chown -f -Rh root:root /var/lib/iptables /etc/init.d/iptables \ - /etc/default/iptables >/dev/null 2>&1 -fi +[ "$1" = "configure" ] || exit 0 +[ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx # remove old iptables init script -if [ -e /etc/init.d/iptables ]; then - rm -f /etc/init.d/iptables - update-rc.d -f iptables remove -fi +update-rc.d -f iptables remove >/dev/null 2>&1 || true +update-rc.d -f iptables-cn remove >/dev/null 2>&1 || true -# check if old default file exists and import it +# check if old default file exists and delete it +if [ -e /etc/default/iptables-cn ]; then + rm -f /etc/default/iptables-cn +fi if [ -e /etc/default/iptables ]; then - mv /etc/default/iptables /etc/default/iptables-cn + rm -f /etc/default/iptables fi -# check if there is any default netfilter policy and install default SSH -# REJECT recent if there is none.. -# also, save current set of rules into active and inactive configuration -if [ ! -e /var/lib/iptables/active ]; then - if ! iptables-save | grep '^-' >/dev/null; then - echo "CN: Netfilter rules empty: importing SSH bruteforce rules" - . /usr/share/doc/iptables-cn/examples/ssh-bruteforce - iptables-save > /var/lib/iptables/active +# check to see if fail2ban is installed +if dpkg-query -f '${Status}' -W fail2ban | grep -q installed; then + echo "CN: Detected Fail2Ban installation, will remove SSH bruteforce rules by default" + iptables -D SSH_Brute_Force -m recent ! --rcheck --seconds 90 \ + --hitcount 3 --name SSH --rsource \ + -j RETURN >/dev/null 2>&1 || true + iptables -D SSH_Brute_Force -p tcp -j REJECT \ + --reject-with icmp-port-unreachable >/dev/null 2>&1 || true + iptables -D INPUT -p tcp -m tcp --dport 22 -m state \ + --state NEW -m recent --set --name SSH --rsource \ + -j SSH_Brute_Force >/dev/null 2>&1 || true + iptables -X SSH_Brute_Force >/dev/null 2>&1 || true + + echo "CN: Saving current Netfilter rules to /etc/iptables/rules.v4" + iptables-save > /etc/iptables/rules.v4 +else + # check if there is any default netfilter policy and install default SSH + # REJECT recent if there is none.. + # also, save current set of rules into active and inactive configuration + if [ ! -e /etc/iptables/rules.v4 ]; then + if ! iptables-save | grep '^-' >/dev/null; then + echo "CN: Netfilter rules empty: importing SSH bruteforce rules" + /usr/share/doc/iptables-cn/examples/ssh-bruteforce \ + 1>/dev/null 2>&1 || true + fi + echo "CN: Saving current Netfilter rules to /etc/iptables/rules.v4" + iptables-save > /etc/iptables/rules.v4 fi fi