¿Debo ejecutar mi pequeño sitio web en el puerto 80, 8080 u 81?

20

Estoy ejecutando un sitio web pequeño usando nginx. Dado que (probablemente) no habrá mucho tráfico en la vida útil de mi servidor y para evitar ataques DoS aleatorios, estoy considerando configurar el servidor web para que escuche en un puerto alternativo en lugar del puerto 80.

¿Escuchar en un puerto alternativo (81, 8080, etc.) realmente reduce mi riesgo de ataques o violaciones? ¿O la carga de mantenerlo supera los beneficios? En ese caso, ¿debería usar esos puertos alternativos para otros servicios web en caso de que los configure en el futuro?

oldmud0
fuente
44
¿Por qué algunos 'atacantes' se arriesgan a (D) DoS un sitio web pequeño?
Gilles Quenot

Respuestas:

40

Hay dos cosas a considerar aquí:

  1. ¿Recordarán sus usuarios usar un puerto no estándar en el nombre? De manera predeterminada, el puerto 80 es el estándar y, por lo tanto, no tiene que escribirlo en la URL. Por ejemplo, se http://superuser.comejecuta en el puerto 80 y su navegador asume que 80 es el puerto que quiere decir cuando lo escribe. No es diferente de escribir http://superuser.com:80. Si ejecuta su websever en el puerto 8080, entonces el usuario tiene que escribir http://superuser.com:8080. El usuario promedio probablemente no lo recordará.
  2. ¿Ejecutar un servidor web en un puerto no estándar lo protege de ataques DoS? Realmente no. Si alguien realmente quisiera derribar su sitio, ejecutarlo en un puerto no estándar no lo detendrá. Los atacantes escanearán todos los puertos de su IP y encontrarán rápidamente que 8080 (o lo que elija) está abierto y responde a las solicitudes HTTP.

Métodos como el cambio de puertos se llama " Seguridad a través de la oscuridad " y es muy cuestionable que el trabajo extra y las molestias brinden una seguridad valiosa.

Keltari
fuente
66
Quiero agregar que no toda la seguridad a través de la oscuridad es mala. Cambiar el administrador predeterminado o el nombre de usuario raíz se considera una buena práctica. Sin embargo, cosas como cambiar los puertos no tiene sentido ya que solo hay 32k y una computadora puede escanear eso en segundos.
Keltari
2
No agrega seguridad, pero evita que los robots de escaneo en bruto ralenticen su sitio, particularmente si el sitio tiene un registro DNS.
Nathan MacInnes
1
Depende totalmente de la escala del ataque. El uso de puertos no predeterminados puede ayudar a evadir escaneos a gran escala, por ejemplo, de / 0 para vulnerabilidades del servidor web usando zmap o nmap. Pero @Keltari es correcto, si usted es un objetivo, un atacante realizará un análisis completo de usted, determinará desde qué puerto se está ejecutando su servidor y luego terminará el juego, si es vulnerable ;-).
wi1
@NathanMacInnes con la tecnología disponible hoy en día, supongo que el número de bots que escanean un sitio pequeño es insignificante, y la desventaja de cambiar un puerto predeterminado es bastante grande.
ILikeTacos
2
Mal, es /superuser/, y se ejecuta en el puerto 443. Los sitios web seguros usan 443.
Elliot A.
5

Sí, configurar un puerto alternativo en realidad reduce los riesgos de ataques, ya que los robots que rastrean la web para encontrar aplicaciones web defectuosas generalmente no miran otros puertos.

Si un atacante humano apunta a su servidor, será realmente fácil descubrir el puerto real en el que nginx está escuchando (escaneando los puertos abiertos).

El uso de estos puertos alternativos es raro (excepto servidores proxy o ... servidores web alternativos), así que creo que puede usarlo sin temor.

Pero recuerde que el uso de un puerto alternativo de este tipo evitará que los visitantes "predeterminados" encuentren su sitio web, tendrá que decirle a la gente (o escribirlo en enlaces) el puerto correcto mediante el uso de URL como http://yourserver.com:81/ . ..

Mickaël
fuente
2

Una consideración adicional (a las dos proporcionadas por Keltari) es que el uso de un puerto no estándar puede hacer que su sitio web sea ignorado por los rastreadores web de motores de búsqueda como Google, a menos que especifique lo contrario.

Si tiene la intención de que su sitio web sea difícil de encontrar para todos, excepto para las personas a las que proporciona un enlace, entonces usar un puerto no estándar parece ser favorable, pero de lo contrario me iría con un puerto estándar.

Liang
fuente
1

Depende. ¿De qué sirve el "sitio pequeño"?

  • Si va a ser utilizado por otras personas, recomendaría usar puertos estándar. Como se menciona en la mayoría de las respuestas, el uso de un puerto no estándar requiere que el usuario especifique el puerto (por ejemplo, para el puerto 81 -> yoursite.com:81). Si utiliza un puerto estándar, el navegador infiere el puerto desde el protocolo (http, https). http: // es normalmente el puerto 80 y https: // es normalmente el puerto 443, a menos que se anule. Recomiendo usar puertos estándar. Claro, PUEDES poner la única entrada a una casa en el patio trasero, pero ¿cómo sabrán los visitantes que está allí?

  • Si es un sitio de prueba que solo usa usted, hay dos cosas que debe preguntarse:

    • ¿Se adjuntará a un registro DNS (nombre de dominio)? (Creo que mis servidores sin referencias DNS son mucho más silenciosos en cuanto a ataques. NOTA: no considere esto como más seguro. No lo es; solo hace que sea más difícil para los atacantes encontrarlo a través de DNS)
    • ¿Está de acuerdo con escribir manualmente el puerto y / o IP?

TL; DR:

  • Usado por otras personas: use 80/443
  • Privado: depende de ti
Luke Adams
fuente
0

Puede ejecutar el servidor http en cualquier puerto, pero será difícil para sus internautas y usuarios recordar el puerto.

Reducirá el riesgo de ataques o infracciones, pero también hay otras formas, como proteger su servidor y mantener el servidor HTTP en el puerto 80

AMB
fuente