Hoy vamos a hablar de una herramienta llamada SELinux y tratar de entender como funciona o que aporta a nuestro Linux.
SELinux o Security Enhanced Linux es un mecanismo de control de acceso avanzado, que fue desarrollado por la agencia de seguridad estadounidense NSA para prevenir intrusiones maliciosas. Implementa MAC (control de acceso obligatorio) sobre DAC (control de acceso discrecional) ya presente, es decir, permisos de lectura, escritura y ejecución.
MODOS
Tiene 3 modos de uso:
- Enforcing: Niega el acceso según las reglas de la política,
- Permissive: Permitir todos los accesos no autorizados, pero mostrar alertas sobre ellos,
- Disabled: Deshabilita completamente Selinux.
SELinux incorpora dos tipos de políticas:
- Política «targeted»: sólo los procesos que cuenten con una política de seguridad están bajo el control SELinux, por ejemplo, algunos procesos relevantes, como apache, nginx, dns, proxy squid, snmp y syslog. Es la política por defecto y proporciona un control bastante eficaz y de relativa sencillez. Los procesos sin una política quedan fuera del contexto de seguridad de SELinux y sobre ellos se aplica la seguridad estándar de Linux (DAC).
- Política multi-nivel/multi-categoria (MLS/MCS): habilita la seguridad multi-nivel o multi-categoria.
El archivo de configuración predeterminado para cambiar estos modos es /etc/selinux/config.
Cambiando Modos Selinux
Para averiguar el modo actual, lanzamos el comando
$ getenforce
Para cambiar el modo a permisivo, lanzamos el comando
$ setenforce 0
o para cambiar el modo de permisivo a hacer cumplir, lanzamos el comando
$ setenforce 1
Si necesitamos deshabilitar completamente selinux, solo se puede hacer a través del archivo de configuración ubicado en:
nano /etc/selinux/config
cambia el campo SELINUX para que se vea como
SELINUX = Disabled
Registros de monitoreo
Es posible que haya cometido algunos errores al volver a etiquetar o podría estar recibiendo algunos errores mientras el sistema está funcionando. Para verificar si su Selinux está funcionando correctamente y no está bloqueando el acceso (también conocido como Denails) a cualquier puerto, aplicación, etc., necesitamos monitorear los registros. El archivo de registro para Selinux es /var/log/audit/audit.log pero no tiene que leer el conjunto para verificar los errores. Podemos usar la utilidad ‘audit2why’ para verificar errores en los registros, ejecutando
audit2why </var/log/audit/audit.log
Y obtendremos errores que se presenten. Si todo está bien, no se reportará ningún error.