Como criar uma exceção do SELinux para arquivos individuais

3

Eu uso uma ferramenta de monitoramento e em um dos meus sistemas que é verificado remotamente, ele chama um script, que por sua vez executa o systemctl para verificar o status de um serviço. Isso não funcionou até eu colocar o SELinux no modo permissivo. No entanto, não poderei deixar este sistema no modo permissivo. Eu preciso usar semanage para a exceção e colocar o sistema de volta em um estado de execução. Eu usei semanage antes para um processo, mas nunca para um arquivo. Eu tenho procurado a página de manual e pesquisando, mas não consigo descobrir o comando exato que preciso usar. Então diga que eu preciso permitir um script chamado "run_this_script" na pasta / usr / lib64 / application / plugin, qual é o comando que eu usaria com semanage?

EDIT - só para dar mais contexto em torno do que eu estava vendo nos logs de auditoria, aqui está um trecho.

type=AVC msg=audit(1446051455.169:3313): avc:  denied  { execute }   for  pid=15388 comm="check_init_serv" name="systemctl" dev="dm-1"  ino=2101040 scontext=system_u:system_r:nrpe_t:s0  tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file
type=SYSCALL msg=audit(1446051455.169:3313): arch=c000003e  syscall=59 success=no exit=-13 a0=2098450 a1=209ba50 a2=209c680    a3=7fff573ff5b0 items=0 ppid=15386 pid=15388 auid=4294967295 uid=997    gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=   (none) ses=4294967295 comm="check_init_serv" exe="/usr/bin/bash"   subj=system_u:system_r:nrpe_t:s0 key=(null)

type=AVC msg=audit(1446051455.169:3314): avc:  denied  { getattr }   for  pid=15388 comm="check_init_serv" path="/usr/bin/systemctl"   dev="dm-1" ino=2101040 scontext=system_u:system_r:nrpe_t:s0    tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file
type=SYSCALL msg=audit(1446051455.169:3314): arch=c000003e     syscall=4 success=no exit=-13 a0=2098450 a1=7fff573ff780     a2=7fff573ff780 a3=7fff573ff5b0 items=0 ppid=15386 pid=15388     auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995     sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="check_init_serv"     exe="/usr/bin/bash" subj=system_u:system_r:nrpe_t:s0 key=(null)

type=AVC msg=audit(1446051455.169:3315): avc:  denied  { getattr }     for  pid=15388 comm="check_init_serv" path="/usr/bin/systemctl"    dev="dm-1" ino=2101040 scontext=system_u:system_r:nrpe_t:s0     tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file
type=SYSCALL msg=audit(1446051455.169:3315): arch=c000003e   syscall=4 success=no exit=-13 a0=2098450 a1=7fff573ff760   a2=7fff573ff760 a3=7fff573ff5b0 items=0 ppid=15386 pid=15388   auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995   sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="check_init_serv"   exe="/usr/bin/bash" subj=system_u:system_r:nrpe_t:s0 key=(null)

type=AVC msg=audit(1446053257.457:3401): avc:  denied  { read } for     pid=15647 comm="systemctl" name="journal" dev="tmpfs" ino=11584    scontext=system_u:system_r:nrpe_t:s0   tcontext=system_u:object_r:syslogd_var_run_t:s0 tclass=dir
    
por user53029 28.10.2015 / 19:04

1 resposta

0

Não testei, mas ...

encontre o nome que você precisa com audit2allow -a e, em seguida, execute

  • Ative o pacote de políticas: semodule -i <module_name>.pp
  • verifique o módulo carregado: semanage module -l | grep <module_name>
  • depois, volte a aplicar: setenforce 1
por 14.09.2016 / 16:54