4 · Seguridad·6 min de lectura
El puerto que dejamos abierto a propósito. Hoy lo cerramos, y nadie se quedó afuera.
Meses atrás escribimos que teníamos un puerto abierto a internet recibiendo decenas de miles de intentos de acceso al día, y que decidimos no cerrarlo todavía. No fue descuido. Era la única entrada al servidor de una empresa manufacturera, y cerrarla antes de tener otra habría dejado a todos afuera —incluidos nosotros—.
Este es el capítulo donde por fin lo cerramos. Y no se cayó nada.
La condición que faltaba#
Cerrar el puerto nunca fue el problema. El problema era tener por dónde entrar después. Durante las semanas anteriores se construyó esa otra vía: un túnel privado que lleva a una sola dirección —el servidor— y por el que se dio de alta, uno por uno, a cada persona que necesita entrar. Cada quien con la cuenta de la empresa, no una compartida ni una prestada.
Con todos adentro y probados, la condición se cumplió: existe una segunda puerta, funciona, y la usa gente real todos los días. Solo entonces tiene sentido cerrar la primera.
El puerto no estaba donde lo habíamos cerrado#
Aquí está la parte que casi cuesta caro.
Ese puerto ya lo habíamos "cerrado" una vez —en el firewall del propio servidor—. Y aun así seguía contestando desde internet.
La razón: la exposición no vivía en el servidor, vivía en el módem. El módem de fibra que instala el proveedor de internet tenía una regla de reenvío de puertos que agarraba el tráfico que llegaba de la calle a ese puerto y lo empujaba directo al escritorio remoto del servidor. El firewall del equipo podía decir lo que quisiera: la puerta la abría el módem, un paso antes.
Cerrar en el firewall y creer que cerraste en internet es el error clásico. Son dos cerrojos distintos, en dos aparatos distintos.
La llave del módem estaba en la etiqueta#
Para cerrar esa regla hay que entrar al panel de administración del módem. Y ahí aparece el detalle que da título a todo esto: ese panel tiene que estar bajo las credenciales de la empresa —no las del técnico que lo instaló, ni las de fábrica que nadie cambió—.
Resultó más fácil, y más incómodo, de lo esperado. La contraseña de administrador era la misma clave de WiFi impresa en la etiqueta de abajo del módem, con el usuario que el proveedor usa por defecto.
Eso tiene dos lecturas, y las dos importan:
- La buena: el dueño del negocio no depende de nadie para administrar su propia red. La llave viene pegada al equipo; es suya.
- La incómoda: cualquiera con acceso físico al módem —o que le tome una foto a la etiqueta— tiene acceso de administrador. La misma comodidad es la vulnerabilidad.
Saberlo ya es parte del trabajo. Un módem en una oficina abierta, con la etiqueta a la vista, es un panel de administración a la vista.
Dos puertas, no una#
Dentro del panel, la regla estaba clarísima. Un solo renglón, con nombre y apellido:
Reenvío de puertos
RDP_8088 WAN · TCP · 8088 -> 192.168.1.NNN : 8088 [Encendido]
WAN es "desde internet"; a la izquierda el puerto que llega de la calle, a la derecha el equipo interno al que lo manda. El nombre —RDP_8088— no dejaba dudas de qué abría.La pusimos en Apagado. No borrar: apagada queda reversible, y un cerrojo que puedes volver a abrir con un clic es mejor que uno que hay que reconstruir.
Y antes de cantar victoria, revisamos la pestaña de al lado: DMZ. Estaba apagada, y menos mal. La DMZ es una puerta que abre todos los puertos de un equipo a la vez; si hubiera estado encendida apuntando al servidor, apagar el reenvío no habría servido de nada. Es el segundo cerrojo que casi nadie revisa.
La prueba se hace desde afuera#
Un puerto cerrado no se verifica desde adentro de la red —desde adentro siempre se ve abierto—. Se verifica desde internet, como lo vería un atacante. Desde una máquina fuera de esa red, tocamos el puerto por su dirección pública:
$ nc -z -v acceso.<empresa> 8088
Operation timed out
nc toca un puerto para ver si contesta. timed out —expiró— es la mejor respuesta posible: el módem tira el paquete al piso sin responder. No es "rechazado" (que sería algo contestando "no"); es silencio. Desde afuera, el puerto ya no existe.Antes de esto, esa misma línea entregaba directo la pantalla de inicio de sesión del servidor. Ahora no hay a qué tocar.
El acceso interno siguió intacto#
Cerrar la puerta pública no debía afectar a quien entra por la privada. Se verificó en el acto, por el túnel:
$ route -n get 192.168.1.NNN
interface: utun10
$ nc -z 192.168.1.NNN 8088
succeeded!
route get confirma que el tráfico al servidor sale por utun10 —el túnel—, no por la red local. Y nc confirma que el puerto responde por ahí. La misma puerta que para internet ya no existe, para quien está en el túnel sigue abierta.Una puerta cerrada para todo el mundo y abierta solo para los tuyos. Eso era lo que faltaba desde el primer artículo.
Lo que hicimos#
1. Construimos la entrada nueva antes de tocar la vieja. El túnel privado, con cada usuario dado de alta bajo la cuenta de la empresa, funcionando con gente real. La puerta vieja no se tocó hasta que la nueva estuvo probada.
2. Cerramos donde de verdad vivía la exposición. No en el firewall del servidor —donde ya "estaba cerrado" y seguía abierto—, sino en el módem, un paso antes, que es donde internet toca la red.
3. Dejamos a la empresa como dueña de su propia llave. El panel del módem quedó bajo credenciales del negocio, no del proveedor ni del técnico.
4. Revisamos la segunda puerta. Apagar el reenvío sin revisar la DMZ es cerrar con llave una puerta y dejar la otra de par en par.
5. Verificamos desde afuera, no desde adentro. Un puerto se declara cerrado cuando expira visto desde internet, no cuando el panel dice que la regla está apagada.
Lo que queda como regla#
El orden importa más que el candado. Cerrar es fácil; cerrar sin dejar a nadie afuera exige construir primero la otra entrada y probarla con una persona real. Casi todo el trabajo de este cierre pasó antes de tocar la regla.
La puerta a internet no vive en tu servidor; vive en el módem del proveedor. El firewall del equipo protege de la red hacia adentro. Lo que expone a la calle es el reenvío de puertos del módem, y es ahí donde se cierra de verdad.
Que puedas administrar tu módem es una ventaja; que su llave viva en una etiqueta es un riesgo. Las dos cosas son ciertas al mismo tiempo. Lo mínimo es saberlo, y no dejar el equipo con la etiqueta a la vista de cualquiera.
Un cerrojo se apaga, no se destruye. Reversible siempre que se pueda: la regla quedó apagada, lista para volver en un clic si algún día hiciera falta.
El antes y el después#
| Antes | Después | |
|---|---|---|
| La puerta al servidor | Abierta a internet, 24 horas | Cerrada; invisible desde la calle |
| Cómo entra el equipo | El puerto público, para cualquiera | Túnel privado, un usuario a la vez |
| Quién manda en el módem | Lo de fábrica del proveedor | La cuenta de la empresa |
| La segunda puerta (DMZ) | Sin revisar | Confirmada apagada |
| Ataques al día desde internet | ~150,000 | 0 |
El recorrido#
Cuatro pasos, y el número que importa en cada uno:
| Momento | Qué pasó | Ataques/día |
|---|---|---|
| El hallazgo | Un puerto de escritorio remoto, abierto a internet, bajo ataque constante | ~150,000 |
| El primer cierre | Lo "cerramos" en el firewall del servidor. No estaba ahí: seguía respondiendo | ~150,000 |
| El puente | Semanas: se construyó el túnel privado y se dio de alta a cada usuario, uno por uno | ~150,000 |
| El cierre real · 13-sep | Se apagó el reenvío en el módem. El servidor desapareció de internet | 0 |
Tres pasos con la puerta abierta, uno con la puerta quitada. El ataque no bajó por presión: bajó cuando dejó de existir el objetivo.
La evidencia#
El puerto llegó a recibir del orden de 150,000 intentos de acceso al día —con picos por encima de 158,000 en una sola jornada—. No se bloquearon uno por uno, ni se filtraron, ni se escondieron: se quitó la puerta. Desde internet, el servidor ya no aparece —el puerto expira sin contestar—, y lo que no se puede tocar no se puede atacar. Adentro, por el túnel, todo sigue igual de accesible que siempre.
De ~150,000 al día a 0:
La serie, capítulo por capítulo#
Este caso se contó en cuatro entregas. En orden de lectura:
- Lo que detuvo 158,000 ataques diarios no aparece en ninguna cotización
- Teníamos un puerto abierto recibiendo 158,000 ataques al día. Decidimos no cerrarlo todavía
- Cerramos el puerto por el que entraban 145,000 ataques al día — y el firewall no servía
- El puerto que dejamos abierto a propósito. Hoy lo cerramos — este capítulo.
La serie completa —seguridad, infraestructura, datos y negocio— está en trevainnovate.com/blog.
Caso real de una empresa manufacturera. El nombre, la dirección pública, la serie del equipo y las contraseñas se omitieron; las direcciones internas están enmascaradas y los rangos mostrados son los que define el estándar, que no identifican a nadie.