Consejos para proteger tu servidor Vultr con scripts de hardening
La seguridad de tu servidor Vultr no es un extra opcional, sino una pieza clave para garantizar la disponibilidad y confidencialidad de los datos de tu proyecto. Este artículo ofrece una guía detallada y extensiva sobre cómo aplicar técnicas de hardening mediante scripts automatizados y manuales.
1. ¿Por qué realizar hardening en un servidor VPS
- Reducir la superficie de ataque: Minimizar servicios activos que puedan ser vulnerables.
- Automatizar procesos: Scripts periódicos aseguran consistencia y evitan omisiones humanas.
- Cumplir estándares: Normativas como PCI-DSS o ISO 27001 exigen medidas de protección.
2. Preparación inicial
- Acceso root o sudo: Verifica que tu usuario tenga permisos para ejecutar scripts y editar configuración global.
- Backups regulares: Antes de modificar cualquier configuración, programa un snapshot en Vultr o una copia externa.
- Actualizaciones: Actualiza sistema operativo y paquetes críticos. Por ejemplo:
apt update ampamp apt upgrade -y
3. Desactivar servicios innecesarios
Utiliza systemctl para listar y detener servicios.
| Acción | Comando de ejemplo |
|---|---|
| Listar servicios | systemctl list-unit-files --type=service |
| Desactivar servicio | systemctl disable nombre_servicio |
| Detener servicio | systemctl stop nombre_servicio |
4. Hardening de SSH
- Cambiar puerto por defecto: Edita
/etc/ssh/sshd_configy modificaPort 22por otro rango alto (por ejemplo,Port 2202). - Deshabilitar login root:
PermitRootLogin no. - Usar autenticación por clave:
PasswordAuthentication no, sube tu public key a~/.ssh/authorized_keys. - Timeouts y límites:
LoginGraceTime 60,MaxAuthTries 3,ClientAliveInterval 300,ClientAliveCountMax 0.
Ejemplo de bloque de configuración SSH
Port 2202
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
LoginGraceTime 60
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 0
5. Configuración de firewall
Es esencial bloquear todo el tráfico que no sea necesario. Puedes usar UFW (más simple) o iptables (más flexible).
5.1. UFW (Uncomplicated Firewall)
- Instalar:
apt install ufw -y. - Permitir SSH en el puerto custom:
ufw allow 2202/tcp. - Permitir HTTP/HTTPS si corresponde:
ufw allow 80,443/tcp. - Denegar y habilitar:
ufw default deny incoming ampamp ufw default allow outgoing ampamp ufw enable.
5.2. iptables básico
# Limpiar reglas anteriores
iptables -F
iptables -X
# Política por defecto
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permitir loopback
iptables -A INPUT -i lo -j ACCEPT
# Permitir SSH
iptables -A INPUT -p tcp --dport 2202 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# Permitir HTTP/HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# Registrar paquetes rechazados
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix IPTables-Dropped:
# Guardar reglas
iptables-save gt /etc/iptables.rules
6. Protección con Fail2Ban
Fail2Ban bloquea IPs maliciosas tras varios intentos fallidos. Ideal para SSH y servicios web.
- Instalar:
apt install fail2ban -y. - Crear copia de configuración:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local. - Editar
/etc/fail2ban/jail.localpara SSH:
[sshd]
enabled = true
port = 2202
maxretry = 3
bantime = 3600
- Reiniciar servicio:
systemctl restart fail2ban.
7. Uso de herramientas de auditoría
Incorpora escáneres y auditorías automáticas:
- Lynis:
apt install lynis -yylynis audit system. - Bastille Linux: Proporciona un proceso guiado de hardening.
- OpenSCAP: Cumplimiento de estándares de seguridad.
8. Ejemplo de script de hardening básico
#!/bin/bash
# Script básico de hardening para Debian/Ubuntu en Vultr VPS
set -e
# 1. Actualizar sistema
apt update ampamp apt upgrade -y
# 2. Configurar SSH
SSHD_CONF=/etc/ssh/sshd_config
sed -i s/#Port 22/Port 2202/ SSHD_CONF
sed -i s/PermitRootLogin yes/PermitRootLogin no/ SSHD_CONF
sed -i s/PasswordAuthentication yes/PasswordAuthentication no/ SSHD_CONF
systemctl restart sshd
# 3. Configurar UFW
apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 2202/tcp
ufw allow 80,443/tcp
ufw --force enable
# 4. Instalar Fail2Ban
apt install fail2ban -y
cat gt /etc/fail2ban/jail.local ltlt EOF
[sshd]
enabled = true
port = 2202
maxretry = 3
bantime = 3600
EOF
systemctl restart fail2ban
echo Hardening completado con éxito.
9. Monitorización y mantenimiento continuo
La seguridad no es puntual: requiere vigilancia continua.
- Logwatch: Envío diario de resumen de logs (
apt install logwatch). - Auditd: Registro de eventos de sistema (
apt install auditd). - Actualizaciones automáticas con unattended-upgrades:
apt install unattended-upgrades.
Conclusión
Implementar un proceso de hardening en tu servidor Vultr con scripts bien diseñados y herramientas profesionales te ayudará a:
- Reducir riesgos de intrusión.
- Garantizar estabilidad y cumplimiento.
- Automatizar tareas repetitivas de seguridad.
Combina siempre estos scripts con políticas de backup, monitoreo constante y revisiones periódicas. Para más información oficial de Vultr, visita su centro de documentación: https://www.vultr.com/docs.
Artículo inspirado en buenas prácticas de seguridad de la comunidad DevOps y adaptado a entornos Vultr VPS.
Leave a Reply