diff --git a/bin/v-update-firewall b/bin/v-update-firewall index cd7205b8a..65b9438dd 100755 --- a/bin/v-update-firewall +++ b/bin/v-update-firewall @@ -132,19 +132,29 @@ fi # Checking fail2ban support if [ ! -z "$FIREWALL_EXTENSION" ]; then - chains=$(cat $VESTA/data/firewall/chains.conf 2>/dev/null) -fi -for chain in $chains; do - eval $chain - if [[ "$PORT" =~ ,|-|: ]] ; then - port="-m multiport --dports $PORT" - else - port="--dport $PORT" - fi - echo "$iptables -I INPUT -p $PROTOCOL $port -j fail2ban-$CHAIN" > $tmp - bash $tmp + for chain in $(cat $VESTA/data/firewall/chains.conf 2>/dev/null); do + eval $chain + if [[ "$PORT" =~ ,|-|: ]] ; then + port="-m multiport --dports $PORT" + else + port="--dport $PORT" + fi + echo "$iptables -N fail2ban-$CHAIN" >> $tmp + echo "$iptables -F fail2ban-$CHAIN" >> $tmp + echo "$iptables -I fail2ban-$CHAIN -s 0.0.0.0/0 -j RETURN" >> $tmp + echo "$iptables -I INPUT -p $PROTOCOL $port -j fail2ban-$CHAIN" >>$tmp + done + bash $tmp 2>/dev/null rm -f $tmp -done + + for ban in $(cat $VESTA/data/firewall/banlist.conf 2>/dev/null); do + eval $ban + echo -n "$iptables -I fail2ban-$CHAIN 1 -s $IP" >> $tmp + echo " -j REJECT --reject-with icmp-port-unreachable" >> $tmp + done + bash $tmp 2>/dev/null + rm -f $tmp +fi # Saving rules to the master iptables file if [ -e "/etc/redhat-release" ]; then