Gestionar Etiquetas de Puerto de SELinux

Red Hat Enterprise LinuxBeginner
Practicar Ahora

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.

Este es un Desafío (Challenge), que a diferencia de un Laboratorio Guiado, requiere que intentes completar la tarea de forma independiente en lugar de seguir pasos de aprendizaje. Los desafíos suelen tener cierta dificultad. Si te resulta complicado, puedes consultarlo con Labby o revisar la solución. Los datos históricos muestran que este es un desafío de nivel principiante con una tasa de aprobación del 100%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

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 8081 con el tipo http_port_t, permitiendo que los servidores web lo utilicen.
  • Tras confirmar la nueva regla, eliminar la regla personalizada para el puerto TCP 8081 para revertir el cambio.

Requisitos

  • Todos los comandos deben ejecutarse como el usuario labex. Utiliza sudo cuando se requieran privilegios administrativos.
  • Todas las operaciones deben realizarse en el directorio /home/labex.
  • Debes utilizar el comando semanage para 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
✨ Revisar Solución y Practicar

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.