Back to blog

Cómo proteger tu servidor de agente de IA: firewall, SSH y hardening SSL

Una guía de seguridad práctica para tu VPS con OpenClaw. Cubre autenticación con claves SSH, reglas del firewall UFW, Fail2Ban, certificados SSL y prácticas de hardening continuo.

K-Claw Team·05 de noviembre de 2025·4 min read

Por qué la seguridad importa para un agente de IA personal

Tu servidor de agente de IA guarda algo especialmente sensible: el historial completo de tus conversaciones con una IA. Preguntas de salud, decisiones de negocio, preocupaciones personales — todo almacenado en un mismo lugar. Un VPS comprometido no solo expone un sitio web; expone tu contexto privado.

La buena noticia es que el hardening básico cubre la gran mayoría de los vectores de ataque reales. El instalador de k-claw gestiona la mayor parte automáticamente, pero entender qué hace — y qué hacer a continuación — tiene mucho valor.

Paso 1: autenticación SSH con claves

El SSH con contraseña es el punto de entrada más común para servidores comprometidos. Cambia a autenticación con clave inmediatamente.

En tu máquina local, genera un par de claves SSH si no tienes uno:

ssh-keygen -t ed25519 -C "your-email@example.com"

Copia tu clave pública al servidor:

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@YOUR_SERVER_IP

Luego deshabilita la autenticación con contraseña en /etc/ssh/sshd_config:

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

Reinicia SSH: systemctl restart sshd

Importante: Abre una nueva sesión SSH antes de cerrar la actual, para asegurarte de no haberte bloqueado el acceso.

Paso 2: configuración del firewall UFW

UFW (Uncomplicated Firewall) es la herramienta estándar en Ubuntu. El objetivo es permitir solo lo que necesitas explícitamente y bloquear todo lo demás.

ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80/tcp    # HTTP (para los desafíos de Let's Encrypt)
ufw allow 443/tcp   # HTTPS
ufw enable

El instalador de k-claw configura UFW automáticamente. Verifica que las reglas están activas:

ufw status verbose

Si usas un bot de Telegram, ten en cuenta que OpenClaw consulta la API de Telegram (saliente) en lugar de requerir un puerto de webhook entrante. No se necesitan puertos adicionales para el funcionamiento estándar.

Paso 3: Fail2Ban para protección contra fuerza bruta

Incluso con SSH basado en claves, los bots seguirán intentando conexiones y llenando tus registros. Fail2Ban banea automáticamente las IPs que generan demasiados intentos fallidos.

apt install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban

Crea una configuración local para que sobreviva a las actualizaciones de paquetes:

# /etc/fail2ban/jail.local
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true

El instalador de k-claw configura Fail2Ban como parte del proceso de instalación.

Paso 4: certificados SSL con Let's Encrypt

Si expones alguna parte de tu agente mediante HTTPS (un panel de administración, endpoint de webhook o API), usa un certificado TLS de Let's Encrypt — nunca certificados autofirmados en producción.

apt install certbot python3-certbot-nginx -y
certbot --nginx -d yourdomain.com

Los certificados de Let's Encrypt se renuevan automáticamente mediante un temporizador de systemd que Certbot instala automáticamente. Verifícalo:

systemctl status certbot.timer

Paso 5: mantener el sistema actualizado

Habilita las actualizaciones de seguridad automáticas para que los parches críticos se apliquen sin intervención manual:

apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades

Esto aplica actualizaciones de seguridad automáticamente mientras retiene las actualizaciones de paquetes no relacionadas con seguridad, reduciendo el riesgo de cambios disruptivos.

Paso 6: crear un usuario sin privilegios de root

El instalador de k-claw crea un usuario de sistema dedicado (openclaw) con permisos restringidos para ejecutar el proceso del agente. Esto es fundamental: incluso si alguien explota una vulnerabilidad en el agente, obtiene acceso a esa cuenta restringida — no a root.

Para tu propio acceso SSH, crea un usuario sudo sin root y deshabilita el inicio de sesión SSH de root una vez que hayas verificado que funciona:

adduser yourname
usermod -aG sudo yourname

Luego establece PermitRootLogin no en sshd_config.

Monitorización continua

Tras el hardening inicial, las comprobaciones periódicas te permiten estar al tanto del estado del servidor:

  • last — Revisa el historial reciente de inicios de sesión
  • fail2ban-client status sshd — Consulta los baneos activos y la actividad reciente
  • journalctl -u kclaw-* --since today — Revisa los registros del agente
  • apt list --upgradable — Comprueba si hay actualizaciones pendientes

Un VPS correctamente protegido con OpenClaw es tan seguro como puede ser cualquier servidor Linux conectado a internet. La superficie de ataque es pequeña por diseño — ningún puerto de base de datos expuesto, ninguna interfaz web por defecto, y todos los datos sensibles cifrados en reposo.

Pick your VPS — we handle everything else.

k-claw installs OpenClaw on any Ubuntu/Debian server. Security hardening, service setup, and configuration — all automatic.

Set up my server