¿Es seguro usar números de puerto altos? (re: ocultar servicios web)

9

Tengo una red doméstica pequeña y estoy tratando de equilibrar la necesidad de seguridad con la conveniencia. La forma más segura de proteger los servidores web internos es conectarse solo mediante VPN, pero esto parece excesivo para proteger la interfaz web remota de un DVR (por ejemplo).

Como compromiso, ¿sería mejor usar números de puertos muy grandes? (por ejemplo, cinco dígitos hasta 65531)

He leído que los escáneres de puertos generalmente solo escanean los primeros 10,000 puertos, por lo que usar números de puerto muy altos es un poco más seguro.

¿Es esto cierto?

¿Hay mejores formas de proteger los servidores web? (es decir, guis web para aplicaciones)

SofaKng
fuente
No, eso no es verdad. Las máquinas modernas de CPU multinúcleo (incluso de escritorio) con acceso de banda ancha pueden escanear todos los puertos 65535 en segundos. E incluso si el atacante decidió espaciarlos a dos por segundo para frustrar las puertas DoS, a quién le importa, dejará su sistema encendido por más de un día, ¿verdad? Una vieja máxima es, como otros han dicho a continuación, que "la seguridad a través de la oscuridad" es esencialmente inútil en el mundo digital.
msanford

Respuestas:

9

He leído que los escáneres de puertos generalmente solo escanean los primeros 10,000 puertos, por lo que usar números de puerto muy altos es un poco más seguro.

Mucha gente cree esto. Yo no.

Tal vez sea un poco más seguro, pero no mucho. Los puertos con números bajos son más comunes, por lo que algunos escáneres buscarán allí primero.

Si fuera un cracker, primero escanearía los puertos altos, solo para atrapar a las personas que confían en este método por seguridad. Las personas que confían en la seguridad a través de la oscuridad probablemente tengan una comprensión deficiente de la seguridad y es más probable que olviden usar otros métodos de seguridad. Por lo tanto, esos servicios pueden ser más vulnerables y más fáciles de descifrar.

Algunos escáneres explotan esta creencia, y comienzan en la parte superior y avanzan en la lista. Otros escaneos seleccionarán puertos aleatorios en todo el rango, por lo que todos los puertos tienen las mismas posibilidades de ser escaneados.

Continúe y pruebe esto usted mismo usando NMAP . Ejecute un escaneo nmap en los puertos 1-10,000 y busque un servidor HTTP, y compárelo con un escaneo que escanee en todos los puertos 1-65, xxx. Verá que la diferencia es generalmente de 3 a 10 minutos. Si hago un escaneo detallado usando algo como Nessus, la diferencia es a veces 20-60 minutos.

Una buena galleta es una galleta paciente. Ellos esperarán

Stefan Lasiewski
fuente
1
Suponiendo que se implementaron todas las demás medidas de seguridad relevantes, ¿sería mejor o peor ocultar los números de puerto? Mi pensamiento sería que sería un poco mejor si el servidor no estuviera específicamente dirigido.
wag2639
2
+1 "Una buena galleta es una galleta paciente. Esperarán".
msanford
@ wag2639 Realmente no estás haciendo nada cambiando el número de puerto de un servicio, sino haciendo que un kiddie de script encuentre un script ligeramente mejor. Marcar en la guerra un bloque de IP y TAMBIÉN explorar puertos en cada puerto es trivial.
msanford
Si un pirata informático persigue un objetivo en particular, entonces puede esperar 20 a 60 minutos escaneando números de puerto altos. Sin embargo, si intentan escanear cientos o miles de direcciones IP para encontrar sistemas vulnerables, entonces no escanearán los puertos altos. También necesitan saber que hay un sistema allí, antes de que puedan comenzar a apuntarlo. Si el firewall está haciendo su trabajo, entonces el sistema es básicamente invisible hasta que tropiezan con un puerto abierto.
user1751825
3

El uso de números de puerto impares no es ninguna seguridad a menos que esté ignorando el hecho de que le permite ejecutar su aplicación como usuario no root.

Este tipo de cosas pueden considerarse seguridad por oscuridad, pero en realidad no es seguridad.

Antoine Benkemoun
fuente
¿Hay alguna alternativa para usar una VPN completa? ¿Quizás algún tipo de proxy web inverso que tenga protección adicional de inicio de sesión / contraseña? (el calamar no hace esto)
SofaKng
@sofakng: puede estar interesado en un contenedor SSL como Stunnel: stunnel.org
Maxwell
3

También puede usar un túnel ssh si está usando Linux en ambos extremos:

ssh -f -N -L 9090:localhost:9090 user@remote-host

Por ejemplo, eso es lo que utilizo para reenviar el puerto 9090 en el host remoto a mi puerto local 9090 cherokee-adminy utilizo configuraciones similares para otras GUI web. Puede proteger las aplicaciones de esta manera especificando en la configuración de la aplicación que solo se ejecutan en localhost, es decir, en 127.0.0.1. De esta forma, no se puede acceder a ellos desde el exterior, pero puede reenviarlos con ssh. Verifique man sshsi hay más opciones con el reenvío de puertos (incluido X, que podría resolver su problema de otra manera por completo).

Esta podría ser una forma adecuada de lograr su objetivo sin instalar / configurar software adicional, dependiendo de su configuración.

Sam Halicke
fuente
1

Si su firewall lo permite, primero puede hacer que la autenticación se realice en el nivel de firewall, si la complejidad de sus contraseñas es lo suficientemente buena, eso debería hacer cumplir la seguridad de los servicios expuestos. También puede usar el túnel SSL utilizando, por ejemplo, stunnel y autenticación mutua.

Teniendo en cuenta el hecho de que usar un número de puertos más alto es más seguro, de cierta manera, tal vez en referencia a que los robots escaneen su IP y prueben algunas vulnerabilidades, pero si alguien realmente quiere ingresar, usar números de puertos más altos no proporcionará una mayor seguridad.

Maxwell
fuente
Estoy usando pfsense y algunos de mis servicios web tienen soporte SSL (HTTPS) incorporado. ¿Todavía es mejor usar stunnel? ¿Está usando stunnel el nivel de "autenticación en el firewall"?
SofaKng
1
¿Cómo se hace la "autenticación en el firewall"?
wag2639
No sé si pfsense tiene esa funcionalidad, pero en los enrutadores Junipers puede usar usuarios locales (incluso RADIUS) para otorgar acceso al tráfico traducido HTTP. Con respecto a Stunnel, puede usar la autenticación mutua con certificados, stunnel encapsulará el tráfico HTTP con SSL y se encargará de la autenticación.
Maxwell