1. Paso 1: Instalación y configuración del firewall
¡Hola! Hoy vamos a practicar de verdad y aplicar todo lo que has aprendido sobre seguridad en Linux durante el día. Vamos a configurar el firewall, evaluar el trabajo de SELinux y analizar lo práctico que es usar ACLs para gestionar el acceso a archivos. Esta lección es tu "campo de entrenamiento". ¡Es hora de ponernos las "charreteras de seguridad" de admin y empezar!
Ya sabes que un buen firewall es como un guardia en la entrada. Decide a quién dejar pasar y a quién decirle "¡Ni hablar!". Para empezar, configuraremos la protección de nuestro sistema, limitando el acceso solo a los servicios SSH y HTTP.
Trabajando con UFW
Revisa el estado de UFW. ¿No está instalado? ¡Vamos a instalarlo!
# Revisión de UFW sudo ufw statusInstalamos y habilitamos UFW.
# Instalación (si es necesario) sudo apt install ufw # Activamos el firewall sudo ufw enableConfiguramos el acceso. Queremos permitir solo SSH (puerto 22) y HTTP (puerto 80), bloqueando todo lo demás. La lógica es obvia: el servidor no es un hotel de tres estrellas para cualquiera.
# Permitir SSH sudo ufw allow 22 # Permitir HTTP sudo ufw allow 80 # Verificar configuración sudo ufw statusVerificación: Después de la configuración deberías ver algo como esto:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere
Si el comando dice que "el firewall está desactivado", eso hay que corregirlo.
Si utilizas iptables, la configuración es un poco más complicada, pero la lógica es la misma: creamos reglas para SSH y HTTP, y bloqueamos todo lo demás.
2. Paso 2: Trabajo con SELinux
SELinux es como ese profe estricto que siempre está vigilando el comportamiento de archivos y usuarios en tu servidor. Su lema es: "Confía, pero verifica". Vamos a activar SELinux y comprobar cómo funciona.
Activar SELinux
Verificar el estado actual:
# Veamos si SELinux está activado sestatusSi el modo muestra
disabled, hay que activarlo a través del archivo de configuración.Activar SELinux desde la configuración:
El archivo de configuración de SELinux está en la ruta
/etc/selinux/config. Ábrelo usando un editor de texto (por ejemplo,nano).sudo nano /etc/selinux/configBusca la línea:
SELINUX=disabledReemplázala con:
SELINUX=enforcingGuarda los cambios y reinicia el sistema para que los cambios surtan efecto:
sudo rebootVerificar después del reinicio.
Después de que el servidor se inicie, verifica nuevamente el estado de SELinux:
getenforceSi el sistema responde con Enforcing, ¡felicitaciones, estás protegiendo la seguridad!
Ejemplo con SELinux y un servidor web
Supongamos que tienes un servidor web que almacena archivos en el directorio /var/www/html. Veamos cómo SELinux lo protege.
Ver el contexto de los archivos: SELinux utiliza contextos para gestionar el acceso. Vamos a comprobar qué contexto tiene el directorio
/var/www/html.ls -Z /var/www/htmlEjemplo de salida:
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/htmlSi algo no está bien, se puede cambiar temporalmente el contexto:
sudo chcon -t httpd_sys_content_t /var/www/htmlVerificar si el servidor web funciona: Después de configurar el contexto, verifica si tu servidor funciona y si no hay errores de acceso.
3. Paso 3: Gestionar permisos con ACL
ACL (Access Control List) es como una "llave extra" para gestionar el acceso. Cuando los permisos estándar rwx son limitados, ACL te permite personalizar los accesos para usuarios específicos.
Crea una carpeta de prueba
Vamos a crear la carpeta project_dir y configurarla para el acceso de dos usuarios: user1 y user2.
Creando la carpeta:
sudo mkdir /project_dirEstableciendo permisos:
Vamos a otorgar a
user1acceso completo y auser2acceso solo de lectura:# Acceso completo para user1 sudo setfacl -m u:user1:rwx /project_dir # Solo lectura para user2 sudo setfacl -m u:user2:r-- /project_dirVerificando ACL:
# Verificar permisos actuales getfacl /project_dirLa salida debe mostrar tus configuraciones:
# file: /project_dir user::rwx user:user1:rwx user:user2:r--Estableciendo permisos por defecto:
Para que todos los nuevos archivos en la carpeta hereden automáticamente los permisos ACL, configúralos como predeterminados:
sudo setfacl -d -m u:user1:rwx /project_dir sudo setfacl -d -m u:user2:r-- /project_dir
4. Comprobación de la configuración final
Firewall:
- Asegúrate de que los puertos SSH y HTTP estén disponibles y que los demás estén bloqueados. Intenta conectarte al servidor a través de SSH y abre el sitio web en el navegador.
SELinux:
- Revisa los contextos de los archivos para asegurarte de que SELinux limita correctamente el acceso.
ACL:
- Inicia sesión con los usuarios
user1yuser2e intenta leer y escribir un archivo en el directorio/project_dir.
- Inicia sesión con los usuarios
Ejercicios prácticos
- Configura el firewall para que solo permita acceso SSH y HTTP.
- Activa SELinux en modo
enforcingy asegúrate de que el servidor web funcione correctamente. - Configura ACL para el directorio
/project_dir, de modo queuser1tenga acceso completo yuser2solo permisos de lectura. - Comprueba los usuarios activos en el sistema usando el comando
who.
Estos ejercicios te ayudarán a consolidar tus conocimientos y a entender cómo aplicarlos en la práctica. Y recuerda: la seguridad en Linux no se trata solo de configuraciones, sino también de prestar atención constantemente a los detalles. ¡Suerte!
GO TO FULL VERSION