Bloqueio DoS – recent + connlimit + limit

Bloqueia todas conexões de  IPs que estiverem na lista ips_bloqueados por 1 dia

iptables -A INPUT -m recent --rcheck --name ips_bloqueados --seconds 86400 -j DROP

Cadastra IPs que tentem abrir mais de 10 conexões na porta 80 em ate 60 segundos

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -m limit --limit 60/sec -m recent --set --name ips_bloqueados --rsource -j LOG --log-prefix "ips_bloqueados: 10c_60s"

Proteção de URL com recent

Bloqueia todas conexões de  IPs que estiverem na lista ips_bloqueados por 1 dia

iptables -A INPUT -m recent --rcheck --name ips_bloqueados --seconds 86400 -j DROP

Coloca na lista ips_bloqueados ips externos que tentarem acessar /administrator na URL

iptables -A INPUT  -s ! 192.168.0.0/24 -p tcp --dport 80 -m string --algo bm --string '/administrator' -m recent --set --name ips_bloqueados --rsource -j LOG --log-prefix "ips_bloqueados: administrator"

Sistema de Login Iptables

IP da Página de login: 66.35.250.203
IP da Página pós login: 66.35.250.204

Quando o destino for 66.35.250.204 na porta 80 o IP de origem será adicionado a lista IPS_LIBERADOS

iptables -t nat -A PREROUTING -d 66.35.250.204 -p tcp --dport 80 -m recent --set --name IPS_LIBERADOS --rsource

Quando o destino for diferente de 66.35.250.203 na porta 80 e o IP de origem não estiver em IPS_LIBERADOS o endereço de destino será modificado para 66.35.250.203

iptables -t nat -A PREROUTING -d ! 66.35.250.203 -p tcp --dport 80 -m recent ! --rcheck --name IPS_LIBERADOS --rsource -j DNAT --to-destination 66.35.250.203

ATENÇÃO: Não se esqueça de fazer SNAT e habilitar o repasse de pacote.

Stateless Firewall Iptables

iptables -A INPUT -i eth0 -d 192.168.0.0/24 -p tcp -m multiport --sports 20,21,22,25,80,110,443 -m tcp --tcp-flags ACK ACK -j ACCEPT 

iptables -A OUTPUT -o eth0 -s 192.168.0.0/24 -p tcp -m multiport --dports 20,21,22,25,80,110,443 -m tcp --tcp-flags SYN SYN -j ACCEPT 

iptables -A OUTPUT -o eth0 -s 192.168.0.0/24 -p tcp -m multiport --dports 20,21,22,25,80,110,443 -m tcp --tcp-flags ACK ACK -j ACCEPT