Seguridad básica del servidor: lo esencial para tu VPS
Un servidor sin proteger es una invitación abierta a los hackers. En Theory7 vemos a diario intentos de comprometer servidores mediante ataques de fuerza bruta, exploits y otros métodos. Con las medidas de seguridad adecuadas puedes bloquear la gran mayoría de estos ataques. En esta guía repasamos lo esencial de la seguridad de servidores.
Por qué la seguridad del servidor es crucial
Un servidor hackeado puede provocar:
- Pérdida de datos: archivos importantes borrados o cifrados
- Envío de spam: tu servidor envía spam y tu IP acaba en listas negras
- Alojamiento de malware: tu servidor aloja contenido malicioso
- Ataques DDoS: tu servidor se usa para atacar a otros
- Daños a la reputación: tu dominio y tu IP quedan contaminados
Más vale prevenir que curar. Es esencial proteger tu servidor frente a estas amenazas, no solo para proteger tus propios datos, sino también para salvaguardar la integridad de tus clientes y usuarios.
Proteger SSH
SSH es la principal puerta de acceso a tu servidor. Protégela a fondo.
Cambiar el puerto SSH
El puerto predeterminado 22 se escanea constantemente. Cámbialo por otro puerto:
sudo nano /etc/ssh/sshd_config
Busca la línea Port 22 y cámbiala, por ejemplo, por:
Port 2222
Reinicia SSH después del cambio:
sudo systemctl restart sshd
No olvides ajustar el firewall para el nuevo puerto. Para ello, actualiza las reglas del firewall de modo que el nuevo puerto sea accesible.
Desactivar el inicio de sesión como root
Desactiva el inicio de sesión directo como root. Trabaja con un usuario normal y usa sudo para las tareas de administración:
sudo nano /etc/ssh/sshd_config
Cambia:
PermitRootLogin no
Así evitas que los hackers accedan fácilmente a la cuenta root, que es un objetivo muy habitual.
Exigir claves SSH
Desactiva la autenticación por contraseña y usa solo claves SSH:
PasswordAuthentication no
PubkeyAuthentication yes
Primero genera una clave SSH en tu ordenador local y copia la clave pública al servidor antes de desactivar la autenticación por contraseña. Esto aumenta considerablemente la seguridad, porque a los atacantes les resulta más difícil acceder sin la clave correcta.
Configurar el firewall con UFW
UFW (Uncomplicated Firewall) hace que la gestión del firewall sea sencilla y accesible para todo el mundo.
Instalar UFW y reglas básicas
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
Esta configuración básica hace que se bloqueen todas las conexiones entrantes, salvo las que se permitan expresamente.
Abrir puertos
Abre solo los puertos que necesites:
# SSH (puerto personalizado)
sudo ufw allow 2222/tcp
# Tráfico web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# DirectAdmin
sudo ufw allow 2222/tcp
Activar el firewall
sudo ufw enable
Comprueba el estado:
sudo ufw status verbose
Esto te da una vista general de los puertos abiertos y de las reglas activas.
Fail2ban contra la fuerza bruta
Fail2ban supervisa los archivos de registro y bloquea las IP que fallan repetidamente al intentar iniciar sesión. Es una forma eficaz de evitar los ataques de fuerza bruta.
Instalación
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Configurar la jail de SSH
Crea una configuración local:
sudo nano /etc/fail2ban/jail.local
Añade:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
Esto bloquea una IP durante 1 hora tras 3 intentos de inicio de sesión fallidos en 10 minutos. Puede ayudar a disuadir a los atacantes y a hacer tu servidor más seguro.
sudo systemctl restart fail2ban
Actualizaciones del sistema
El software obsoleto suele contener vulnerabilidades conocidas que los atacantes pueden aprovechar.
Actualizaciones manuales
sudo apt update && sudo apt upgrade -y
Es importante actualizar tu sistema con regularidad para recibir los últimos parches de seguridad.
Actualizaciones de seguridad automáticas
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Al activar las actualizaciones automáticas te aseguras de tener siempre los parches de seguridad más recientes sin tener que acordarte de ello.
Consejos de seguridad adicionales
Desactivar los servicios que no se usan
Cada proceso en ejecución es un posible vector de ataque. Desactiva los servicios que no uses:
sudo systemctl list-unit-files --type=service --state=enabled
sudo systemctl disable servicenaam
Imponer contraseñas seguras
Configura políticas de contraseñas con PAM o usa solo claves SSH. Esto ayuda a evitar contraseñas débiles que son fáciles de adivinar.
Supervisión de registros
Revisa con regularidad tus registros en busca de actividad sospechosa:
sudo tail -f /var/log/auth.log
sudo tail -f /var/log/syslog
Si revisas tus registros con regularidad, podrás detectar a tiempo las actividades sospechosas y actuar.
Autenticación de dos factores
Plantéate usar 2FA para SSH con Google Authenticator o una herramienta similar. Esto añade una capa de seguridad adicional, de modo que, aunque un atacante tenga tu contraseña, no podrá iniciar sesión sin el segundo factor.
Lista de comprobación de seguridad
Usa esta lista de comprobación con cada servidor nuevo:
- Puerto SSH cambiado
- Inicio de sesión como root desactivado
- Claves SSH configuradas
- Autenticación por contraseña desactivada
- Firewall UFW activo
- Fail2ban instalado
- Actualizaciones automáticas activas
- Servicios innecesarios desactivados
Más información sobre los servidores VPS de Theory7
¿Necesitas ayuda?
Estamos a tu disposición. ¿Te has encontrado con algún problema o tienes alguna pregunta? Nuestro equipo de soporte te ayuda encantado de forma personal. Envíanos un mensaje a través del sistema de tickets: solemos responder en unas pocas horas y estaremos encantados de pensar contigo en la solución.
A 0 de 0 personas les ha resultado útil