5.4. SELinux nega no Diário de Auditoria
O sistema de Auditoria Linux armazena entradas de log no arquivo /var/log/audit/audit.log por padrão. Para listar somente registros relacionados ao SELinux, utilize o comando ausearch com o parâmetro de tipo de mensagem definido para AVC e AVC_USER no mínimo, por exemplo:
ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR
# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR
Uma entrada de negação da SELinux no arquivo de registro de auditoria pode parecer como se segue:
type=AVC msg=audit(1395177286.929:1638): avc: denied { read } for pid=6591 comm="httpd" name="webpages" dev="0:37" ino=2112 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=dir
type=AVC msg=audit(1395177286.929:1638): avc: denied { read } for pid=6591 comm="httpd" name="webpages" dev="0:37" ino=2112 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=dir
As partes mais importantes desta entrada são:
-
avc: denied- a ação realizada pela SELinux e registrada em Access Vector Cache (AVC) -
{ read }- a ação negada -
pid=6591- o identificador do processo do sujeito que tentou realizar a ação negada -
comm="httpd"- o nome do comando que foi usado para invocar o processo analisado -
httpd_t- o tipo SELinux do processo -
nfs_t- o tipo SELinux do objeto afetado pela ação do processo -
tclass=dir- a classe de objeto de destino
A entrada de registro anterior pode ser traduzida para:
SELinux denied the httpd process with PID 6591 and the httpd_t type to read from a directory with the nfs_t type.
A seguinte mensagem de negação SELinux ocorre quando o Servidor HTTP Apache tenta acessar um diretório etiquetado com um tipo para a suíte Samba:
type=AVC msg=audit(1226874073.147:96): avc: denied { getattr } for pid=2465 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=284133 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:samba_share_t:s0 tclass=file
type=AVC msg=audit(1226874073.147:96): avc: denied { getattr } for pid=2465 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=284133 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:samba_share_t:s0 tclass=file
-
{ getattr }- a entradagetattrindica que o processo de origem estava tentando ler as informações de status do arquivo de destino. Isto ocorre antes da leitura dos arquivos. A SELinux nega esta ação porque o processo acessa o arquivo e não tem uma etiqueta apropriada. As permissões mais comuns incluemgetattr,read, ewrite. -
path="/var/www/html/file1"- o caminho para o objeto (alvo) que o processo tentou acessar. -
scontext="unconfined_u:system_r:httpd_t:s0"- o contexto SELinux do processo (fonte) que tentou a ação negada. Neste caso, é o contexto SELinux do Servidor HTTP Apache, que está rodando com o tipohttpd_t. -
tcontext="unconfined_u:object_r:samba_share_t:s0"- o contexto SELinux do objeto (alvo) que o processo tentou acessar. Neste caso, é o contexto SELinux defile1.
Esta negação da SELinux pode ser traduzida para:
SELinux denied the httpd process with PID 2465 to access the /var/www/html/file1 file with the samba_share_t type, which is not accessible to processes running in the httpd_t domain unless configured otherwise.
Recursos adicionais
-
Para mais informações, consulte as páginas de manual
auditd(8)eausearch(8).