Estrategia de backup para servidores root que aguanta cuando hace falta
La regla 3-2-1 en un único servidor root, restic y Borg con ejemplos, retención y cifrado. Y el paso que casi todo el mundo se salta: probar de verdad la restauración.
Desde una instalación limpia de Debian hasta un servidor web protegido: los fundamentos, los servicios y las tareas de mantenimiento que aparecen en cualquier servidor root.
La regla 3-2-1 en un único servidor root, restic y Borg con ejemplos, retención y cifrado. Y el paso que casi todo el mundo se salta: probar de verdad la restauración.
hostnamectl, /etc/hostname y /etc/hosts en conjunto, el ajuste que impide que cloud-init revierta el nombre y las consecuencias para sudo, el servidor de correo y los certificados.
Ventanas de tiempo, filtros por unit, prioridades y patrones de búsqueda: cómo recortar en tres o cuatro comandos justo el fragmento que corresponde a la incidencia. Además, un journal que sobrevive a los reinicios y los mensajes de error citados palabra por palabra.
La diferencia entre upgrade, full-upgrade y dist-upgrade, los paquetes retenidos, las preguntas de configuración de dpkg, el reinicio de kernel con needrestart y el cambio de versión como categoría aparte.
En un 504 el backend estaba accesible, solo respondió demasiado despacio. Cómo averiguar con el log de tiempos dónde se consume el tiempo, cuál de los muchos plazos se aplica de verdad y por qué un plazo más alto casi siempre se limita a aplazar la caída.
El mensaje server reached pm.max_children no significa que tengas que duplicar el valor. Mide, calcula, elige el modo de funcionamiento y demuestra después que el valor encaja de verdad.
Un script de comprobación, un timer de systemd y una vía de notificación probada bastan para un solo servidor root. Esta guía muestra qué hay que vigilar, cómo comprobar cada paso y a partir de cuándo compensa la caja de herramientas grande.
Cambiar el puerto SSH falla casi siempre por el orden de los pasos. Esta guía deja el servidor escuchando en ambos puertos mientras dura el cambio, de modo que el antiguo solo desaparece cuando el nuevo funciona de forma demostrable.
adduser frente a useradd, los grupos sudo y wheel, editar sudoers de forma segura con visudo y la prueba que demuestra que no te has quedado fuera antes de cerrar el acceso root.
Cómo configurar unattended-upgrades para que funcione de verdad: fuentes permitidas, paquetes excluidos, comportamiento en el reinicio, informe por correo y la prueba en el log de que algo ha ocurrido realmente.
Un reloj de servidor mal ajustado nunca se anuncia como reloj, sino como certificado rechazado, como fuente de paquetes que apt no acepta o como cron job a la hora equivocada. Cómo ajustar la zona horaria y el servicio de tiempo, y cómo demostrar que la sincronización funciona.
Por qué apt se queda de repente bloqueado, qué proceso hay detrás y cómo encontrarlo con lsof y fuser. También verás cómo eliminar el archivo de bloqueo sin dañar la base de datos de paquetes.
Del servidor vacío a una página de resumen sin avisos: servidor web, módulos de PHP, base de datos, permisos del directorio de datos, trusted_domains, límites de subida y tareas en segundo plano por cron.
De proxy_pass al upgrade de WebSocket: la guía completa para montar nginx como reverse proxy, incluidas las cuatro cabeceras sin las que tu aplicación toma a cada visitante por 127.0.0.1.
¿El acceso por SSH falla con Permission denied (publickey)? Siete causas, de los permisos de archivos a AllowUsers y SELinux, cada una con la línea exacta del log y su solución correspondiente.
El orden lo decide todo: prepara el servidor nuevo, copia los datos, prueba bajo el dominio real con el archivo hosts, emite el certificado por adelantado y solo después cambia el DNS. Con camino de vuelta y mensajes de error reales.
El job funciona en la shell, pero no en cron. Esta guía explica los cinco campos de tiempo, la diferencia entre la crontab de usuario y /etc/cron.d, la trampa del PATH y cómo demostrar que una ejecución terminó de verdad.
Por qué docker.io es demasiado antiguo en Debian 12 pero sirve en Ubuntu, cómo se añade el repositorio oficial con keyring en lugar de apt-key, por qué Compose es un plugin y por qué el grupo docker significa root en la práctica.
Cómo configurar fail2ban de forma limpia mediante jail.local, poner en marcha el jail sshd en las cuatro distribuciones LTS actuales, comprobar los bloqueos y volver a levantarlos, y qué errores te frenan por el camino.
Cuando df informa del 100% y du no encuentra nada: el camino completo, desde la medición hasta la liberación de espacio, para Debian 12 y 13 y para Ubuntu 22.04 y 24.04.
Un certificado wildcard no se puede validar a través del servidor web, va obligatoriamente por un registro TXT en el DNS. Esta guía muestra la vía manual y la automática en Debian 13, Debian 12, Ubuntu 24.04 y Ubuntu 22.04, además de los errores en los que realmente se atasca el proceso.
502 Bad Gateway significa que nginx no ha recibido una respuesta válida del backend. Las cinco causas más frecuentes, la línea correcta en el log de errores y cómo demostrar que el arreglo funciona de verdad.
Del paquete apt al primer bloque server con PHP-FPM y HTTPS: qué versión de nginx trae cada distribución, qué cambia con el repositorio de nginx.org y cómo librarse de los errores más típicos.
Servicio caído, sin informe de fallo y con el log cortado a media frase: así demuestras un OOM-Kill, creas un archivo de swap correctamente y reconoces cuándo el swap solo aplaza el problema.
Los primeros 30 minutos en un servidor root nuevo son los que deciden. Nueve pasos en el orden correcto, con las trampas de Debian 13 y Ubuntu 24.04 que faltan en la mayoría de las guías.
ed25519 en Linux, macOS y Windows, la trampa de cloud-init en /etc/ssh/sshd_config.d, la activación por socket en Ubuntu 24.04, la prueba con sudo sshd -T y la vía de rescate por la consola.
La primera conexión SSH paso a paso: PuTTY y OpenSSH en Windows, Terminal en macOS y Linux, cómo verificar bien la huella digital, transferir archivos y resolver los mensajes de error habituales.
Direcciones IPv4 e IPv6 fijas en Ubuntu 24.04, Ubuntu 22.04, Debian 13 y Debian 12: netplan, ifupdown y systemd-networkd comparados, con estrategia de vuelta atrás e IP adicionales.
El archivo de unidad línea por línea: Type, User, WorkingDirectory, Restart y network-online.target. Con los mensajes de error literales y la prueba de que el servicio sobrevive de verdad a un reinicio.
El orden correcto al montar UFW, las reglas IPv6, nftables como backend, la limitación de tasa con ufw limit y la vía de rescate por consola cuando aun así algo sale mal.
Del servidor vacío al túnel WireGuard funcionando: pares de claves, NAT con nftables, wg-quick como servicio, código QR para el teléfono y los tres fallos en los que de verdad se atasca todo.
Así arrancan solas tus aplicaciones, servidores de juego y scripts después de cada reinicio: con una unidad de servicio systemd, el estándar actual, o con una entrada de cron con @reboot.
Bastan dos comandos en cualquier sistema de la familia Red Hat: activar EPEL e instalar htop. Por qué CRB y PowerTools no hacen falta, comprobado en contenedores reales.
Tras el fin del soporte de una versión de Debian, apt update se detiene con un error 404. Así cambias la sources.list a archive.debian.org y vuelves a dejar el servidor actualizable.
El instalador de Modoboa configura Postfix, Dovecot, el webmail y el SSL de una sola vez. Así instalas tu propio servidor de correo en Debian y creas los registros DNS necesarios.
Certificado SSL gratuito para tu servidor Linux: así instalas Certbot en Debian y Ubuntu, emites un certificado de Let's Encrypt para Apache y dejas que se renueve solo.
¿Tus visitantes siguen llegando a la versión sin cifrar? Con unas pocas líneas en el archivo .htaccess envías cada petición HTTP a HTTPS de forma permanente, con una redirección 301.
Node.js 10 y 12 llevan tiempo sin soporte. Así instalas la versión LTS actual junto con npm en Debian, mediante NodeSource y con la clave de firma en /etc/apt/keyrings.