DROP ou REJECT no iptables?

Publicado por Elgio Schlemer em 12/03/2009

[ Hits: 38.334 ]

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

Usando rm para apagar arquivos esquisitos

Melhore o desempenho do HISTORY

Extrair a data de uma fotografia

Windows antes no Grub do Ubuntu 10.04

Enviar aspas em PHP de maneira menos suja

Leitura recomendada

Projeto Root - Servidor de LOG no Debian

Serviços desnecessários rodando no S.O. são um risco

zuluCrypt no Debian 8 Jessie - Criptografia

IPtables - Bloquear IPs definitivamente

Como retornar 404 (Não encontrado) ao invés de 403 (Proibido) usando o mod_rewrite no Apache

  

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