En esta entrada vamos a ver la forma de configurar SELinux para trabajar en modo permisivo de forma selectiva, concretamente indicando qué procesos queremos que trabajen en modo permisivo cuando a nivel global la configuración es enforcing.
Si usamos la terminología correcta, debemos hablar de configurar determinados dominios de SELinux en modo permisivo, ya que los procesos se ejecutan dentro de estos dominios. Nos guste o no, SELinux es todo un mundo así que no voy a profundizar mucho en el tema pues la entrada sería interminable. El que no odie SELinux (jaja) puede indagar por su cuenta.
Lo primero que nos interesa es saber la lista de dominios disponibles, para ello ejecutaremos el siguiente comando:
Nota: para utilizar el comando seinfo
hay que instalar el paquete setools-console
[root@centos6 ~]# yum install setools-console
[root@centos6 ~]# seinfo -adomain -x | less domain sosreport_t git_session_t cfengine_execd_t bootloader_t netutils_t qmail_tcp_env_t devicekit_power_t httpd_collectd_script_t sandbox_x_client_t nova_api_t sblim_reposd_t dkim_milter_t virt_qemu_ga_unconfined_t admin_crontab_t consolekit_t nova_compute_t nova_console_t pam_console_t zarafa_gateway_t policykit_grant_t logrotate_t openvswitch_t update_modules_t ssh_keysign_t nova_network_t qmail_rspawn_t uml_switch_t qmail_inject_t qmail_lspawn_t [...]
Para configurar un dominio en modo permisivo ejecutamos el comando semanage permissive -a domain
, donde domain es el dominio que queremos modificar. Por ejemplo, podemos configurar Apache para que SELinux trabaje con sus procesos en modo permisivo en lugar de enforcing:
Nota: para utilizar el comando semanage
hay que instalar los paquetes policycoreutils-python y policycoreutils
[root@centos6 ~]# semanage permissive -a httpd_t
Si listamos con semodule
o seinfo
los dominios en modo permisivo aparecerá Apache:
[root@centos6 ~]# semodule -l | grep permissive permissive_httpd_t 1.0 permissivedomains 1.0.0
[root@centos6 ~]# seinfo --permissive | grep http httpd_t
Si en algún momento se quiere revertir el cambio ejecutamos semanage de la misma forma que para añadir pero con el parámetro -d
, siempre como root:
[root@centos6 ~]# semanage permissive -d httpd_t