¡Hola! Hoy te traigo una guia de seguridad para Ubuntu que, además de ser completísima, está pensada para que cualquier persona, aunque tenga pocas nociones de Ubuntu, pueda montar y gestionar su propio servidor web en Ubuntu 22.04 sin complicaciones.
Prometo que vas a encontrar de todo: desde servidores web como Apache y Nginx hasta herramientas de seguridad como UFW, iptables o fail2ban, pasando por un vistazo a Docker.
Vamos a meternos en faena.
1. Antes de liarnos: ¿qué vamos a ver?
En esta guia de seguridad para Ubuntu vamos a cubrir:
- Herramientas básicas del sistema
- Gestión de paquetes
- Servidor web Apache
- Servidor web Nginx
- Seguridad esencial
- Monitorización y logs
- Docker
- Consejos finales
En cada apartado te explico cómo instalar las herramientas, los comandos principales y algún truquito extra.
2. Herramientas básicas de gestión del sistema
2.1. systemctl y journalctl
Ubuntu 22.04 usa systemd. Necesitas estos comandos:
sudo systemctl start <servicio>
: inicia servicio.sudo systemctl stop <servicio>
: para servicio.sudo systemctl restart <servicio>
: reinicia.sudo systemctl enable <servicio>
: arranque automático.sudo systemctl disable <servicio>
: desactivar en arranque.sudo systemctl status <servicio>
: estado del servicio.
Para ver logs:
journalctl -u <servicio>
: logs de un servicio.journalctl -f
: ver logs en tiempo real.journalctl --since "2025-01-01 00:00:00"
: logs desde una fecha concreta.
2.2. top y htop
Para ver consumo de recursos:
top
: ya está preinstalado.htop
: más visual, instalar con:
sudo apt update && sudo apt install htop
2.3. ps y lsof
ps aux
: ver procesos activos.lsof -i :80
: saber quién usa el puerto 80.
3. Gestión de paquetes y repositorios
3.1. apt
El clásico en Ubuntu:
sudo apt update
: actualizar índice.sudo apt upgrade
: actualizar paquetes.sudo apt install <paquete>
: instalar algo.sudo apt remove <paquete>
: desinstalar.sudo apt purge <paquete>
: eliminar con configuraciones.sudo apt autoremove
: quitar dependencias innecesarias.
3.2. snap
Otro sistema que usa Ubuntu:
snap find <paquete>
: buscar paquetes.sudo snap install <paquete>
: instalar.sudo snap remove <paquete>
: quitar.
Aun así, para montar servidores web usamos más apt.
4. Servidor web Apache
4.1. Instalación
sudo apt update sudo apt install apache2
Comprueba estado:
sudo systemctl status apache2
4.2. Comandos esenciales
start
,stop
,restart
,enable
,disable
,status
.apache2ctl configtest
: revisar errores de config.
4.3. Configuración básica
- Archivo principal:
/etc/apache2/apache2.conf
- Virtual Hosts:
/etc/apache2/sites-available/
Habilitar sitio:
sudo a2ensite <archivo> sudo systemctl reload apache2
4.4. Recomendaciones rápidas
- Usa Let’s Encrypt para SSL.
- Configura bien tus Virtual Hosts.
5. Servidor web Nginx
5.1. Instalación
sudo apt update sudo apt install nginx
Estado:
sudo systemctl status nginx
5.2. Comandos básicos
start
,stop
,restart
,enable
,disable
,status
,reload
.
5.3. Configuración
- Archivo principal:
/etc/nginx/nginx.conf
- Sitios:
/etc/nginx/sites-available/
y/etc/nginx/sites-enabled/
Crear sitio:
sudo ln -s /etc/nginx/sites-available/mi-sitio /etc/nginx/sites-enabled/ nginx -t sudo systemctl reload nginx
5.4. Extras
- Muy usado como proxy inverso.
- SSL con certbot también aquí.
6. Seguridad: pilar clave de esta guia de seguridad para Ubuntu
6.1. UFW (Uncomplicated Firewall)
Instalación (por si no viene):
sudo apt update sudo apt install ufw
Uso:
sudo ufw status
sudo ufw enable
sudo ufw disable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Cuidado: no te cierres el SSH sin querer.
6.2. iptables
Para usuarios avanzados que prefieren control fino:
sudo iptables -L sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -P INPUT DROP
6.3. fail2ban
Protección contra ataques de fuerza bruta.
Instalación:
sudo apt update sudo apt install fail2ban
Uso:
sudo systemctl status fail2ban
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
Configura en /etc/fail2ban/
para vigilar servicios como SSH, Apache o Nginx.
7. Monitorización y logs: parte esencial en cualquier guia de seguridad para Ubuntu
7.1. logrotate
Evita llenar el disco con logs gigantes:
- Configuración:
/etc/logrotate.conf
,/etc/logrotate.d/
- Ya viene preinstalado.
7.2. tail, less, grep
Tus herramientas básicas diarias:
tail -f /var/log/syslog
tail -f /var/log/apache2/access.log
less /var/log/nginx/error.log
grep <cadena>
8. Docker: contenedores prácticos para proyectos en Ubuntu
8.1. Instalación
Rápido:
sudo apt update sudo apt install docker.io
Ó instalación oficial (recomendado para últimas versiones):
Instrucciones oficiales de Docker
8.2. Comandos básicos
docker ps
,docker ps -a
docker images
,docker pull <imagen>
docker run <imagen>
docker stop <container_id>
docker rm <container_id>
,docker rmi <image_id>
Evitar sudo
:
sudo usermod -aG docker tu_usuario
8.3. Docker Compose
Para proyectos múltiples:
sudo apt update sudo apt install docker-compose
Permite levantar varios contenedores a la vez.
9. Llegamos al cierre: lo que debes recordar de esta guia de seguridad para Ubuntu
Llegamos al final de esta guia de seguridad para Ubuntu, donde hemos tocado los temas esenciales para montar, asegurar y mantener un servidor web operativo en Ubuntu 22.04.
Recuerda:
- Actualiza siempre el sistema tras probar en entornos seguros.
- Revisa los logs periódicamente.
- Personaliza la configuración de tus servidores.
- Protege el acceso SSH usando claves.
- Aprende Docker Compose para entornos de producción.
Espero que esta guia de seguridad para Ubuntu te haya sido muy útil y te ayude a levantar tu proyecto con éxito. Para más tutoriales, trucos y consejos, ¡te invito a visitar nuestra web!
Nos vemos en la próxima.