Selinux

Páginas: 12 (2969 palabras) Publicado: 27 de junio de 2012
Practica SELinux

SELinux: Teoria
Lo prometido es deuda, y hoy vamos a explicar un poco que es SELinux [SecurityEnhanced Linux, enlace de la NSA] y cómo opera. Recomiendo releer la entrada sobre
MAC y DAC para recordar conceptos. Tras esto, ¿qué es SELinux? SELinux es una
implementacion del MAC que funciona a nivel de kernel, lo que implica que las
aplicaciones no necesitan ser modificadaspara aprovechar toda su potencia, ya que para
ellas SELinux es transparente, algo muy importante a la hora de que el sistema sea
desplegado en un entorno real.
La razón de usar SELinux es limitar el acceso que tienen las aplicaciones a otras
aplicaciones y a los ficheros, impidiendo que un proceso pueda modificar cualquier fichero
del usuario con el que se lanzó. Por ejemplo, Firefox jamasdebería ser capaz de cambiar
los permisos de mi clave privada ssh, lo cual con un sistema de control de acceso DAC sí
sería posible si un atacante toma el control del navegador.
¿Cómo funciona SELinux? Pues se basa en atributos extendidos del sistema de ficheros que
indican el tipo de usuario (que no tiene porque ser usuario del sistema), el rol, y el tipo del
objeto. Por ejemplo, si hacemos unls -lZ para ver los atributos extendidos del directorio
/etc/httpd, podremos ver que permisos le asigna una distribución Red Hat a los ficheros de
configuración de Apache (la quinta línea se ha partido para facilitar su presentación):
[root@localhost httpd]# ls -lZ
drwxr-xr-x root root system_u:object_r:httpd_config_t conf
drwxr-xr-x root root system_u:object_r:httpd_config_t conf.dlrwxrwxrwx root root system_u:object_r:httpd_log_t logs ->
../../var/log/httpd
lrwxrwxrwx root root system_u:object_r:httpd_modules_t modules ->
../../usr/lib/httpd/modules
lrwxrwxrwx root root system_u:object_r:httpd_config_t run ->
../../var/run

Como podemos ver, el usuario y rol es el mismo, pero el tipo cambia. Estos atributos son
los que en función de las políticas definidas en SELinux,indican las interacciones entre
ellos y los diferentes objetos del sistema. Estos atributos están definidos en el sistema, y
puede haber cientos, tantos como la granularidad que queramos obtener. La mayoría de
distribuciones que usan SELinux vienen ya con varios tipos predeterminados para
ayudarnos en su administración, pero nosotros podemos definir más. Si queremos ver todos
los tiposdisponibles, lo podemos hacer con el comando
#getsebool -a

Ahora que ya conocemos los atributos, ahora nos falta conocer un poco las políticas que
utilizan estos atributos. Al más alto nivel, existen dos tipos de políticas básicas: targeted y
strict:





strict: En modo estricto, por defecto todo está denegado, y tan sólo se permite lo
especificado en la políticas. Esto, que sigue elprincipio de mínimo privilegio, es
complicado de administrar y llevaría a la mayoría de los sysadmins a desactivar
SELinux.
targeted: Tan sólo ciertos servicios están bajo la supervisión de SELinux, como por
ejemplo los demonios httpd, bind, postgresql, etc. El resto están libres de
restricciones. La denominacion Targeted proviene del hecho de que tan solo los
servicios señalados serán vigilados.Para saber qué tipo de política tenemos configurada, en un sistema Red Hat podemos
averiguarlo en el fichero /etc/sysconfig/selinux.
Por debajo de estos modos, se sitúan las políticas en sí, que definen las interacciones entre
objetos. Dichas políticas pueden usar diferentes controles de acceso, en función de los
atributos extra que utilicen. Normalmente se suele usar Type Enforcement enel cual tan
solo se utiliza el atributo tipo, y es el modo usado por la política targeted. Existen otros
métodos como el Role-Based Access Control que utiliza los atributos de usuario y rol pero
normalmente, dado que como política se utiliza targeted, el modo de acceso mas común es
el Type Enforcement.
Ya tan sólo nos queda saber qué es lo que exactamente permite o impide que podamos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Selinux

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS