Security-Enhanced Linux (SELinux) - Utilizando SELinux

4 - Utilizando SELinux

[editar]
Tutorial creado por Ispasec. Extraido de: http://foro.elhacker.net/index.php/topic,9506.0.html
30 de Noviembre de 1999
Cuando ya tenemos SELinux funcionando, la mayoría de herramientas estándar del sistema, como ps o ls, disponen de una nueva opción --context que nos permite determinar el contexto de seguridad en el que se están ejecutando:
[root@test /]# ps -e --context
  PID   SID CONTEXT                        COMMAND
    1     7 system_u:system_r:init_t       init
    2     1 system_u:system_r:kernel_t     [keventd]
    3     1 system_u:system_r:kernel_t     [kapmd]
  ...
 2728   323 root:user_r:user_t             -bash
 2920   323 root:user_r:user_t             ps -e --context
[root@test /]#
Como podemos ver hay dos columnas adicionales: SID (identificador de seguridad) y el contexto de seguridad, compuesto por el usuario asociado, el rol y su tipo. El usuario system_u se asigna automáticamente a todos los archivos existentes antes de la instalación de SELinux.
Como durante la instalación de SELinux hemos configurado el núcleo con el SELinux Development Support, el sistema está funcionando en modalidad permisiva. Esto significa que en lugar de bloquear aquellas funciones no permitidas por la política de seguridad simplemente las registra (por defecto en /var/log/messages).
Utilizando el mandato avc_toggle podemos cambiar la modalidad para que el sistema bloquee cualquier función no expresamente autorizada:
[root@test /] # tail /var/log/messages
 . el contenido del registro de actividad ...
[root@test /] # avc_toggle
enforcing
[root@test /] # tail /var/log/messages
tail: /var/log/messages: Permission denied
[root@test /] # avc_toggle
avc_toggle: Permission denied
[root@test /] #
Es decir, una vez aplicada la política ningún usuario no autorizado puede modificarla, ni tan siquiera el propio root.
La restauración de la modalidad permisiva sólo puede realizarla bajo el rol de sysadm_r:
[root@test /] # newrole -r sysadm_r
Authenticating root.
Password: root@password
[root@test /] # avc_toggle
permissive
[root@test /] # tail /var/log/messages
 . el contenido del registro de actividad ...
Ahora en el registro de actividad del sistema podemos ver que han quedado registrados los intentos que hemos realizado y han sido denegados por la política.
Definición de la política
Explicar como configurar la política de SELinux es algo que se escapa al alcance de este boletín, pero facilitamos algunos datos básicos. Los lectores interesados encontrarán información más detallada en la documentación incluida dentro de SELinux.
Los archivos de la política residen en el directorio /etc/security/selinux/src. Dentro de este directorio encontramos el archivo users que contiene la relación de usuarios y las definiciones de roles.
En el subdirectorio file_contexts se definen las plantillas de política para los diversos tipos de archivos existentes en el sistema. Por ejemplo:
/etc/security/selinux/src/file_context/program/ntpd.fc
    /var/lib/ntp(/.*)?         
system_u:object_r:var_lib_ntp_t
    /etc/ntp.conf                        system_u:object_r:etc_ntp_t
    /usr/sbin/ntpd                       system_u:object_r:ntpd_exec_t
    /var/log/ntpstats(/.*)?      
system_u:object_r:var_log_ntp_t
    /var/log/ntpd.*         
system_u:object_r:var_log_ntp_t
    /etc/cron.(daily|weekly)/ntp-simple  system_u:object_r:ntpd_exec_t
La primera columna es una expresión regular para los nombres de archivos sobre los que se aplica la política y la segunda columna es el contexto sobre el que se aplica la política.
En el directorio /etc/security/selinix/src/domains se establecen las TE (Type Enformcement) para los objetos del sistema. La forma habitual de realizar esta definición es mediante el lenguaje de marcas m4.
[editar]

5 opiniones

Tutoriales relacionados con 'Security-Enhanced Linux (SELinux)'

Autor y licencia de 'Security-Enhanced Linux (SELinux)'


Tutorial de Ispasec. Extraido de: http://foro.elhacker.net/index.php/topic,9506.0.html CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.