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
- fi
+# check to see if fail2ban is installed
+if dpkg -l fail2ban | grep -q '^.i'; 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