DirectAdmin: Cómo cambiar el puerto SSH por defecto por seguridad
¿Por qué deberías cambiar el puerto SSH por defecto en DirectAdmin?
Cuando instalas un servidor con DirectAdmin, el servicio SSH (Secure Shell) se configura automáticamente para escuchar en el puerto 22, que es el estándar mundial. Esto es un problema de seguridad serio, porque todos los bots y atacantes automáticos del planeta escanean la red buscando precisamente ese puerto.
Si dejas el puerto 22 abierto, estás invitando a que miles de intentos de acceso no autorizado lleguen a tu servidor cada día. Los bots prueban combinaciones de usuarios y contraseñas típicas (admin, root, test, 123456, etc.) de forma incansable.
Al cambiar el puerto SSH por defecto, consigues dos cosas:
- Reducir drásticamente los ataques automatizados: Los escáneres de puertos raramente buscan puertos altos como el 2222 o el 4821.
- Añadir una capa extra de oscuridad: Aunque no es seguridad absoluta, dificulta que los atacantes encuentren tu servicio SSH.
En este artículo te explicaré, paso a paso y sin tecnicismos innecesarios, cómo cambiar el puerto ssh directadmin de forma segura, incluso si nunca has tocado un servidor antes.
Requisitos previos antes de tocar nada
Antes de lanzarnos a modificar configuraciones, asegúrate de tener esto listo:
- Acceso root a tu servidor: Necesitarás la contraseña principal o una clave SSH con permisos de superusuario.
- Acceso a DirectAdmin: Con usuario admin o reseller.
- Un cliente SSH: Puedes usar PuTTY (Windows), Terminal (Mac/Linux) o el propio panel de tu proveedor de hosting.
- Conexión estable a internet: No queremos quedarnos a mitad de camino.
[WARNING] Si te equivocas en este proceso, podrías quedarte fuera de tu servidor. Es fundamental que tengas a mano el acceso a tu proveedor de hosting (VPS o dedicado) por si necesitas entrar desde su panel de control externo.
Paso 1: Accede a tu servidor por SSH
Abre tu cliente SSH favorito y conéctate a tu servidor usando la IP pública y el puerto actual (22). Por ejemplo:
ssh root@tu-ip-del-servidor
Si usas una clave SSH en lugar de contraseña, asegúrate de tenerla cargada en tu cliente.
Una vez dentro, verás un prompt como este:
[root@servidor ~]#
Ya estamos listos para trabajar.
Paso 2: Haz una copia de seguridad del archivo de configuración
Siempre, siempre antes de modificar un archivo de sistema, haz una copia de seguridad. Esto te salvará la vida si algo sale mal.
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Este comando crea un archivo llamado sshd_config.bak que contiene la configuración original. Si la liáis, puedes restaurarlo con:
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
[TIP] Guarda también esta copia en tu ordenador local. Puedes usar
scppara descargarla:scp root@tu-ip:/etc/ssh/sshd_config.bak ./copia-seguridad-ssh.bak. Así tienes una copia fuera del servidor.
Paso 3: Edita el archivo de configuración SSH
Vamos a editar el archivo /etc/ssh/sshd_config. Para ello, usaremos el editor nano, que es muy amigable para principiantes.
nano /etc/ssh/sshd_config
Dentro del archivo, busca la línea que dice:
#Port 22
En la mayoría de instalaciones, esta línea está comentada (empieza por #). Lo que haremos es:
- Eliminar el
#del principio. - Cambiar el
22por el puerto que quieras usar.
Por ejemplo, si quieres usar el puerto 4821, la línea quedará así:
Port 4821
[INFO] ¿Qué puerto elegir? Lo ideal es uno alto, entre 1000 y 65535, que no esté en uso. Evita puertos muy conocidos como 80 (HTTP), 443 (HTTPS), 3306 (MySQL), etc. Puedes verificar si un puerto está libre con:
netstat -tulpn | grep 4821. Si no devuelve nada, está libre.
Guarda los cambios con Ctrl + O, luego pulsa Enter y sal con Ctrl + X.
Paso 4: Configura el firewall (CSF o iptables)
DirectAdmin suele instalar CSF (ConfigServer Security & Firewall) como firewall predeterminado. Necesitamos abrir el nuevo puerto y cerrar el 22.
Si usas CSF (lo más común):
Abre el archivo de configuración:
nano /etc/csf/csf.conf
Busca la línea TCP_IN y añade tu nuevo puerto. Por ejemplo, si tu puerto es el 4821:
TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995,4821"
Luego busca TCP_OUT y añade también el puerto (aunque no es estrictamente necesario para conexiones entrantes, es buena práctica):
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,4821"
Guarda y cierra. Ahora reinicia el firewall:
csf -r
Si no usas CSF, con iptables:
Abre el puerto nuevo:
iptables -A INPUT -p tcp --dport 4821 -j ACCEPT
Cierra el puerto 22:
iptables -A INPUT -p tcp --dport 22 -j DROP
Guarda las reglas (esto depende de tu sistema, pero suele ser):
service iptables save
[WARNING] No cierres el puerto 22 hasta que hayas probado que el nuevo puerto funciona. Si algo falla, podrías quedarte fuera. Te recomiendo hacerlo al final del todo.
Paso 5: Reinicia el servicio SSH
Ahora viene el momento crítico. Vamos a reiniciar el servicio SSH para que aplique los cambios.
systemctl restart sshd
O si tu sistema es más antiguo:
service sshd restart
[TIP] Algunos sistemas usan
sshen lugar desshd. Si el comando falla, prueba consystemctl restart ssh.
Paso 6: Prueba la nueva conexión
No cierres la sesión actual todavía. Abre una nueva ventana de terminal o una nueva pestaña en PuTTY y conéctate usando el nuevo puerto:
ssh -p 4821 root@tu-ip-del-servidor
Si todo funciona, verás el prompt de inicio de sesión normal. Entonces sí, ya puedes cerrar la sesión antigua.
Si no funciona, revisa estos puntos:
- ¿Has guardado bien el archivo de configuración?
- ¿Has abierto el puerto en el firewall?
- ¿Has reiniciado el servicio?
Recuerda que tienes la copia de seguridad para restaurar si es necesario.
Paso 7: Cierra el puerto 22 en el firewall definitivamente
Una vez confirmado que el nuevo puerto funciona, ya puedes cerrar el 22.
Si usas CSF, edita /etc/csf/csf.conf, elimina el 22 de la línea TCP_IN y reinicia con csf -r.
Si usas iptables, ejecuta:
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables-save > /etc/iptables/rules.v4
[WARNING] Algunos proveedores de hosting o sistemas de monitorización pueden necesitar el puerto 22 abierto. Consulta con tu proveedor si tienes dudas.
Configuración adicional para proteger tu servidor DirectAdmin
Cambiar el puerto es solo el primer paso. Para una seguridad ssh robusta, te recomiendo además:
Desactiva el login de root por contraseña
Edita de nuevo /etc/ssh/sshd_config y busca o añade:
PermitRootLogin no
Esto obliga a usar un usuario normal y luego hacer su - para ser root. Es mucho más seguro.
Usa autenticación por clave SSH
Genera un par de claves en tu ordenador:
ssh-keygen -t rsa -b 4096
Copia la clave pública al servidor:
ssh-copy-id -p 4821 usuario@tu-ip
Luego desactiva la autenticación por contraseña en el archivo:
PasswordAuthentication no
Limita los usuarios que pueden conectarse por SSH
Añade esta línea al final del archivo:
AllowUsers usuario1 usuario2
Solo esos usuarios podrán acceder.
Instala Fail2ban
Fail2ban bloquea automáticamente las IPs que hacen múltiples intentos fallidos. En DirectAdmin, puedes instalarlo así:
yum install fail2ban
Y configurarlo para SSH:
systemctl enable fail2ban
systemctl start fail2ban
Preguntas frecuentes (FAQ)
¿Es obligatorio cambiar el puerto SSH?
No, pero es altamente recomendable. Es una de las medidas más efectivas y sencillas para reducir ataques automatizados.
¿Qué puerto me recomiendas?
Elige un puerto alto y poco común. Por ejemplo, 4821, 6345, 10224, etc. Evita puertos que ya estén en uso.
¿Puedo cambiar el puerto SSH desde DirectAdmin?
No directamente. DirectAdmin no tiene una opción gráfica para esto. Debes hacerlo por línea de comandos como te he mostrado.
¿Qué pasa si me quedo fuera del servidor?
Si tienes acceso al panel de tu proveedor (VPS o dedicado), puedes entrar desde su consola web o VNC y revertir los cambios. También puedes pedir ayuda al soporte técnico.
¿Afecta esto a otros servicios?
No. El cambio es solo para SSH. El resto de servicios (web, correo, bases de datos) funcionan igual.
¿Necesito cambiar el puerto en algún otro sitio?
Si usas herramientas de gestión como Syspanel (el antiguo HestiaCP), recuerda que su acceso es por el puerto 2106 y no tiene nada que ver con SSH. Ese panel se configura aparte y no deberías tocarlo para esto.
¿Puedo tener varios puertos SSH abiertos?
Sí, puedes. En sshd_config puedes poner:
Port 22
Port 4821
Pero lo más seguro es usar solo el nuevo y cerrar el 22.
Conclusión final sobre cómo cambiar puerto ssh directadmin
Cambiar el puerto SSH en DirectAdmin es un proceso sencillo que te tomará menos de 10 minutos y que multiplicará la seguridad de tu servidor. Es una de esas tareas de mantenimiento básico que todo administrador debería hacer justo después de instalar el panel.
Recuerda los pasos clave:
- Haz copia de seguridad del archivo de configuración.
- Edita
sshd_configy cambia el puerto. - Actualiza el firewall con el nuevo puerto.
- Reinicia SSH.
- Prueba antes de cerrar el puerto antiguo.
Con esto, tu servidor DirectAdmin estará mucho más protegido contra ataques automatizados. Y si además combinas esto con claves SSH, desactivar root por contraseña y Fail2ban, tendrás una configuración casi a prueba de balas.
[TIP] No te olvides de anotar el nuevo puerto en un lugar seguro. Te sorprendería la cantidad de gente que lo olvida y luego no puede conectarse.
Espero que esta guía te haya sido útil. Si tienes cualquier duda, déjala en los comentarios y te ayudaré encantado. ¡Buena suerte y a proteger tu servidor!
