Introducción
Security-Enhanced Linux (SELinux) es un mecanismo de seguridad fundamental en Red Hat Enterprise Linux que implementa políticas de control de acceso obligatorio (MAC). Un aspecto clave de esto es el etiquetado, que se extiende a los puertos de red. Al asignar etiquetas específicas de SELinux a los puertos, puedes controlar qué servicios tienen permitido vincularse a ellos.
En este desafío, practicarás la gestión de etiquetas de puerto de SELinux. Aprenderás a visualizar las definiciones de puertos existentes, añadir una nueva etiqueta para permitir un servicio en un puerto no estándar y, posteriormente, eliminar esa definición para restaurar la política original.
Gestionar Etiquetas de Puerto de SELinux
Imagina que eres un administrador de sistemas que necesita configurar un servidor web para que funcione en un puerto no estándar, el 8081. Por defecto, SELinux impedirá que el proceso del servidor web (por ejemplo, httpd) se vincule a este puerto porque carece de la etiqueta de SELinux correcta. Tu tarea consiste en utilizar la utilidad semanage para añadir temporalmente la etiqueta adecuada al puerto 8081 y luego eliminarla.
Tareas
- Visualizar las etiquetas de puerto de SELinux existentes asociadas con el servicio HTTP.
- Añadir una nueva regla para etiquetar el puerto TCP
8081con el tipohttp_port_t, permitiendo que los servidores web lo utilicen. - Tras confirmar la nueva regla, eliminar la regla personalizada para el puerto TCP
8081para revertir el cambio.
Requisitos
- Todos los comandos deben ejecutarse como el usuario
labex. Utilizasudocuando se requieran privilegios administrativos. - Todas las operaciones deben realizarse en el directorio
/home/labex. - Debes utilizar el comando
semanagepara gestionar las etiquetas de puerto de SELinux.
Ejemplo
Antes de añadir la nueva etiqueta de puerto, al consultar http_port_t se mostrarán los puertos por defecto:
## sudo semanage port -l | grep http_port_t
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
Después de añadir una regla para el puerto 8081, la salida debería incluir el nuevo puerto:
## sudo semanage port -l | grep http_port_t
http_port_t tcp 8081, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
Resumen
En este desafío, has aprendido las operaciones fundamentales para gestionar las etiquetas de puertos de red en SELinux. Has practicado el uso del comando semanage port para visualizar las políticas existentes, añadir una nueva definición de puerto con semanage port -a y eliminarla con semanage port -d. Etiquetar correctamente los puertos es una habilidad crucial para desplegar servicios de red de forma segura en un sistema con SELinux habilitado, como Red Hat Enterprise Linux.



