Inicio > Gestión de paquetes y sistema > semanage

semanage: Gestión de políticas SELinux

semanage es una herramienta de línea de comandos utilizada para administrar políticas de SELinux (Security-Enhanced Linux). Permite agregar, modificar, eliminar y listar varios elementos de política de SELinux, como contextos de archivos, puertos de red, booleanos y mapeos de usuarios. Ayuda a controlar finamente las políticas de seguridad del sistema para garantizar que las aplicaciones y los servicios funcionen de forma segura.

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.


Comandos de la misma categoría