Diferença entre Reject, Block e DROP – Segurança de Redes com pfSense e iptables

Quando se trata de proteger serviços em servidores e firewalls, entender a diferença entre Reject, Block e DROP é essencial para tomar decisões técnicas inteligentes. Neste post, vamos explicar de forma clara as diferenças entre essas ações no pfSense e no iptables, com foco em eficiência, segurança e comportamento de rede.


Conceitos Fundamentais

DROP (iptables) / BLOCK (pfSense)

  • Silenciosamente descarta o pacote.
  • Não envia resposta ao remetente.
  • Para o atacante ou cliente, parece que:
    • O IP não existe.
    • A rede está fora do ar.
    • A conexão expirou por timeout.
  • Ideal para situações onde o objetivo é não dar pistas sobre a existência do serviço.

Exemplo com iptables:

iptables -A INPUT -s 1.2.3.4 -j DROP

Exemplo com pfSense:

  • Firewall > Rules > [Interface desejada]
  • Action: Block
  • Source: 1.2.3.4

REJECT (iptables e pfSense)

  • Rejeita o pacote e envia uma resposta imediata:
    • TCP → envia RST (Reset)
    • UDP → envia ICMP “Port Unreachable”
  • O cliente sabe que a tentativa foi explicitamente recusada, e não que houve perda de conexão.
  • Útil para:
    • Evitar timeouts longos em aplicações legítimas.
    • Informar que a porta está fechada (em redes internas).
    • Reduzir uso de recursos com conexões abertas desnecessariamente.

Exemplo com iptables:

iptables -A INPUT -s 1.2.3.4 -j REJECT

Exemplo com pfSense:

  • Firewall > Rules > [Interface desejada]
  • Action: Reject
  • Source: 1.2.3.4

Comparativo Técnico

AçãoComportamentoResposta?Indicado para
DROPSilencioso, ignora o pacoteNãoAumentar segurança, ocultar
BLOCKMesmo comportamento que DROPNãoSituações semelhantes
REJECTInforma ao remetente que foi negadoSimRedes internas, debug

Casos de Uso Reais

Caso 1 – Protegendo um Asterisk

Você está recebendo pacotes SIP de IPs como:

[WARNING] retrans_pkt: Timeout on invite transaction from 144.172.97.201

Esses IPs são de robôs tentando invadir seu PBX.

Melhor ação:

  • pfSense: Block
  • iptables: DROP

Isso fará o atacante desperdiçar tempo esperando resposta, sem saber se há algo rodando ali.


Caso 2 – Aplicações internas que precisam de resposta rápida

Uma aplicação interna tenta acessar um serviço desativado e demora 30 segundos para concluir que não há nada.

Melhor ação:

  • pfSense: Reject
  • iptables: REJECT

O pacote é recusado imediatamente, a aplicação responde mais rápido.


Dica extra – Bloqueio eficiente por faixa no pfSense

  1. Vá em Firewall > Aliases
  2. Crie um novo alias do tipo Hosts ou Networks
  3. Adicione todos os IPs ou faixas que quer bloquear (ex: bots conhecidos)
  4. Vá em Firewall > Rules
  5. Na interface WAN, crie uma regra:
    • Action: Block
    • Source: o alias criado
    • Destination: any
  6. Coloque essa regra no topo

Conclusão

A escolha entre Block, Reject e DROP deve ser feita com base no comportamento desejado da rede.
Não é questão de gosto, é questão de função:

  • Quer esconder? Use DROP / Block
  • Quer informar ou agilizar? Use REJECT

Esse tipo de ajuste fino separa um ambiente amador de um ambiente profissional.

Rolar para cima