Como configurar iptables para que uma porta indesejada não seja reportada como filtrada

8

Gostaria de impedir que outras pessoas vejam minhas portas como filtradas na verificação padrão do nmap (sem privilégios). Digamos que eu tenha as seguintes portas abertas: 22, 3306, 995 e um firewall configurado da seguinte forma:

-A INPUT -p tcp -m tcp --dport 22 -j DROP
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p tcp -m tcp --dport 995 -j DROP

Este é o resultado de uma varredura nmap:

[+] Nmap scan report for X.X.X.X

    Host is up (0.040s latency).
    Not shown: 90 closed ports

    PORT     STATE    SERVICE
    22/tcp   filtered ssh
    995/tcp  filtered pop3s
    3306/tcp filtered mysql

Ele exibe essas portas como filtradas, porque meu servidor não respondeu RST para SYN. Existe uma maneira de modificar esse comportamento? Por exemplo: se o firewall iptables bloquear uma porta, responda RST para SYN, em vez de ficar em silêncio (não respondendo nada)?

    
por user3125731 14.03.2016 / 12:50

2 respostas

18

Não use DROP, que é facilmente identificado como "filtrado" se você souber que a caixa está ativa. Em vez disso, você pode usar o seguinte para enviar um RST. (como se houvesse um serviço escutando, mas ele não aceita conexões de você)

-A INPUT -p tcp -m tcp --dport 22 -j REJECT --reject-with tcp-reset

Ou simplesmente use o seguinte para fazer a porta parecer fechada. (como se não houvesse nenhum serviço escutando)

-A INPUT -p tcp -m tcp --dport 22 -j REJECT
    
por 14.03.2016 / 12:59
9
-A INPUT -p tcp -m tcp --dport 995 -j REJECT --reject-with tcp-reset

deve estar fazendo o que você quer (responder com RST).

    
por 14.03.2016 / 12:58