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

9

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

-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 ao RST para SYN. Existe uma maneira de modificar esse comportamento? Por exemplo: se o firewall do iptables bloquear uma porta, responda RST para SYN, em vez de permanecer em silêncio (sem responder nada)?

user3125731
fonte

Respostas:

18

Não use DROP, que é facilmente identificado como "filtrado" se você souber que a caixa está aberta. 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 suas)

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

Ou então, basta usar o seguinte para fazer a porta parecer fechada. (como se não houvesse serviço escutando)

-A INPUT -p tcp -m tcp --dport 22 -j REJECT
jornane
fonte
9
-A INPUT -p tcp -m tcp --dport 995 -j REJECT --reject-with tcp-reset

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

Sven
fonte