iptables detecta clientes por trás do NAT?

1

Estou configurando um servidor que desejo proteger contra ataques de negação de serviço, definindo um limite usando o iptables:

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
(default policy DROP) # of course

O problema é que meu site será usado por muitos computadores, todos atrás do mesmo roteador, fazendo NAT. Digamos que sejam 100 computadores.

O iptables detecta esses 100 computadores como clientes diferentes ou acha que todos são iguais porque o NAT substitui o endereço de origem pelo endereço público? (e muda a porta de origem para uma 'aleatória')?

Se os considerar como um único cliente, então eu teria que aumentar os 25 / minuto para 2500 / minuto ...

    
por Victor Oliva 09.01.2014 / 16:35

1 resposta

2

Você está combinando os pacotes com essas linhas, o que significa que você permite apenas 25 pacotes / minuto.

Você precisa igualar o número de sessões, então você não se importará com o número de clientes usando o mesmo endereço IP, porque você estará contando apenas as novas sessões, ou seja, Pacotes TCP SYN.

Se houver 100 clientes usando o mesmo IP, eles ainda precisarão abrir 100 novas sessões, portanto, se você aceitar apenas as primeiras 25 novas sessões, as 75 sessões restantes serão descartadas.

Você pode usar --limit para evitar vários ataques de negação de serviço (DoS) com uma taxa mais rápida para aumentar a capacidade de resposta.

Proteção contra inundação sincronizada:

# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

Scanner de portas furtivas:

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Ping da morte:

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

Para mais detalhes, verifique o link .

    
por 09.01.2014 / 17:14