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”

 

Anúncios

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 via Netfilter

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 tcp o IP de origem será adicionado a lista IPS_LIBERADOS

[root]# 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 tcp e o IP de origem não estiver em IPS_LIBERADOS o endereço de destino será modificado para 66.35.250.203

[root]# 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

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

Statefull

iptables -A FORWARD -s 192.160.0.0/24 -m state –state NEW,ESTABLISHED -j ACCEPT

iptables -A FORWARD -d 192.160.0.0/24 -m state –state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -m state –state INVALID -j DROP