DROP ou REJECT no iptables?

Publicado por Elgio Schlemer em 12/03/2009

[ Hits: 37.820 ]

Blog: https://profelgio.duckdns.org/~elgio

 


DROP ou REJECT no iptables?



Muito comum se usar DROP para negar um pacote no iptables, inclusive deixando-a como política padrão. Mas você já ouviu falar do REJECT? Sabe que DROP e REJECT são diferentes?

Em certas situações pode ser mais interessante usar REJECT.

DROP: barra um pacote silenciosamente. Nenhuma resposta é devolvida ao remetente, nenhuma mensagem de erro. Ele fica sem saber o que aconteceu com seu pacote.

REJECT: barra um pacote e devolve um erro ao remetente informando que o pacote foi barrado. Se o pacote é um UDP a resposta virá na forma de um ICMP tipo 3. Se o pacote era TCP a resposta virá na forma de um TCP reset.

O fato é que se você usa DROP, como o cliente não sabe o que aconteceu com o pacote, ele poderá ficar tentando e tentando e tentando até se convencer. Uma experiência rápida você pode fazer em seu LINUX, usando DROP no site do vivaolinux:

a)
# iptables -I OUTPUT -d www.vivaolinux.com.br -j DROP

Abra o navegador e visite o VOL. Veja quanto tempo o navegador leva para desistir.

Remova a regra:

# iptables -D OUTPUT -d www.vivaolinux.com.br -j DROP

b)

# iptables -I OUTPUT -d www.vivaolinux.com.br -j REJECT

Repita o teste do navegador. Veja que o navegador desiste na hora.

DROP ou REJECT?

Depende. O REJECT tem um efeito indesejável de entregar o IP do firewall. Algo como "Oi, eu sou o firewall e acabei de remover o seu pacote", mas tem a vantagem de chutar o IP na hora.

Já o DROP não entrega tão facilmente o IP do firewall, mas pode te encher os logs!

O bom mesmo é conhecer bem os dois e saber a diferença.

Outras dicas deste autor

Uso das chaves na linha de comando

Extrair a data de uma fotografia

Cálculo da potência modular de forma eficiente

Enviar aspas em PHP de maneira menos suja

Inserir comentários em regras do iptables

Leitura recomendada

Gerador de backdoor indetectável

Série de webinars e podcasts sobre Análise Forense Computacional e CHFI

Bloqueando arquivos até para o root

SQUID + SSO + Autenticação Segura no AD

Web Application Security com CAL9000

  

Comentários
[1] Comentário enviado por TiagoSouza em 06/05/2012 - 17:04h

Percebi que se eu bloqueasse com DROP e deixasse o navegador tentando acessar o endereço bloqueado, e depois, sem parar o navegador, removesse a regra, ele abria a página. Já com REJECT, se eu bloqueasse, deixasse carregando, e removesse a regra, continuava carregando, como se ainda estivesse bloqueado.
Interessante isso. Estava usando DROP em tudo, mudei algumas regras da rede interna para REJECT e externa continuam com DROP. =)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts