7.3.5. Búsqueda y Revisión de Negaciones
Esta sección asume que los paquetes
setroubleshoot,
setroubleshoot-server, y
audit están instalados, y que los demonios
auditd
,
rsyslogd
y
setroubleshootd
están ejecutándose. Vaya a
Sección 5.2, “Qué Archivo Log se usa” para información sobre cómo iniciar estos demonios. Hay disponibles un número de herramientas para ver las negaciones de SELinux, tales como
ausearch
,
aureport
y
sealert
.
El paquete audit provee ausearch
. De la página de manual de ausearch(8): "ausearch
es una herramienta que puede consultar los registros del demonio audit basados en distintos criterios de búsqueda"[]. La herramienta ausearch
accede a /var/log/audit/audit.log
, y como tal, sebe ser ejecutada como usuario root de Linux:
Buscando | Comando |
---|
todas las negaciones | /sbin/ausearch -m avc |
negaciones de hoy | /sbin/ausearch -m avc -ts today |
negaciones desde los últimos 10 minutos | /sbin/ausearch -m avc -ts recent |
Para buscar negaciones de SELinux para un servicio particular, use la opción -c nombre-de-comando
, donde nombre-de-comando
"es el nombre del ejecutable"[], por ejemplo, httpd
para el Servidor HTTP Apache, y smbd
para Samba:
/sbin/ausearch -m avc -c httpd
/sbin/ausearch -m avc -c smbd
Vaya a la página de manual de ausearch(8) para más opciones de ausearch
.
El paquete audit provee aureport
. De la página de manual de aureport(8): "aureport
es una herramienta que produce informes resumen de los registros de auditoría del sistema"[]. La herramienta aureport
accede a /var/log/audit/audit.log
, y como tal, se debe ejecutar como usuario root de Linux. Para ver una lista de las negaciones de SElinux y cuán a menudo ocurren, ejecute el comando aureport -a
. El siguiente es un ejemplo de la salida en donde se incluyen dos negaciones:
# /sbin/aureport -a
AVC Report
========================================================
# date time comm subj syscall class permission obj event
========================================================
1. 05/01/2009 21:41:39 httpd unconfined_u:system_r:httpd_t:s0 195 file getattr system_u:object_r:samba_share_t:s0 denied 2
2. 05/03/2009 22:00:25 vsftpd unconfined_u:system_r:ftpd_t:s0 5 file read unconfined_u:object_r:cifs_t:s0 denied 4
Vaya a la página de manual de aureport(8) para más opciones de aureport
.
El paquete setroubleshoot-server provee sealert
, que lee los mensajes de negación traducidos por setroubleshoot-server. A las negaciones se le asignan IDs, como se ve en /var/log/messages
. El siguiente es un ejemplo de negación en messages
:
setroubleshoot: SELinux esta previniendo acerca de la intención de httpd (httpd_t) "getattr" to /var/www/html/archivo1 (samba_share_t). Para mensajes SELinux completos, ejecute sealert -l 84e0b04d-d0ad-4347-8317-22e74f6cd020
En este ejemplo, el ID de negación es 84e0b04d-d0ad-4347-8317-22e74f6cd020
. La opción -l
toma un ID como argumento. Ejecutando el comando sealert -l 84e0b04d-d0ad-4347-8317-22e74f6cd020
le presenta un análisis detallado de por qué SELinux negó el acceso, y una posible solución para permitir el acceso.
Si está corriendo el Sistema de Ventanas X, tenga los paquetes setroubleshoot y setroubleshoot-server instalados, y los demonios setroubleshootd
y auditd
ejecutándose, una estrella amarilla y una advertencia se muestran cuando un acceso es negado por SELinux. Con clic sobre la estrella se lanza sealert
modo gráfico y se muestra la negación como HTML:
Ejecute el comando sealert -b
para lanzar la GUI de sealert
.
Ejecute el comando sealert -l \*
para ver un análisis detallado de todas las negaciones.
Como usuario root de Linux, ejecute el comando sealert -a /var/log/audit/audit.log -H > audit.html
para crear una versión HTML del análisis de sealert
, como si se viera en la GUI de sealert
.
Vaya a la página man de sealert(8) para más opciones de sealert
.