Capítulo 4. Configuración de SELinux para aplicaciones y servicios con configuraciones no estándar
Cuando SELinux está en modo de aplicación, la política por defecto es la política objetivo. Las siguientes secciones proporcionan información sobre cómo establecer y configurar la política de SELinux para varios servicios después de cambiar los valores predeterminados de configuración, como los puertos, las ubicaciones de las bases de datos o los permisos del sistema de archivos para los procesos.
En los siguientes procedimientos, aprenderás a cambiar los tipos de SELinux para los puertos no estándar, a identificar y arreglar las etiquetas incorrectas para los cambios de directorios por defecto, y a ajustar la política usando booleanos de SELinux.
4.1. Personalización de la política SELinux para el servidor HTTP Apache en una configuración no estándar Copiar enlaceEnlace copiado en el portapapeles!
Puede configurar el servidor HTTP Apache para que escuche en un puerto diferente y proporcione contenido en un directorio no predeterminado. Para evitar las consiguientes denegaciones de SELinux, siga los pasos de este procedimiento para ajustar la política de SELinux de su sistema.
Requisitos previos
-
Se instala el paquete
httpd
y se configura el servidor HTTP Apache para que escuche en el puerto TCP 3131 y utilice el directorio/var/test_www/
en lugar del directorio predeterminado/var/www/
. -
Los paquetes
policycoreutils-python-utils
ysetroubleshoot-server
están instalados en su sistema.
Procedimiento
Inicie el servicio
httpd
y compruebe el estado:Copy to Clipboard Copied! Toggle word wrap Toggle overflow La política de SELinux asume que
httpd
se ejecuta en el puerto 80:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cambie el tipo de SELinux del puerto 3131 para que coincida con el puerto 80:
semanage port -a -t http_port_t -p tcp 3131
# semanage port -a -t http_port_t -p tcp 3131
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Comienza de nuevo
httpd
:systemctl start httpd
# systemctl start httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sin embargo, el contenido sigue siendo inaccesible:
wget localhost:3131/index.html
# wget localhost:3131/index.html ... HTTP request sent, awaiting response... 403 Forbidden ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Encuentre el motivo con la herramienta
sealert
:sealert -l "*"
# sealert -l "*" ... SELinux is preventing httpd from getattr access on the file /var/test_www/html/index.html. ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compare los tipos de SELinux para la ruta estándar y la nueva usando la herramienta
matchpathcon
:matchpathcon /var/www/html /var/test_www/html
# matchpathcon /var/www/html /var/test_www/html /var/www/html system_u:object_r:httpd_sys_content_t:s0 /var/test_www/html system_u:object_r:var_t:s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cambie el tipo de SELinux del nuevo directorio de contenido
/var/test_www/html/
al tipo del directorio por defecto/var/www/html
:semanage fcontext -a -e /var/www /var/test_www
# semanage fcontext -a -e /var/www /var/test_www
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reetiquetar el directorio
/var
recursivamente:restorecon -Rv /var/
# restorecon -Rv /var/ ... Relabeled /var/test_www/html from unconfined_u:object_r:var_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0 Relabeled /var/test_www/html/index.html from unconfined_u:object_r:var_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pasos de verificación
Compruebe que el servicio
httpd
está funcionando:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compruebe que el contenido proporcionado por el servidor HTTP Apache es accesible:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionales
-
Las páginas de manual
semanage(8)
,matchpathcon(8)
, ysealert(8)
.