Limitar por tamanho provavelmente não é o que você deseja fazer. Usando o Nmap como seu scanner de exemplo, observe que com a opção --data-length, um atacante pode usar pacotes de qualquer tamanho. Além disso, como comentei abaixo da sua pergunta, o Nmap usa cargas válidas para 39 das portas UDP mais comuns para solicitar uma carga útil. Sem mencionar que alguns protocolos permitem e até exigem que o servidor responda a um pacote vazio.
Não se desespere, no entanto. Há muitas coisas que o iptables pode fazer para dificultar a vida de alguém que queira escanear você. A varredura UDP é notoriamente difícil, já que a condição de sucesso (uma porta aberta) é negativa (sem resposta) na maioria dos casos. O Linux já limita a taxa de resposta de porta fechada (mensagens inacessíveis da porta ICMP) a uma por segundo, o que torna a análise ainda mais lenta. Aqui estão algumas ideias:
- Use o
DROP
target em vez deREJECT
para diminuir significativamente a varredura. - Adicione alvos de LOG para portas de destino UDP comuns que você não usa e verifique seus logs com frequência
- Use os módulos de correspondência
limit
ehashlimit
para definir limites superiores em taxas de conexão razoáveis. Tenha cuidado com isso, no entanto, ou você bloqueará o acesso legítimo. - Finalmente, perceba que a varredura de portas acontece. Se um adversário souber que portas você tem em aberto está em apuros para você, passe seu tempo protegendo seus serviços, não experimentando as regras de iptables de criativos.