Sim. Não me lembro dos detalhes exatos, mas vou procurar por uma 'pergunta' (na verdade, um Wiki da Comunidade) de mim com o título " iptables Dicas e Truques ". Lá, você pode encontrar uma regra do iptables especificamente projetada para o stmap do nmap.
Além disso, implementei um TARPIT
target na cadeia INPUT
. O TARPIT basicamente "intercepta" qualquer um que tente abrir uma conexão TCP, permitindo o handshake TCP de três vias, mas depois bloqueando o Tamanho da Janela TCP para 0 e eliminando todos os estados referentes a essa conexão no firewall. O host que tentou abrir uma porta agora está preso: a conexão é feita, mas não pode enviar nada e, como nunca recebe um FIN ou RST, ele fica preso no estado Estabelecido TCP até o tempo limite TCP *. Enquanto isso, o firewall apenas toca alegremente, já que caiu todos os estados daquela conexão, portanto nenhum recurso está sendo usado.
Uma combinação dos dois conseguiu com sucesso todos os tipos de scanners de portas. Eles morrem quando tocam no meu firewall:)
* TCP timeout é um lote maior que o tempo limite do TCP SYN. Cerca de três ordens de magnitude a mais, IIRC. Assim, os scanners de ports serão executados extremamente lentamente conforme seus encadeamentos ficarem presos esperando pelo tempo limite do TCP.