Proteger tu servidor Ubuntu es esencial para proteger tus datos, aplicaciones e infraestructura de ataques maliciosos. Tanto si alojas sitios web, bases de datos o aplicaciones, aplicar prácticas de seguridad sólidas garantiza que tu servidor sea resistente ante las vulnerabilidades. En este artículo, veremos pasos prácticos para proteger tu servidor Ubuntu, como configurar cortafuegos, configurar SSH de forma segura y usar herramientas como fail2ban, y otros consejos de refuerzo.
Artículo anterior:
01. Introducción a Ubuntu Server – SysOSX: AI & Cloud
02. Cómo configurar tu primer servidor Ubuntu: guía para principiantes – SysOSX: AI & Cloud
03. Dominar la línea de comandos de Linux para Ubuntu Server – SysOSX: AI & Cloud
04. Gestión de usuarios y permisos en Ubuntu Server: guía completa – SysOSX: AI & Cloud
05. Fundamentos de redes para Ubuntu Server: guía completa – SysOSX: AI & Cloud
06. Instalación y gestión de software en Ubuntu Server: guía completa – SysOSX: AI & Cloud
07.Aplicación de parches y actualización de Ubuntu Server: guía completa – SysOSX: AI & Cloud
¿Por qué es importante la seguridad del servidor?
Los servidores suelen contener datos confidenciales y son fundamentales para las operaciones empresariales. Sin las medidas de seguridad adecuadas, los atacantes pueden aprovechar vulnerabilidades para obtener acceso no autorizado, interrumpir servicios o robar información. Si sigues estos pasos prácticos, puedes reducir significativamente el riesgo de ataques y garantizar que tu servidor siga siendo seguro.
1. Mantén tu sistema actualizado
Las actualizaciones periódicas son esenciales para corregir vulnerabilidades de seguridad y mantener tu servidor seguro. Ubuntu ofrece actualizaciones puntuales para sus paquetes y su kernel.
Pasos para actualizar tu servidor:
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
Además, habilita unattended-upgrades para automatizar las actualizaciones de seguridad:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
2. Configura un cortafuegos con UFW
Un cortafuegos es tu primera línea de defensa contra el acceso no autorizado. Ubuntu incluye UFW (Uncomplicated Firewall), que simplifica la gestión del cortafuegos.
Pasos para configurar UFW:
- Habilita UFW:
sudo ufw enable
- Permitir conexiones SSH:
sudo ufw allow ssh
- Permitir puertos específicos (por ejemplo, HTTP y HTTPS para servidores web):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
- Comprueba el estado del cortafuegos:
sudo ufw status
De forma predeterminada, UFW bloquea todas las conexiones entrantes excepto las permitidas explícitamente, lo que garantiza la protección de tu servidor.
3. Protege el acceso SSH
SSH es el método principal para la administración remota de servidores, pero suele ser el objetivo de ataques de fuerza bruta. Proteger SSH es fundamental para reducir el riesgo de acceso no autorizado.
Consejos para proteger SSH:
- Cambia el puerto SSH predeterminado:
- Edita el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
- Cambia el puerto predeterminado (por ejemplo, de
22a2222) y reinicia el servicio SSH:
sudo systemctl restart ssh
- Actualiza la regla de UFW para permitir el acceso al puerto nuevo:
sudo ufw allow 2222/tcp
- Deshabilita el inicio de sesión como root:
En/etc/ssh/sshd_config, establece:
PermitRootLogin no
- Usa la autenticación con clave SSH:
- Genera un par de claves SSH:
ssh-keygen -t rsa -b 4096
- Copia la clave pública a tu servidor:
ssh-copy-id username@server-ip
- Limita el acceso SSH:
Restringe el acceso SSH a direcciones IP específicas editando los archivos/etc/hosts.allowy/etc/hosts.deny.
4. Instala y configura Fail2Ban
Fail2Ban es una herramienta que protege tu servidor de ataques de fuerza bruta supervisando archivos de registro y bloqueando direcciones IP con comportamiento sospechoso.
Pasos para configurar Fail2Ban:
- Instala Fail2Ban:
sudo apt install fail2ban
- Crea un archivo de configuración local:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Configura la protección SSH:
Edita/etc/fail2ban/jail.localy habilita el jail SSH:
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
- Reinicia Fail2Ban:
sudo systemctl restart fail2ban
Fail2Ban supervisará ahora los registros SSH y bloqueará las IP tras repetidos intentos fallidos de inicio de sesión.
5. Deshabilita los servicios innecesarios
La ejecución de servicios innecesarios aumenta la superficie de ataque de tu servidor. Identifica y deshabilita los servicios que no necesitas.
Pasos para deshabilitar servicios:
- Enumera los servicios activos:
sudo systemctl list-units --type=service
- Detén y deshabilita los servicios no utilizados:
sudo systemctl stop service-name
sudo systemctl disable service-name
6. Usa contraseñas seguras y cuentas de usuario
Las contraseñas débiles son una vulnerabilidad común. Asegúrate de que todas las cuentas de usuario usen contraseñas seguras y únicas.
Consejos para la seguridad de las cuentas de usuario:
- Usa un gestor de contraseñas para generar y almacenar contraseñas seguras.
- Audita periódicamente las cuentas de usuario y elimina las cuentas no utilizadas:
sudo awk -F: '{ print $1}' /etc/passwd
7. Habilita la autenticación de dos factores (2FA)
La autenticación de dos factores añade una capa adicional de seguridad a tu proceso de inicio de sesión SSH. Puedes habilitar 2FA con Google Authenticator.
Pasos para habilitar 2FA:
- Instala Google Authenticator:
sudo apt install libpam-google-authenticator
- Configura 2FA para tu usuario:
Ejecuta el siguiente comando y sigue las indicaciones:
google-authenticator
- Habilita 2FA en SSH:
Edita/etc/pam.d/sshdy añade:
auth required pam_google_authenticator.so
Reinicia el servicio SSH:
sudo systemctl restart ssh
8. Supervisa los registros y la actividad del sistema
Supervisar periódicamente los registros de tu servidor te ayuda a detectar actividades sospechosas a tiempo.
Herramientas para supervisar registros:
- Syslog: Consulta los registros generales del sistema:
sudo less /var/log/syslog
- Registro de autenticación: Revisa los intentos de autenticación:
sudo less /var/log/auth.log
Considera usar herramientas como Logwatch o OSSEC para el análisis automatizado de registros y las alertas.
9. Realiza copias de seguridad periódicas
Incluso con medidas de seguridad sólidas, las copias de seguridad son esenciales para recuperarse de ataques o de la pérdida de datos.
Opciones de copia de seguridad:
- Usa rsync para crear copias de seguridad locales:
rsync -av /data /backup/
- Automatiza las copias de seguridad con herramientas como Duplicity o integra soluciones basadas en la nube como AWS S3 o Google Cloud Storage.
10. Consejos adicionales de refuerzo
- Instala software antivirus: Usa herramientas como ClamAV para buscar malware.
sudo apt install clamav
sudo clamscan -r /path/to/scan
- Protege las aplicaciones web: Si alojas sitios web, usa herramientas como ModSecurity para protegerte contra vulnerabilidades web comunes.
- Habilita AppArmor: AppArmor proporciona control de acceso obligatorio para las aplicaciones.
sudo apt install apparmor
sudo aa-status
Conclusión
Proteger tu servidor Ubuntu requiere un enfoque proactivo que combine actualizaciones del sistema, configuración del cortafuegos, refuerzo de SSH y herramientas como Fail2Ban. Si sigues estos pasos y supervisas tu servidor periódicamente, puedes crear una defensa sólida contra posibles amenazas.
Para obtener más información, consulta la Guía de seguridad de Ubuntu.
A continuación: Auditoría y registro en Ubuntu Server
Aunque proteger tu servidor es esencial, mantener la visibilidad de sus operaciones es igualmente importante. La auditoría y el registro te permiten supervisar las actividades del sistema, identificar anomalías y solucionar problemas de forma eficaz.
En la siguiente sección, trataremos:
- La importancia de la auditoría del sistema y de los registros.
- Uso de auditd para rastrear y registrar eventos del sistema.
- Configuración de la rotación de registros con logrotate para gestionar los archivos de registro de forma eficiente.
- Supervisión del directorio
/var/logpara eventos críticos.
Estas prácticas te ayudarán a mantener la responsabilidad, detectar posibles amenazas y garantizar la fiabilidad de tu servidor.
No te pierdas nuestro análisis de las herramientas y técnicas que te permitirán auditar y supervisar tu servidor Ubuntu de forma eficaz.
3 thoughts on “08. Securing Your Ubuntu Server: Practical Steps for Hardening and Protection”