Curso de Linux / Configuración inicial de un servidor: cuentas, SSH y verificación
El nuevo servidor se prepara asegurando primero la consola de recuperación, luego verificando la cuenta de administración habitual y la clave SSH, y comprobando actualizaciones, hora, puertos esenciales y el comportamiento tras reiniciar, en ese orden. La finalización de la configuración inicial se determina no por la cantidad de comandos ejecutados, sino por si las funciones de administración y servicio necesarias se mantienen incluso después de abrir una nueva sesión y reiniciar.
Después de crear la cuenta y realizar la configuración inicial, abra una nueva sesión usando inicio de sesión con clave SSH para verificar los permisos y aplique protección de firewall y cuentas. Verifíquelo en orden mientras mantiene la conexión de consola y las sesiones existentes.
El estándar para la práctica de configuración del sistema es Ubuntu 26.04 LTS y VMs de instalación general de la serie Rocky Linux 9. En contenedores, WSL u otras versiones, la configuración de servicios y paquetes puede variar. Preparar primero la recuperación de consola y la verificación de la versión se indica en Crear un entorno de práctica con máquina virtual.
Verificar el servidor y la ruta de recuperación antes de la práctica
Esta práctica integral se realiza en una máquina virtual creada recientemente o en un servidor de prueba. Elija entre Ubuntu y Rocky Linux y asegure permisos de administrador, acceso a consola y procedimientos de respaldo o recreación. Los snapshots son un medio conveniente para revertir, pero no son un respaldo que resuelva problemas de consistencia de aplicaciones en ejecución o fallas del mismo almacenamiento.
cat /etc/os-release
hostnamectl
ip -brief address
ip route
timedatectl
lsblk -f
Anote la distribución, nombre del host, dirección IP, zona horaria y disco para verificar que no configuró un servidor incorrecto. No copie la dirección IP, nombre del servicio ni el nombre del dispositivo de otras prácticas. Si la imagen fue proporcionada por la nube, también verifique la cuenta inicial y la configuración gestionada por cloud-init.
Cree una cuenta de administración habitual y verifique sudo
Se reutiliza la cuenta de administración existente si es adecuada. Si se necesita una cuenta nueva, confirme con getent passwd courseadmin que courseadmin aún no existe. El primer bloque siguiente es para Ubuntu, el segundo para Rocky Linux, y solo use su propia distribución. Introduzca la contraseña en el indicador de passwd y no la ingrese directamente en la línea de comandos.
sudo adduser courseadmin
sudo usermod -aG sudo courseadmin
sudo useradd -m courseadmin
sudo passwd courseadmin
sudo usermod -aG wheel courseadmin
Después de iniciar sesión con esa cuenta en una nueva terminal, verifique id y sudo -v. Los grupos adicionales pueden no reflejarse inmediatamente en la sesión de inicio de sesión existente. Si necesita corregir sudoers, utilice la verificación de sintaxis de visudo y mantenga la sesión de administrador existente. No agregue políticas que permitan todos los comandos sin contraseña para mayor comodidad.
Verificación independiente de la clave SSH y la ruta de conexión
En el cliente, cree una clave nueva o seleccione una aprobada y compruebe la huella de la clave del host desde una consola de confianza. Instale únicamente la clave pública en la cuenta de destino. Pruebe una sesión independiente usando ssh -o PreferredAuthentications=publickey -o IdentitiesOnly=yes -i "RUTA_CLAVE" courseadmin@DIRECCIÓN_SERVIDOR, sustituyendo ruta y destino reales. Compruebe la huella de la clave aceptada en la salida detallada si hay otras identidades configuradas; que aparezca una petición de contraseña no demuestra que se esté usando la clave prevista. Verifique también sudo antes de restringir el cortafuegos o la autenticación.
También verifique el puerto de escucha SSH real del servidor y las reglas de seguridad en la nube. La limitación de la autenticación por contraseña se aplica después de la verificación de autenticación por clave y rutas de recuperación, y se confirma con sshd -t y una nueva conexión real. Que la conexión existente se mantenga y que se permita una nueva conexión son cuestiones separadas.
Organizar información de actualización, hora y host
sudo apt update
sudo apt upgrade
sudo dnf upgrade
El comando de actualización se ejecuta solo según la distribución correspondiente y requiere leer y aprobar la transacción propuesta. Verifique si se requiere reinicio del servicio, cambios en el kernel o reinicio, y no termine solo con la conexión SSH, también pruebe nuevamente las funciones en uso. Identifique también el servicio de sincronización activo; si usa chrony, consulte chronyc tracking y sus fuentes para comprobar la sincronización. Revise la zona horaria y el estado general con timedatectl, y si la zona horaria necesaria es diferente, elija el nombre real de la zona horaria IANA según la política de operación.
Si cambia el nombre del host, utilice sudo hostnamectl set-hostname NOMBRE_HOST_REAL, pero verifique la relación con DNS, hosts, certificados y sistemas de gestión. También compruebe si cloud-init o la automatización sobrescriben los valores nuevamente. En entornos donde el acceso al servidor de tiempo externo está bloqueado, no se asuma que la hora es correcta solo con la configuración de "sincronización activa".
Permitir solo los puertos necesarios y registrar el estado
Confirme la configuración actual de la herramienta que realmente utiliza, ya sea Ubuntu UFW o Rocky Linux firewalld. Primero permita los puertos de administración reales y pruebe nuevas conexiones, luego agregue solo los servicios necesarios. Revise IPv4 e IPv6, el firewall del host y el firewall en la nube, y no desactive SELinux sin investigar la causa.
Antes de ejecutar el bloque siguiente, compruebe que test ! -e "$HOME/server-baseline" termina con estado 0: debe ser una ruta nueva. Si ya existe, no ejecute el bloque; elija otro nombre y sustitúyalo en todas las líneas para evitar sobrescribir registros anteriores. Los archivos guardados servirán para comparar cambios y deben mantenerse con acceso restringido, pues incluyen direcciones y dispositivos. Guarde las copias de seguridad de configuración por separado y documente cómo puede acceder a ellas la persona encargada de la recuperación.
mkdir -p "$HOME/server-baseline"
chmod 700 "$HOME/server-baseline"
cat /etc/os-release > "$HOME/server-baseline/os-release.txt"
ip -brief address > "$HOME/server-baseline/addresses.txt"
lsblk -f > "$HOME/server-baseline/storage.txt"
systemctl --failed > "$HOME/server-baseline/failed-units.txt"
Determinar si se completó después del reinicio planificado
- Verifique el tiempo en que se puede interrumpir y el acceso a la consola, y guarde los datos necesarios.
- Después de reiniciar con sudo reboot, verifique el estado de arranque en la consola.
- Verifique la nueva conexión SSH, sudo, sincronización de red y hora, servicios necesarios y montajes.
- Revise systemctl --failed y los registros de arranque actuales para comparar con los registros de referencia.
Si no puede volver a conectarse, verifique en la consola la dirección real, el estado de SSH, los puertos a la escucha y el firewall en ese orden. En lugar de cambiar muchas configuraciones a la vez y repetir el mismo fallo, restaure a partir del último cambio efectuado. Solo después de que las funciones de administración hayan sido verificadas, proceda con la instalación del siguiente servicio.




