Muitas vezes, por diversas razões, não conseguimos impedir que o SELinux interfira no funcionamento adequado de determinados softwares. Para solucionar casos deste tipo, podemos utilizar o audit2allow para entender melhor o problema ou para criar módulos de políticas para SELinux.
O primeiro passo é verificar os logs em /var/log/audit,log, que terá registros semelhantes a esse:
type=AVC msg=audit(1455199601.283:181376): avc: denied { setattr } for pid=7489 comm=”mingetty” name=”tty6″ dev=devtmpfs ino=5354 scontext=system_u:system_r:getty_t:s0 tcontext=system_u:object_r:tmpfs_t:s0 tclass=chr_file
type=SYSCALL msg=audit(1455199601.283:181376): arch=c000003e syscall=92 success=no exit=-13 a0=7ffdf8b4b090 a1=0 a2=0 a3=7ffdf8b4acd0 items=0 ppid=1 pid=7489 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm=”mingetty” exe=”/sbin/mingetty” subj=system_u:system_r:getty_t:s0 key=(null)
type=AVC msg=audit(1455199606.148:181377): avc: denied { setattr } for pid=7490 comm=”mingetty” name=”tty2″ dev=devtmpfs ino=5350 scontext=system_u:system_r:getty_t:s0 tcontext=system_u:object_r:tmpfs_t:s0 tclass=chr_file
Neste exemplo, SELinux está bloqueando a função “setattr” para a aplicação “mingetty”. Iremos usar o audit2allow para criar um módulo de política SELinux para corrigir tal erros.
Para gerar um relatórios “humano” dos eventos do SELinux, você pode utilizar o comando abaixo:
# audit2allow -a
O comando acima irá analisar todos os registros contidos em /var/log/audit.log. Caso queira uma análise apenas para um erro específico, você pode usar o “grep” para filtrar os eventos:
# grep “mingetty” /var/log/audit.log | audit2allow -w
Para criar um modulo de política SELinux, utilze a opção “-M”:
# audit2allow -a -M meumodulo
Posso também utilizar o “grep”, como no exemplo anterior:
# grep “mingetty” /var/log/audit.log | audit2allow -M meumodulo
Ele irá criar um arquivo “.pp” e um .”te” no diretório corrente. Para instalar o módulo, você utilize o comando:
# semodule -i meumodulo.pp
Em seguinda, habilite o módulo:
# semodule -e meumodulo
Referencia: