¿Qué es y para qué sirve?
Si tienes algo que ofrecer al mundo y quieres ponerlo a su disposición en Internet… entonces tienes que abrir un puerto.
La apertura de puertos se podría definir como la configuración necesaria en nuestro router o firewall para autorizar que un programa, ubicado en nuestro equipo o servidor, pueda ofrecer sus servicios al mundo (o a quien decidas). Dependiendo de si estamos detrás de un router con IP pública o disponemos de dicha IP configurada en nuestro servidor tendremos que realizar una o dos acciones:
- Si estamos detrás de un router con IP pública: procederemos a realizar una NAT de destino (Destination NAT). Se modificaran los paquetes que vayan con destino a nuestra IP pública y el puerto elegido, cambiando dicha IP pública por la IP privada de nuestro servidor. Este cambio se almacenará en la tabla de NATs del router.
- Si tenemos la IP pública en nuestro servidor: procederemos a autorizar en el firewall el puerto que necesitamos.
En el ámbito doméstico normalmente podríamos abrir puertos para:
- Acceder desde cualquier lugar del mundo a nuestra Cámara IP y vigilar que está ocurriendo en nuestra casa.
- Conectar con nuestra NAS favorita y sincronizar con el móvil esas fotos que acabamos de realizar.
- Conectarnos a nuestro servidor de domótica para activar la calefacción antes de llegar a casa.
- Compartir ficheros con algún software P2P.
En el ámbito profesional se suelen abrir para:
- Publicar los servicios Web de nuestra empresa.
- Acceder al servidor de correo electrónico.
- Conectarnos al servidor de la oficina para terminar algún trabajo urgente.
- Conectarnos al videograbador para vigilar la actividad en la empresa tras un aviso del sensor de movimiento.
- Permitir a la empresa de mantenimiento del edificio que acceda a sistemas de climatización, motores, lumirias, SACADA.
¿Realmente es necesario que acceda todo el mundo?
Son miles las razones por las que necesitaríamos abrir un puerto, pero no en todas está justificado hacerlo para todo el mundo. Cuando autorizamos a que «el mundo» pueda acceder a alguno de nuestros recursos internos estamos asumiendo un riesgo. Tenemos que ser conscientes de que el software está programado y configurado por personas y que estas cometen errores. Cuando un programa está escuchando en ese puerto abierto y esperando conexiones del exterior, éste puede tener errores de programación y vulnerabilidades graves todavía no descubiertas (conocidas como 0-Day). También puede estar mal configurado por el usuario y tener las contraseñas por defecto como «admin/admin» o «1234/1234». O incluso estar configurado adrede por la pereza de no complicarnos la vida en complejas configuraciones o porque tengamos tanta prisa que dejemos para otro día eso de la seguridad…-Total, eso solo pasa en las películas-.
Para mostrar la facilidad con que cualquiera puede «ojear» lo que otros tienen publicado en Internet consciente o inconscientemente, he aquí algunos recursos gratuitos en Internet donde a más de uno le sorprenderá ver su IP registrada con algún puerto abierto:
Este tipo de buscadores se especializa en rastrear en Internet una y otra vez y catalogar los puertos que las personas de a pié tenemos abiertos a Internet. Es fácil pues observar en esta Web como hay más de 10.000 cámaras IP o 1623 dispositivos con el usuario y contraseñas por defecto. Existen muchas webs de búsqueda parecidas indagando en lo que llaman la DeepWeb…
También podemos observar con este otro enlace que la famosa vulnerabilidad del «corazón sangrante» que apareció allá por 2014 todavía está activa en muchos equipos en Internet ya sea por la ignorancia de tal fallo o por la falta de recursos para migrar los servicios.
¿Qué podemos hacer?
Como todo, en esto de la seguridad lo principal es reflexionar y hacernos un par de preguntas: ¿realmente necesito abrir un puerto? ¿quién necesita acceder y desde dónde?
OPCIÓN 1: TODO EL MUNDO
Si realmente necesitas servir algún servicio en Internet te aconsejamos tener en cuenta los siguientes criterios:
- Utilizar un firewall en el servidor o un firewall perimetral que te garantice que solo tienes abierto el puerto que quieres y no más. Es fácil equivocarse y compartir también las carpetas de nuestro equipo.
- Ubicar el servidor en una zona desmilitarizada (DMZ), donde no coexistan equipos de usuarios y oficina. De esta forma evitaremos que un intruso en el servidor no tenga tan fácil saltar a un puesto de trabajo u otros servidores.
- Mantener el software lo más actualizado posible.
- Utilizar un firewall de nueva generación. Son equipos avanzados que no solo abren y cierran puertos, sino que observan el comportamiento de quien accede para detectar alguna anomalía o están al día de las vulnerabilidades en el software, protegiéndonos mejor en ambos casos.
OPCION 2: SOLO YO Y MI LISTA DE AUTORIZADOS
Si tus necesidades básicamente son acceder tú mismo, tus colaboradores o proveedores a tus recursos internos, entonces no tenemos que dejar la puerta abierta a nadie más. Evitaremos así cientos de intentos de intrusión no autorizados. Existen varias técnicas para llegar a este fin pero dependerán de nuestra topología y la de nuestros colaboradores:
- Si el Usuario remoto dispone de una IP pública Fija podemos realizar una NAT CON FILTRADO DE ORIGEN, bastará con añadir a nuestro router/firewall una línea adicional autorizando a que los paquetes con dicho origen van a autorizarse para realizar la función de NAT. Es una configuración muy sencilla pero el router/firewall debe de poder soportarla.
- Si el Usuario remoto NO dispone de IP pública Fija, la técnica más recomendable es una conexión por VPN (Red Privada Virtual). Con esto tendremos que “marcar” a nuestro router, establecer un canal seguro de comunicación encriptando todos los datos que viajan por el túnel, y trabajar como si físicamente estuviéramos en la oficina o casa. Evidentemente se requiere un router o firewall con capacidades de VPN o algún software en nuestro servidor que simule dicha funcionalidad.
Existen algunas otras técnicas y programas alternativos de acceso remoto a nuestros sistemas internos, pero quedan fuera de nuestro control y ponemos en manos de terceros nuestra seguridad. La recomendación siempre en estos casos es intentar tener nosotros el control completo de los sistemas. Un simple router con capacidades de VPN o de NATs CON FILTRO DE IP DE ORIGEN y un par de buenas prácticas a la hora de configurar nuestros sistemas es simplemente lo que necesitamos para exponernos lo justo y necesario en ese mar lleno de peces y tiburones llamado Internet.