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)
security
server-security
ports
SofaKng
fuente
fuente
Respuestas:
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
fuente
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.
fuente
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-admin
y 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, en127.0.0.1
. De esta forma, no se puede acceder a ellos desde el exterior, pero puede reenviarlos conssh
. Verifiqueman ssh
si 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.
fuente
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.
fuente