Product SiteDocumentation Site

7.2. Tres Principales Causas de Problemas

Las siguientes secciones describen las tres principales causas de problemas: problemas de etiquetados, configuración de Booleanos y puertos para servicios, y la evolución de las reglas SELinux.

7.2.1. Problemas de Etiquetados

En sistemas que corren SELinux, todos los procesosy archivos se etiquetan con una etiqueta que contiene información de seguridad relevante. Esta información se llama contexto de SELinux. Si estas etiquetas están mal, el acceso puede ser negado. Si una aplicación se etiqueta incorrectamente, el proceso al que transiciona puede no tener la etiqueta correcta, causando negaciones de acceso de SELinux, y los procesos pueden crear archivo con las etiquetas incorrectas.
A common cause of labeling problems is when a non-standard directory is used for a service. For example, instead of using /var/www/html/ for a website, an administrator wants to use /srv/myweb/. On Fedora 13, the /srv/ directory is labeled with the var_t type. Files and directories created and /srv/ inherit this type. Also, newly-created top-level directories (such as /myserver/) may be labeled with the default_t type. SELinux prevents the Apache HTTP Server (httpd) from accessing both of these types. To allow access, SELinux must know that the files in /srv/myweb/ are to be accessible to httpd:
# /usr/sbin/semanage fcontext -a -t httpd_sys_content_t \
"/srv/myweb(/.*)?"

Este comando semanage agrega el contexto para el directorio /srv/miweb/ (y todos los archivos dentro de él) a la configuración de contexto de archivos de SELinux [13]. El comando semanage no cambia el contexto. Como usuario root de Linux, ejecute el comando restorecon para aplicar los cambios:
# /sbin/restorecon -R -v /srv/myweb

Refer to Sección 5.7.2, “Cambios Persistentes: semanage fcontext” for further information about adding contexts to the file-context configuration.

7.2.1.1. ¿Cuál es el contexto correcto?

El comando matchpathcon chequea el contexto de un nombre completo de archivo y lo compara con la etiqueta por defecto para esa dirección. El siguiente ejemplo muestra el uso de matchpathcon en un directorio con archivos etiquetados incorrectamente:
$ /usr/sbin/matchpathcon -V /var/www/html/*
/var/www/html/index.html has context unconfined_u:object_r:user_home_t:s0, should be system_u:object_r:httpd_sys_content_t:s0
/var/www/html/page1.html has context unconfined_u:object_r:user_home_t:s0, should be system_u:object_r:httpd_sys_content_t:s0

En este ejemplo, los archivos index.html and pagina1.html se etiquetan con el tipo user_home_t. Este tipo se usa para archivos en los directorios de inicio de los usuarios. Usando el comando mv para mover archivos puede resultar en archivos etiquetados con el tipo user_home_t. Este tipo no debería existir fuera de los directorios home. Use el comando restorecon para restaurar tales archivos a su tipo correcto:
# /sbin/restorecon -v /var/www/html/index.html 
restorecon reset /var/www/html/index.html context unconfined_u:object_r:user_home_t:s0->system_u:object_r:httpd_sys_content_t:s0

Para restaurar el contexto de todos los archivos bajo un directorio, use la opción -R:
# /sbin/restorecon -R -v /var/www/html/
restorecon reset /var/www/html/page1.html context unconfined_u:object_r:samba_share_t:s0->system_u:object_r:httpd_sys_content_t:s0
restorecon reset /var/www/html/index.html context unconfined_u:object_r:samba_share_t:s0->system_u:object_r:httpd_sys_content_t:s0

Refer to Sección 5.10.3, “Chequeando el Contexto SELinux Predeterminado” for a more detailed example of matchpathcon.


[13] Los archivos en /etc/selinux/targeted/contexts/files/ definen los contextos de archivos y directorios. Los archivos en este directorio son leídos por restorecon y setfiles para restaurar archivos y directorios a sus contextos predeterminados.