Modos SELinux
SELinux brinda esa capa adicional de seguridad a los recursos del sistema. Proporciona el MAC (control de acceso obligatorio) a diferencia del DAC (control de acceso discrecional). Antes de sumergirnos en la configuración de los modos de SELinux, veamos cuáles son los diferentes modos de operación de SELinux y cómo funcionan. SELinux puede operar en cualquiera de los 3 modos:
2. Permisivo :Las acciones contrarias a la política solo se registran en el registro de auditoría.
3. Deshabilitado :SELinux está deshabilitado por completo.
Alternar los modos SELinux temporalmente
Para cambiar entre los modos de SELinux temporalmente, podemos usar el comando setenforce como se muestra a continuación:
# setenforce [ Enforcing | Permissive | 1 | 0 ]
0 –> Permisivo
1 –> Cumplimiento
O simplemente puede repetir los valores en el pseudo archivo:/sys/fs/selinux/enforce o /selinux/enforce .
# echo [0|1] > /sys/fs/selinux/enforce
Para comprobar el modo actual de SELinux:
# getenforce Enforcing
o también podemos usar el comando sestatus para obtener un estado detallado:
# sestatus SELinux status: enabled SELinuxfs mount: /selinux --> virtual FS similar to /proc Current mode: enforcing --> current mode of operation Mode from config file: permissive --> mode set in the /etc/sysconfig/selinux file. Policy version: 24 Policy from config file: targeted
Cambiar los modos de SELinux de forma permanente
Usando el archivo /etc/sysconfig/selinux
Una forma de cambiar el modo SELinux de forma permanente a Obligatorio o Permisivo es editar el archivo /etc/sysconfig/selinux y establecer el valor de los parámetros de SELINUX en Obligatorio o Permisivo.
# ls -l /etc/sysconfig/selinux lrwxrwxrwx. 1 root root 17 Mar 2 13:03 /etc/sysconfig/selinux -> ../selinux/config
# cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Edite este archivo y reinicie el sistema para que los cambios surtan efecto.
Uso de los parámetros de arranque del Kernel
También podemos usar el parámetro de arranque Kernel en el arranque para configurar el modo SELinux. Para esto edite el /etc/grub.conf y agregue la opción “selinux=1 enforcing=[0|1]” a los parámetros de arranque.
# cat /etc/grub.conf ........ root (hd0,0) kernel /vmlinuz-2.6.32-279.el6.x86_64 root=/dev/md3 selinux=1 enforcing=0 initrd /initramfs-2.6.32-279.el6.x86_64.img .........
selinux=1 –> Habilitar SELinux
enforcing=0 –> Modo permisivo
enforcing=1 –> Modo de cumplimiento
Deshabilitar SELinux
A veces, cuando no está familiarizado con las funcionalidades de SELinux, es mejor desactivarlo. No podemos deshabilitar SELinux sin reiniciar. Una opción alternativa sería configurar SELinux en modo Permisivo. Para deshabilitar completamente SELinux, edite el archivo de configuración /etc/sysconfig/selinux o el /etc/selinux/config que es un enlace suave al archivo /etc/sysconfig/selinux.
# ls -l /etc/sysconfig/selinux lrwxrwxrwx. 1 root root 17 Mar 2 13:03 /etc/sysconfig/selinux -> ../selinux/config
# cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Edite este archivo y reinicie el sistema para que los cambios surtan efecto.
Uso de los parámetros de arranque del Kernel para deshabilitar SELinux
Otra forma de desactivar permanentemente SELinux es editar los parámetros de arranque del kernel. Edite el archivo /etc/grub.conf y agregue la opción selinux=0 a la opción de arranque para deshabilitar SELinux en el arranque. En este caso, se ignoran las configuraciones en /etc/sysconfig/selinux.
# cat /etc/grub.conf ........ root (hd0,0) kernel /vmlinuz-2.6.32-279.el6.x86_64 root=/dev/md3 selinux=0 initrd /initramfs-2.6.32-279.el6.x86_64.img .........