![Abrir el puerto de forma segura](https://rvso.com/image/761003/Abrir%20el%20puerto%20de%20forma%20segura.png)
Estoy operando una aplicación web a la que solo debería poder acceder un pequeño número de personas equipadas con tabletas. Se sirve en el puerto 80 de un servidor que está en nuestra red local detrás del enrutador ISP.
La pregunta es: ¿cómo puedo garantizar el acceso de un usuario autorizado sin que ningún otro usuario pueda acceder a él? Los usuarios no autorizados deberían finalizar restableciendo la conexión como si el puerto no estuviera abierto.
Pensé en abrir un puerto en el enrutador, redirigirlo al servidor y protegerlo con un certificado, pero ¿es eso posible?
Otra solución podría ser instalar una VPN, pero puede resultar demasiado difícil de gestionar para algunos usuarios.
Respuesta1
Hay muchas maneras de hacerlo, pero la correcta depende de qué otros mecanismos de seguridad tenga implementados. Ejemplos:
- Certificados de cliente. Esto es muy posible, excepto que desee utilizar el puerto 80, que normalmente no está cifrado. Necesitará reconfigurar su servidor web o colocar un proxy delante de él, pero esto es ciertamente posible. Hacerlo con Apache se describe aquí,https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#allclients
- Filtrar por dirección IP o MAC a nivel de red, es decir, en el firewall.
- Utilice una VPN como mencionaste. Esto puede hacerse razonablemente transparente para los usuarios.
- Verifique si hay un encabezado de autenticación en el servidor web o en un proxy frente a él.
Sin duda hay más. Algunos de ellos no son adecuados a menos que cuente con métodos de autenticación adicionales, por ejemplo, las direcciones MAC se pueden falsificar fácilmente. Otras opciones estarán disponibles si flexibiliza el requisito de que el puerto de red aparezca cerrado, porque muchos métodos de autenticación no funcionan hasta que se abre el puerto.
Respuesta2
Tu pregunta es algo genérica. Puede realizar una o más de las siguientes acciones:
- Requiere un nombre de usuario/contraseña válido para acceder a su aplicación web. Esto se puede hacer a nivel de aplicación o a nivel de servidor web (por ejemplo, apache2).
- Proteja el acceso a esta IP/puerto configurando un firewall. Sólo se permiten IP específicas. A otros se les niega. Esto requiere que obtenga una lista de las IP de sus usuarios.
- Redirigir a los usuarios de http (puerto 80) a https (puerto 443) para protegerlos contra ataques como el ataque de intermediario.
- Mantenga privado el acceso al servidor y canalice el tráfico de sus usuarios a su red (una de las soluciones VPN que requiere autenticación).