Descripción general
semanage se utiliza para realizar cambios permanentes en las políticas de SELinux. Mientras que `chcon` o `restorecon` aplican políticas temporales o existentes, `semanage` define nuevas reglas de política y asegura que se mantengan después de reiniciar el sistema.
Objetos de gestión principales
Los principales elementos de política de SELinux que se pueden gestionar con semanage.
- Contextos de archivos (File Contexts): Especifica el tipo SELinux para archivos y directorios en rutas específicas.
- Puertos de red (Network Ports): Especifica el tipo SELinux para puertos de red.
- Booleanos de SELinux (Booleans): Interruptores que activan o desactivan comportamientos específicos de la política SELinux.
- Mapeos de usuarios de SELinux (User Mappings): Mapea usuarios de Linux a usuarios de SELinux.
Opciones principales
semanage administra políticas para varios tipos de objetos SELinux. Se describen las opciones comunes utilizadas con cada tipo de objeto.
Opciones de gestión general
Tipos de objetos
Comando generado:
Combina los comandos.
Descripción:
`semanage` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Muestra varios escenarios para administrar políticas de SELinux utilizando el comando semanage.
Listar todas las reglas de contexto de archivo
sudo semanage fcontext -l
Verifica todas las reglas de mapeo de contexto de archivo definidas en el sistema actual.
Listar reglas de puertos específicos
sudo semanage port -l | grep http
Lista las reglas de puertos utilizadas por el servicio HTTP.
Agregar un contexto de archivo personalizado
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/my_app(/.*)?"
Agrega una regla para especificar el tipo httpd_sys_content_t para el directorio /var/www/html/my_app y sus subarchivos. (Se requiere restorecon después de agregar).
Agregar un puerto personalizado
sudo semanage port -a -t http_port_t -p tcp 8080
Agrega el puerto TCP 8080 con el tipo http_port_t para que pueda ser utilizado por servicios web.
Habilitar un booleano de SELinux
sudo semanage boolean -m --on httpd_can_network_connect
Habilita el booleano httpd_can_network_connect para permitir que el servidor web Apache inicie conexiones de red.
Instalación
semanage se proporciona como parte del paquete 'policycoreutils' o similar en la mayoría de las distribuciones de Linux que utilizan SELinux. A continuación se muestran los métodos de instalación en las principales distribuciones.
RHEL/CentOS/Fedora
sudo dnf install policycoreutils-python-utils
Instala el paquete 'policycoreutils-python-utils' usando el administrador de paquetes DNF o YUM.
Debian/Ubuntu
sudo apt install selinux-utils
Instala el paquete 'selinux-utils' usando el administrador de paquetes APT.
Consejos y precauciones
Consejos útiles y precauciones a tener en cuenta al administrar políticas de SELinux con semanage.
Aplicar cambios
Después de modificar las reglas de contexto de archivo, asegúrate de aplicar los contextos modificados al sistema de archivos usando el comando 'restorecon'.
- `sudo restorecon -Rv /path/to/directory`
Diagnóstico de problemas y generación de políticas
Si ocurren problemas relacionados con SELinux, puedes verificar el archivo `/var/log/audit/audit.log` para identificar las acciones denegadas y usar la herramienta `audit2allow` para generar las reglas de política necesarias.
- `sudo tail -f /var/log/audit/audit.log` (Ver registro en tiempo real)
- `sudo audit2allow -a -M mypolicy` (Genera los archivos 'mypolicy.te' y 'mypolicy.pp' basados en los registros de violación de política)
- `sudo semodule -i mypolicy.pp` (Carga el módulo de política generado)
Precauciones
Modificar incorrectamente las políticas de SELinux puede bloquear el acceso a servicios específicos o a todo el sistema. Es importante hacer una copia de seguridad de la política actual o probarla cuidadosamente antes de realizar cambios.