SELinux impedindo que o / etc / aliases envie o pipe para o script de trabalhar

2

Quando alguém envia um email para o meu servidor, por exemplo

[email protected]

Eu quero que seja canalizado para um script PHP. Então no meu

/etc/aliases
arquivo

eu tenho:

somestringthatisnotnecessarilyauser: "|/path/to/php/script.php"

Com o SELinux desativado, ele envia o email para o script PHP perfeitamente.

Com o SElinux ativado, o maillog está saindo com um erro de permissão:

local[19660]: fatal: execvp /path/to/php/script.php: Permission denied

Sou muito novo no SELinux, mas fixei o problema no SELinux, porque com ele desativado, tudo funciona bem.

Alguém sabe quais comandos semanage, ou outra política, eu preciso aplicar para conseguir que isso funcione com o SELinux ativado?

OS são Centos6.5 64 bits

Aqui está o que o /var/log/audit/audit.log está dizendo ao enviar e-mail para o endereço:

type=AVC msg=audit(1395174916.444:476603): avc:  denied  { search } for  pid=25396 comm="local" name="web" dev=dm-0 ino=522246 scontext=unconfined_u:system_r:postfix_local_t:s0 tcontext=unconfined_u:object_r:httpd_sys_content_t:s0 tclass=dir
type=SYSCALL msg=audit(1395174916.444:476603): arch=c000003e syscall=59 success=no exit=-13 a0=7feaddb404a0 a1=7feaddb40470 a2=7feaddb3b2d0 a3=7fffa4fe93d0 items=0 ppid=21187 pid=25396 auid=500 uid=99 gid=99 euid=99 suid=99 fsuid=99 egid=99 sgid=99 fsgid=99 tty=(none) ses=69836 comm="local" exe="/usr/libexec/postfix/local" subj=unconfined_u:system_r:postfix_local_t:s0 key=(null)

Aqui está a saída do getsebool httpd_can_sendmail

$ getsebool httpd_can_sendmail
httpd_can_sendmail --> on
    
por Daniel Procter 18.03.2014 / 21:18

2 respostas

5

O SELinux é bastante difícil de aprender. Droga, ainda não entendi tudo completamente. Mas uma coisa que me ajudou foi instalar o pacote setroubleshoot e aprender a usar as ferramentas sealert e audit2allow . Ele analisa seu log de auditoria, descobre o que foi negado, fornece uma descrição básica do motivo pelo qual ele foi bloqueado e ajuda você a criar regras para permitir isso, se necessário. Eu acho que é parte do repo EPEL. Confira.

    
por 18.03.2014 / 21:35
0

Você pode tentar:

semanage permissive -a postfix_local_t

É suposto definir o SELinux como permissivo para o tipo de processo postfix_local_t

    
por 18.03.2014 / 22:28