Los servidores expuestos a Internet son objetivo frecuente de ataques automatizados. Un usuario que gestiona un servidor VPS con Ubuntu ha reportado alrededor de 150 intentos de acceso diario a través de SSH, a pesar de haber implementado medidas de seguridad como un firewall restrictivo, fail2ban y autenticación solo con claves. Sin embargo, aún existen aspectos críticos que pueden optimizarse para mejorar la seguridad y reducir el riesgo de intrusión.
Principales vulnerabilidades detectadas
A pesar de las medidas implementadas, el servidor aún presenta ciertos puntos débiles que podrían ser aprovechados por atacantes:
- Uso del usuario «root» para SSH: Aunque se ha deshabilitado el acceso mediante contraseña, el simple hecho de permitir conexiones SSH como root representa un riesgo significativo.
- No cambio del puerto SSH por defecto: Mantener el puerto estándar (22) facilita los ataques automatizados por fuerza bruta.
- Exposición del servidor de Minecraft: Al ser un servicio expuesto, podría convertirse en un vector de ataque, especialmente si ejecuta mods de terceros.
Medidas adicionales para reforzar la seguridad del servidor
1. Deshabilitar el acceso directo de root por SSH
Una de las primeras medidas de seguridad en cualquier servidor es impedir el acceso SSH con la cuenta root. En su lugar, se recomienda crear un usuario con permisos limitados y uso de sudo cuando sea necesario elevar privilegios.
Para aplicar este cambio, basta con modificar el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Localizar la siguiente línea:
PermitRootLogin yes
Y modificarla a:
PermitRootLogin no
Después, reiniciar el servicio SSH:
sudo systemctl restart ssh
2. Restringir el acceso SSH a una dirección IP específica
Si se accede al servidor siempre desde la misma IP, se puede permitir SSH solo desde esa dirección con el firewall:
sudo ufw allow from 192.168.1.100 to any port 22
Otra alternativa más flexible es usar Tailscale SSH, un servicio VPN seguro que evita la exposición directa del puerto SSH en Internet.
3. Modificar el puerto SSH
Aunque no es una solución infalible, cambiar el puerto SSH puede reducir el número de intentos de acceso automatizados. Para hacerlo, editar el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Buscar la línea:
#Port 22
Y cambiarla por otro puerto, por ejemplo:
Port 4822
Luego, reiniciar el servicio SSH:
sudo systemctl restart ssh
También se debe actualizar el firewall para permitir el nuevo puerto:
sudo ufw allow 4822/tcp
4. Proteger el servidor de Minecraft
Los servidores de juegos son objetivos frecuentes de ataques, por lo que es clave implementar las siguientes medidas:
- No ejecutar el servidor como root.
- Aislar el servicio en un usuario dedicado sin privilegios administrativos.
- Restringir el acceso con firewall, permitiendo conexiones solo desde IPs de confianza.
- Si usa mods, verificar su procedencia y evitar descargas desde fuentes desconocidas.
5. Usar claves SSH con Ed25519 para mayor seguridad
El uso de claves SSH en lugar de contraseñas es esencial, pero es recomendable utilizar Ed25519, un algoritmo de criptografía de curva elíptica que ofrece mayor seguridad y mejor rendimiento que RSA.
Para generar una clave Ed25519:
ssh-keygen -t ed25519 -C "[email protected]"
Y agregarla al servidor:
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@servidor
Conclusión: La seguridad es un proceso continuo
Un servidor en línea nunca está completamente seguro, pero al implementar estas prácticas se puede reducir drásticamente la superficie de ataque. No solo se trata de bloquear accesos, sino también de anticiparse a posibles fallos y estar preparado ante vulnerabilidades que puedan surgir en los servicios expuestos.
Mantenerse informado, revisar los registros y actualizar el sistema regularmente son prácticas fundamentales para garantizar la seguridad del servidor a largo plazo.