Sua regra não parece especificar uma origem específica. Depois de aceitar 20 NOVAS conexões em um minuto, ele pára de aceitar NOVAS conexões.
Você precisa usar o módulo recent
para o iptables lembrar de onde as conexões estão vindo e bloquear as pessoas que se conectam muito rápido no mesmo endereço. Isso leva duas regras: uma para o iptables para "aprender" o endereço e, em seguida, uma para o iptables para ver quantas vezes esse endereço atingiu o servidor no tempo especificado:
/sbin/iptables -A INPUT -p TCP -m state --state NEW -d xx.xxx.xxx.xx --dport 80 -m recent --set
/sbin/iptables -A INPUT -p TCP -m state --state NEW -d xx.xxx.xxx.xx --dport 80 -m recent --update --seconds 60 --hitcount 20 -j DROP
Este artigo entra em mais detalhes.