Cómo configurar un servidor Linux desde cero
Acabás de contratar un VPS o servidor dedicado y tenés acceso root. ¿Qué hacés primero? Esta guía cubre la configuración inicial completa de un servidor Linux para producción.
Primer acceso por SSH
Conectate con ssh root@tu-ip. Lo primero: cambiar la contraseña root, crear un usuario no-root con sudo, y configurar autenticación por clave SSH. Deshabilitá el login por contraseña en /etc/ssh/sshd_config para mayor seguridad.
Actualizar el sistema
Ejecutá apt update && apt upgrade -y (Debian/Ubuntu) o dnf update -y (RHEL/Rocky). Configurá actualizaciones automáticas de seguridad con unattended-upgrades para mantener el sistema parcheado sin intervención manual.
Configurar firewall (UFW)
Habilitá UFW: ufw default deny incoming, ufw default allow outgoing, ufw allow ssh, ufw allow 80/tcp, ufw allow 443/tcp, ufw enable. Solo abrí los puertos que realmente necesitás.
Configurar fail2ban
Instalá fail2ban para bloquear IPs que intenten fuerza bruta contra SSH. Configurá jail.local con bantime=3600, findtime=600, maxretry=3. Esto bloquea automáticamente atacantes después de 3 intentos fallidos.
Instalar Docker
Docker simplifica el despliegue de aplicaciones. Instalá con: curl -fsSL https://get.docker.com | sh. Agregá tu usuario al grupo docker. Usá docker compose para orquestar múltiples servicios.
Configurar swap
Si tu servidor tiene poca RAM, configurá swap: fallocate -l 2G /swapfile, chmod 600 /swapfile, mkswap /swapfile, swapon /swapfile. Agregá a /etc/fstab para persistencia. Ajustá swappiness a 10.
Monitoreo básico
Instalá htop para monitoreo interactivo, configurá logrotate para gestionar logs, y considerá herramientas como Netdata o node_exporter + Prometheus para métricas detalladas.
Backups automáticos
Configurá backups diarios con un script que comprima /etc, /home y tus datos de aplicación. Enviá los backups a almacenamiento externo (S3, otro servidor). Probá la restauración periódicamente.