Guía de configuración del servidor Ubuntu LTS (20.04 / 24.04)
Esta guía da por hecho que estás configurando un nuevo Servidor Ubuntu LTS instancia (20.04 o 24.04) en un servidor virtual (VPS) o en un proveedor de servicios en la nube.
1. Crear un usuario «sudo» que no sea «root»
adduser tuNombreDeUsuario
usermod -aG sudo tuNombreDeUsuario
2. Obtener acceso mediante clave SSH para el nuevo usuario
Si tu proveedor de alojamiento no admite la inserción de claves SSH públicas en el momento de la creación, copia tu clave desde tu equipo local al directorio temporal raíz iniciar sesión:
ssh-copy-id ro**@**********ne.ip.000
Una vez que hayas iniciado sesión como raíz, transfiere las claves SSH al nuevo usuario:
rsync --archive --chown=tuNombreDeUsuario:tuNombreDeUsuario /root/.ssh /home/tuNombreDeUsuario
Cierra la sesión y vuelve a iniciar sesión como el nuevo usuario:
salir
ssh yo**********@**********ne.ip.000
3. Reforzar la seguridad de SSH
Una vez que hayas comprobado que puedes iniciar sesión como tuNombreDeUsuario, desactiva el acceso SSH como usuario root:
Edita la configuración del demonio SSH:
sudo nano /etc/ssh/sshd_config
Asegúrate de que la línea diga lo siguiente: PermitRootLogin no
Reiniciar SSH:
sudo service ssh restart
Importante: Mantén abierta una sesión SSH activa hasta que hayas comprobado que el inicio de sesión sin contraseña funciona para tu nuevo usuario; a continuación, prueba a establecer una nueva conexión desde otro terminal antes de cerrar la sesión de root.
4. Configura la zona horaria
sudo timedatectl set-timezone Continente/Ciudad
# Ejemplo: sudo timedatectl set-timezone Asia/Tokio
5. Configurar el FQDN
Editar /etc/hosts y sustituye la línea predeterminada y añade tu IP pública:
127.0.1.1 nombre-del-ordenador.ejemplo.com
tu.ip.000 nombre-del-ordenador.ejemplo.com nombre-del-ordenador
A continuación, configura el nombre de host del sistema:
sudo hostnamectl set-hostname nombre-del-ordenador.example.com
6. Instalar WordOps
wget -qO wo wops.cc && sudo bash wo
source /etc/bash_completion.d/wo_auto.rc
echo -e "alias wo='sudo -E wo'" >> $HOME/.bashrc
7. Instalar y configurar UFW (cortafuegos)
wo stack install --ufw
wo secure --ssh
Antes de activar UFW, asegúrate de permitir el acceso por SSH (ya gestionado por wo secure --ssh), y a continuación activa el cortafuegos:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Para configurar una lista de direcciones IP permitidas compatible con Cloudflare, consulta este otro artículo:
8. Variables de la API Cloudflare (para scripts de automatización)
export CF_Key="yourCloudflareAPIKey"
export CF_Email="yo*****************@*****le.com"
Guárdalas en ~/.bashrc o un archivo de entorno específico si tu sistema de automatización los necesita en cada inicio de sesión.
9. Activar el cron de WordPress a través del cron del sistema
Edita el archivo crontab de root:
sudo crontab -e
Añadir:
*/2 * * * * find /var/www -type f -name "wp-cron.php" -path "*/htdocs/wp-cron.php" -execdir sudo -u www-data php {} \; > /dev/null 2>&1
Asegúrate de que el
cronEl servicio se está ejecutando:sudo systemctl enable --now cron
10. Herramientas diversas
Herramienta de línea de comandos # S3
sudo apt update
sudo apt install -y s3cmd
# Configurar con: s3cmd --configure
# Analizador de uso del disco
sudo apt install -y ncdu
11. Redis (caché de objetos)
Habilitar e iniciar Redis como servicio del sistema:
sudo systemctl enable redis-server.service
sudo systemctl start redis-server.service
Consúltalo con:
sudo systemctl status redis-server.service
12. Módulos de WordOps que se omiten por defecto
- Nginx: el mejor bloqueador de bots maliciosos: Es una herramienta estupenda, pero resulta innecesaria si ya utilizas el WAF y la limitación de tráfico de Cloudflare.
13. Pasos finales y próximas guías
Sigue las guías específicas para completar la pila (en esos artículos se explican los motivos de cada elección y se ofrecen alternativas).
Una vez completados estos pasos, tu servidor Ubuntu LTS contará con:
- Un usuario «sudo» seguro que no sea «root» y que tenga acceso mediante clave SSH
- Inicio de sesión como usuario «root» desactivado a través de SSH
- FQDN y zona horaria correctos
- Integración de WordOps + UFW + Cloudflare
- WP-Cron a nivel del sistema, Redis y herramientas de administración habituales
Ya estás listo para crear sitios web de WordPress con wo site create example.com --wpfc (u otras opciones de pila) y reforzar la seguridad de cada sitio web por separado.
- Cómo actualizar automáticamente las reglas de UFW con las direcciones IP de la versión Cloudflare
- Cómo instalar y configurar ClamAV para que analice regularmente su servidor en busca de malware
- Cómo instalar y configurar Fail2Ban para proteger el acceso a su VPS
- Cómo instalar y configurar Monit para vigilar y monitorizar sus servidores
- Cómo instalar y configurar Sendmail para utilizar cualquier proveedor de correo electrónico como retransmisor SMTP
- Cómo instalar y configurar Tarsnap para hacer copias de seguridad seguras de tus sitios web
Deja una respuesta