Cómo configurar iptables para que un puerto no deseado no se informe como filtrado

9

Me gustaría evitar que otros vean mis puertos como filtrados en el escaneo estándar de nmap (sin privilegios). Digamos que tengo los siguientes puertos abiertos: 22, 3306, 995 y un firewall configurado de esta manera:

-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 es el resultado de un escaneo 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

Muestra estos puertos como filtrados, porque mi servidor no respondió RST para SYN. ¿Hay alguna forma de modificar este comportamiento? Por ejemplo: si el firewall de iptables bloquea un puerto, ¿responde RST para SYN, en lugar de permanecer en silencio (sin responder nada)?

usuario3125731
fuente

Respuestas:

18

No use DROP, eso se identifica fácilmente como "filtrado" si sabe que la caja está activa. En su lugar, puede usar lo siguiente para enviar un RST. (como si hubiera un servicio escuchando, pero no acepta conexiones suyas)

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

O de lo contrario, simplemente use lo siguiente para hacer que el puerto parezca cerrado. (como si no hay servicio escuchando en él)

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

debería estar haciendo lo que quiere (responda con RST).

Sven
fuente