X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=iptables-cn.git;a=blobdiff_plain;f=debian%2Fpostinst;fp=debian%2Fpostinst;h=6a57a0dc285a57330e9e0c03619ba75486630451;hp=0fe9d74d1fe78dcf9c57a07e6bd8391f7805cf42;hb=a34e04407c58606899a68512cf7f259d91dd98c6;hpb=3d8488c95e95efb8097e25948c810df6fd689fd2 diff --git a/debian/postinst b/debian/postinst index 0fe9d74..6a57a0d 100755 --- a/debian/postinst +++ b/debian/postinst @@ -41,17 +41,36 @@ if [ -e /etc/default/iptables ]; then mv /etc/default/iptables /etc/default/iptables-cn 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 \ - 1>/dev/null 2>&1 || true - fi +# check to see if fail2ban is installed +check=(fail2ban fail2ban-cn) +check=$(dpkg -s $check 2> /dev/null | egrep '^Package:|^Status:' | awk '{if ($1 ~ /^Package:/) { package=$2 } else if ($0 ~ /^Status: .* installed$/) { print package }}') +if [ "x$check" != "x" ]; 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 /var/lib/iptables/active" iptables-save > /var/lib/iptables/active +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 /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 \ + 1>/dev/null 2>&1 || true + fi + echo "CN: Saving current Netfilter rules to /var/lib/iptables/active" + iptables-save > /var/lib/iptables/active + fi fi # create inactive