Cuando en un entorno nos encontramos con que varios servicios utilizan el mismo puerto; y necesitamos tener acceso a ellos desde el exterior,tenemos que utilizar técnicas de nateo de puertos o Dynamic NAT. Generalmente se realiza con un dispositivo router, en nuestro caso es un Windows Server 2016.

Port Forwarding o Dynamic NAT, (a partir de ahora lo vamos a llamar nateo de puertos) se suele realizar principalmente por dos motivos.

  1. Seguridad. Habitualmente para evitar intrusiones, debemos de tener cerrados de forma externa los puertos más habituales. Ejemplo: HTTP (80), HTTPS (443) o Telnet (23) y SSH (22). Con esto evitamos ataques sencillos. Para ello se suelen utilizar puertos menos conocidos, y hacer una traducción del puerto al que realmente utiliza el servicio.
  2. Coexistencia de mismos servicios con el mismo puerto. Ejemplo: Disponemos de dos servidores web, totalmente diferenciados, uno es la página pública de la empresa y otra es la Intranet.  Ambas funcionan por el puerto 80, las personas que acceden desde internet necesitan igualmente acceder a la página pública, como a la Intranet para ver las nóminas.

¿Que necesitamos para realizar un Dynamic Nat?

  • Dirección pública donde vamos a utilizar el puerto externo. (En este caso un Servidor Windows Server 2016, con el Rol de Remote Access). Dirección pública a la que accedemos al servicio. Por ejemplo 172.40.16.254 con el puerto 2000
  • Dirección y puerto local de la máquina que almacena el servicio. IP interna de la maquina que tiene instalado el servicio que vamos a publicar, por ejemplo 192.168.1.101 y si el puerto 80 como puede ser un servidor web.

Entonces con un Dynamic NAT lo que hacemos es reenviar el tráfico que se recibe en la IP 172.40.16.254:2000 y reenviarlo a la maquina interna 192.168.1.101:80, y viceversa.

De esta forma si contaramos con un dominio publico,  ejemplo adatum.com, podríamos redirigir el DNS del ISP para que apuntara a la dirección 172.40.16.254:2000 y tendríamos nuestra página web publicada y unida al nombre de dominio.

No deberíamos abrir servicios directamente al exterior sin la correspondiente seguridad, ya que seríamos un blanco fácil de ataques y estaríamos más tiempo intentando arreglar los problemas causados que haciendo las cosas bien.

En el caso que se pudiera implementar un servicio de autenticación que validara las conexiones externas sería un primer punto de seguridad tipo VPN, también podemos configurarlo con la consola mencionada anteriormente. También se pueden implementar certificados privados y públicos para mejorar las conexiones.

¿Que ventajas puede tener publicar una página web o un servicio?

Principalmente el coste de las soluciones. Dependiendo de las aplicaciones que instalemos, el tenerlas alojadas en un servidor hospedado en un ISP, o tenerlas nosotros mismo puede variar bastante. Tenemos que pensar el coste que nos va a repercutir tener que implementar toda la seguridad y el tiempo que vamos a tener que dedicarle a su mantenimiento.

Otra ventaja, no necesitaremos ninguna conexión a parte para conectarse con bases de datos internas. Por ejemplo, si tenemos una aplicación Front en la que un usuario de contabilidad que trabaja en su casa introduciendo datos, esta no tendremos ningún problema al unirla al sistema de bases de datos que tenemos en la oficina.

¿Que desventajas puede tener publicar una página web o un servicio?

La seguridad es uno de los aspectos que más tenemos que tener en cuenta como hemos comentado anteriormente. Pero además, tenemos que pensar la disponibilidad que ese servicio tiene que tener, si necesitamos que este trabajando 24×7, necesitaremos aplicar en nuestro CPD unas medidas para cumplir con estas expectativas.

  • Medidas en caso de fallo eléctrico
  • Soluciones de backup en caso de caída del servicio de Internet
  • Plan de contigencia en caso de degradación del servicio

Como veis cada solución tiene sus ventajas y desventajas, tendremos que saber para que lo vamos a utilizar y hasta donde queremos llegar para valorar la mejor solución.

Autor/a: Victor Rodilla Marin

Curso: Microsoft MCSA Windows Server 2016 + Microsoft MCSE Cloud Platform & Infrastructure

Centro: Tajamar

Año académico: 2017-2018

Linkedin: https://www.linkedin.com/in/victorrodilla/