Consejos para proteger tu servidor Vultr con scripts de hardening

·

·

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

  1. Acceso root o sudo: Verifica que tu usuario tenga permisos para ejecutar scripts y editar configuración global.
  2. Backups regulares: Antes de modificar cualquier configuración, programa un snapshot en Vultr o una copia externa.
  3. 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_config y modifica Port 22 por 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.local para 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 -y y lynis 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

Your email address will not be published. Required fields are marked *