Cuando montas un servidor Linux en casa o en la oficina (en este caso Debian 12 con osTicket), tarde o temprano necesitas poder llegar a él desde fuera de tu red local. Esta guía recoge el flujo completo: endurecer el acceso SSH, configurar el firewall UFW, abrir los puertos en el router con port forwarding y dejar el servidor accesible por un nombre estable con DDNS, aunque tu IP pública cambie.
1. SSH: configuración básica
Diferencia entre los dos archivos de configuración
- sshd_config: cómo se comporta tu equipo cuando otros se conectan a él (servidor).
- ssh_config: cómo se comporta tu equipo cuando tú te conectas a otros (cliente).
Cambiar el puerto SSH (de 22 a 2235)
El puerto 22 recibe miles de intentos automatizados al día. Moverlo a un puerto alto no es seguridad real, pero reduce mucho el ruido en los logs.
Edita el archivo de configuración del servidor SSH:
sudo nano /etc/ssh/sshd_config
Busca la línea #Port 22 y cámbiala por Port 2235. Después guarda y reinicia el servicio:
sudo systemctl restart sshd
Aviso: antes de reiniciar el servicio, abre el nuevo puerto en el firewall o perderás el acceso a la máquina.
Conectarse especificando puerto
ssh -p 2235 usuario@ip_del_servidor
Simplificar conexiones con ssh_config
En lugar de escribir siempre todos los parámetros, guárdalos en ~/.ssh/config (en el equipo cliente):
Host miservidor
HostName 192.168.1.50
User tu_usuario
Port 2235
Y conéctate simplemente con ssh miservidor. Puedes definir varios servidores en el mismo archivo, cada uno con su bloque Host.
2. Firewall UFW
UFW es la forma más sencilla de gestionar reglas de firewall en Debian/Ubuntu sin pelearse con iptables.
Instalación y estado
sudo apt install ufw
sudo ufw status
Importante: permitir SSH antes de activar
Aviso: si activas UFW sin abrir antes el puerto SSH, perderás el acceso al servidor si estás conectado en remoto.
sudo ufw allow 2235
sudo ufw enable
Permitir y denegar puertos
sudo ufw allow 80
sudo ufw allow 443
sudo ufw deny 3306
El primer comando abre HTTP, el segundo HTTPS y el tercero cierra MySQL al exterior (debe quedar accesible solo desde la red local).
Borrar reglas
La forma más cómoda es por número:
sudo ufw status numbered
sudo ufw delete 2
También puedes borrar por nombre de regla, por ejemplo sudo ufw delete allow 80. Para desactivar el firewall por completo: sudo ufw disable.
3. Acceso desde fuera: port forwarding
El router recibe las conexiones del exterior y las redirige al servidor interno. Los pasos en el router son siempre los mismos:
- Entrar al panel de administración del router.
- Buscar la sección Port Forwarding o Redirección de puertos.
- Crear una regla del tipo: puerto externo 80 → IP interna del servidor → puerto interno 80 (o 8080, ver siguiente apartado).
Aviso: el servidor debe tener IP fija en la red local para que el port forwarding funcione siempre. Si la IP cambia, la regla deja de apuntar al sitio correcto.
4. DDNS: acceder por nombre aunque cambie la IP
La mayoría de conexiones domésticas tienen IP pública dinámica, es decir, cambia cada cierto tiempo. Un servicio de DDNS asocia un nombre de dominio a tu IP y lo va actualizando automáticamente.
Opción A: DDNS integrado en el router
Muchos routers incluyen soporte para DynDNS o equivalentes. Revisa en el panel del router la sección DDNS.
Opción B: No-IP (si el router no tiene DDNS)
- Crear cuenta en noip.com con su plan gratuito.
- Crear un hostname, por ejemplo
miservidor.ddns.net. - Instalar el cliente en el servidor Debian.
sudo apt install noip2
sudo noip2 -C
sudo noip2
sudo systemctl enable noip2
Aviso: el plan gratuito de No-IP requiere confirmar el hostname cada 30 días o lo desactivan. Si lo usas en producción real, conviene moverse a un plan de pago o a un dominio propio con DNS dinámico.
5. Cambiar el puerto de Nginx (de 80 a 8080)
Algunos routers usan el puerto 80 para su propio panel y no permiten redirigirlo hacia dentro. La solución habitual es que el servidor escuche en el 8080 y que el router redirija el puerto 80 externo al 8080 interno.
1. Editar la configuración de Nginx
sudo nano /etc/nginx/sites-available/osticket
Cambia listen 80; por listen 8080;.
2. Abrir el nuevo puerto en UFW
sudo ufw allow 8080
sudo ufw delete allow 80
3. Verificar y recargar Nginx
sudo nginx -t
sudo systemctl reload nginx
4. Ajustar el port forwarding en el router
Puerto externo 80 → puerto interno 8080. Para los usuarios, la URL sigue siendo la normal, sin tener que escribir el puerto.
Resumen del flujo completo
| Paso | Acción |
|---|---|
| 1. Servidor local | osTicket corriendo en Debian 12. |
| 2. IP fija interna | El servidor tiene siempre la misma IP en la red local. |
| 3. UFW | Puertos 8080 (web) y 2235 (SSH) abiertos. |
| 4. Port forwarding | El router redirige el puerto 80 externo al 8080 del servidor. |
| 5. DDNS | No-IP actualiza el nombre de dominio con la IP pública. |
| 6. Acceso | El usuario entra desde cualquier sitio escribiendo miservidor.ddns.net. |
Con este esquema tienes un servidor casero o de oficina accesible desde internet de forma controlada: con el puerto SSH movido para reducir ruido, el firewall filtrando lo que no debe entrar y un nombre estable aunque tu operador te cambie la IP pública.
Deja una respuesta