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
Al establecer un servicio en modo «permissive» en log sigue dejando un evento de tipo AVC (denied), ¿verdad?.
Correcto.
Saludos
Buenos días, estoy trabajando en un panel de control y estoy hace días buscando como obtener el uso total de RAM de un usuario en Ubuntu. (La ram que está utilizando ese usuario en el momento que ejecuto el comando)
Lo sabes? Gracias!!!