¿Debo cerrar el puerto 80 para siempre desde las iniciativas de seguridad web indicadas por Google en 2018?

45

A menudo establezco entornos Ubuntu- LAMP en los que tengo algunos Drupal aplicaciones web que yo mismo poseo (no proporciono ningún servicio de alojamiento y nunca lo hice en el pasado).

Cuando establezco un entorno de este tipo, los pasos de seguridad más fundamentales que tomo son estos:

ufw --force enable
ufw allow 22,25,80,443 # All allowed via both TCP/UPD as no restrictions were given;
apt update -y
apt upgrade unattended-upgrades sshguard

Después del 2017-2018 W3C / Google (?) Reformas con respecto al soporte del navegador en HTTP, que requieren o al menos nos alientan a usar TLS el cifrado confirmado con un certificado SSL para la transferencia segura de datos HTTP (HTTPS), me pregunto si el HTTP no está protegido a través del puerto 80) sigue siendo relevante para cualquiera de nosotros.

Notas:

  1. Cada una de mis aplicaciones web tiene su propio certificado OpenSSL que yo creo con Certbot .
  2. La única utilidad web que uso además de los sitios web es PHPMyAdmin / PHPMiniAdmin.

Mi pregunta

¿Puedo eliminar el puerto 80 de ufw allow 22,25,80,443 , lo que hace que mi sistema sea un poco menos "vulnerable"?

Actualización por respuestas

Las respuestas recomiendan redireccionar desde el puerto 80 al puerto 443 en lugar de solo bloquear el puerto 80. Creo que Certbot crea estos redireccionamientos automáticamente, por lo que estoy cubierto si mantengo el puerto 80 abierto como se recomienda en las respuestas.

    
pregunta JohnDoea 23.11.2018 - 08:26
fuente

5 respuestas

63

Google, el principal motor de búsqueda de Internet (que empequeñece a Bing y Yahoo), y el navegador utilizado por la mayoría de los usuarios de Internet, ha estado presionando por un mundo de solo HTTPS al disminuir el rango de la página para los sitios que no lo hacen. , y agregar una advertencia al navegador cuando un sitio no es seguro . Sin embargo, la proporción de sitios HTTPS a no es todavía demasiado baja como para recomendar una política HTTPS-first para todos, porque los usuarios recibirían constantemente mensajes de "error de certificado" o errores de "conexión rechazada".

Por lo tanto, hasta que Google recomiende una política HTTPS-first para las conexiones del navegador, tampoco es probable que Firefox, Apple o Microsoft recomienden dichas políticas, y eso no es probable hasta que la mayoría sea decente (quizás 70% o más) de los sitios principales están habilitados para HTTPS, lo que supondría un gran aumento de ~ 50% de sitios principales que tienen HTTPS hoy .

La mayoría de los usuarios que intencionalmente o accidentalmente visitan su sitio HTTP, si son recibidos con un error de "conexión rechazada", probablemente pasarán a otro sitio. No tengo una buena manera de obtener números concretos aquí, pero es probable que el 70-90% de los usuarios de Internet no se den cuenta de que el sitio no tiene un puerto HTTP sin un redireccionamiento automático; los restantes probablemente sean técnicamente lo suficientemente competentes como para darse cuenta de que necesitan HTTPS, o usar HTTPS en todas partes, y no se darían cuenta de todos modos.

Definitivamente use HSTS, definitivamente 301 redirigido a recursos HTTPS (el 301 indica un movimiento permanente a los navegadores, por lo que "recordarán" esta preferencia), definitivamente recomendará a sus usuarios asegurarse de que vean un candado y verificar el certificado, etc. No bloquee el puerto 80 en este punto, ya que Internet simplemente no está listo para esto todavía.

Por lo que sé, no hay sitios importantes que hayan desactivado HTTP y el puerto 80. Si hace esto, estará rompiendo las expectativas del usuario (que el sitio lo reenviará a un sitio seguro), y dado que la mayoría de los usuarios no sabrán qué hacer aquí, ya que no recibirán un mensaje de error amigable, simplemente asumirán que su sitio está roto y seguir adelante.

    
respondido por el phyrfox 23.11.2018 - 09:39
fuente
60

No debe cerrar el puerto 80. En su lugar, debe configurar su servidor para redirigir el puerto HTTP 80 al puerto HTTPS 443 para utilizar TLS. Opcionalmente, puede usar HSTS (Seguridad de transporte estricto de HTTP) para indicar a los navegadores que recuerden que solo deben usar TLS cuando se conectan a su sitio en el futuro.

No hay nada inseguro en que el puerto 80 esté abierto. Los problemas de seguridad solo se producen cuando el servidor web atiende solicitudes a través de una conexión no cifrada, especialmente si esas solicitudes contienen datos confidenciales. Tener el puerto 80 abierto y no enviar más que un redireccionamiento HTTP es perfectamente seguro.

    
respondido por el forest 23.11.2018 - 08:28
fuente
5

En resumen: usualmente, manténgalo abierto y utilícelo para redireccionar todo a HTTPS .

Ahora, en cosas complicadas : quitar el puerto 80 puede detener a los ladrones de cookies que buscan pasivamente las solicitudes de straggle http://corp.com/some/forgotten/thing . La conexión TCP no se realiza correctamente, el navegador no envía el GET y las cookies, y el malo no puede leerlos.

A veces, esto es algo razonable contra lo que protegerse, especialmente pensando en entornos corporativos: aplicaciones heredadas, HSTS solo implementado parcialmente , cookies que pueden carecer de la bandera segura o ruta o restricciones del host , terceros alojados o enviados por proxy, ...

Ahora, ¿debería usted bloquearlo? Probablemente no.

Como mencionaron otros, eso sería complica la configuración de Let's Encrypt y evita las redirecciones (incluidos los usuarios que solo escriben your.com en la barra de direcciones). Si ha establecido HSTS en todo el dominio, la eliminación de redirecciones puede incluso considerarse contraproducente (es posible que desee arriesgar una conexión HTTP simple para que proteja a todos en el futuro).

Además, tenga en cuenta que los atacantes activos no se detendrán (pueden completar la conexión de forma artificial, las herramientas proxy de MITM pueden incluso hacer esto de manera predeterminada), hay casos de esquina (proxies HTTP simples, dominios delegados fuera de su firewall), y puedes considerar que el ataque pasivo es demasiado complicado para tu modelo.

Finalmente, ¿debería agregar el puerto 80 a un nuevo servidor? Bueno, a menos que ya tenga un motivo para abrirlo (ver más arriba), no.

    
respondido por el Jacopo 24.11.2018 - 09:18
fuente
4

Además de las respuestas del otro bosque y de phyrfox, la verificación ACME http-01 usa el puerto 80 para llegar a sus servidores. Si cierra el puerto, no podrá renovar ni crear certificados.

    
respondido por el Umur Kontacı 24.11.2018 - 10:24
fuente
0

Yo digo que es situacional. Si su sitio solo sirve API, o es un servidor de contenido backend o estático, es muy poco probable que sus usuarios típicos escriban la dirección de su servidor para visitar su sitio o hagan un marcador en la página (porque la dirección de este servidor nunca aparece en la barra de direcciones), entonces es probable que no haya ningún daño que pueda causar al cerrar el puerto 80 para ese servidor.

Si su sitio es un sitio nuevo, sin un historial de personas que usen su sitio en HTTP nunca y sin un marcador existente o si su sitio no contiene contenido que las personas puedan compartir usando el enlace, entonces puede considerar el cierre puerto 80.

Para los servidores que sirven a su página de inicio, es probable que aún desee mantener el puerto 80 por ahora, ya que es mucho más probable que las personas que escriben la URL en la barra de direcciones los visiten. Además, si anuncia la dirección de su página en el mundo físico (por ejemplo, en anuncios físicos) o en un medio donde las personas no pueden hacer clic fácilmente, es posible que desee mantener el puerto 80.

    
respondido por el Lie Ryan 11.12.2018 - 11:54
fuente

Lea otras preguntas en las etiquetas