Selinux e cgi-bin - permissão negada.

0

Tentando executar um script Perl hello-world no local padrão do cgi-bin /var/www/cgi-bin/test.pl com o RHEL 7. Recebo uma permissão negada no log de erros do httpd somente quando o selinux definido para impor

AH01215: (13)Permission denied: exec of '/var/www/cgi-bin/test.pl' failed  
End of script output before headers: test.pl

Com o selinux definido como permissivo, o script é exibido corretamente e nada é postado no log de erros do httpd.

No log de auditoria, fico sem fôlego

type=PROCTITLE msg=audit(27482): proctitle=2F7573722F62696E2F7065726C002F7661722F7777772F6367692D62696E2F746573742E706C
type=PATH msg=audit(27482): item=2 name="/lib64/ld-linux-x86-64.so.2" inode=134467951 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:ld_so_t:s0 objtype=NORMAL
type=PATH msg=audit(27482): item=1 name="/usr/bin/perl" inode=67148821 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:bin_t:s0 objtype=NORMAL
type=PATH msg=audit(27482): item=0 name="/var/www/cgi-bin/test.pl" inode=269726961 dev=fd:07 mode=0100775 ouid=0 ogid=1007 rdev=00:00 obj=system_u:object_r:httpd_sys_script_exec_t:s0 objtype=NORMAL
type=CWD msg=audit(27482):  cwd="/var/www/cgi-bin"
type=EXECVE msg=audit(27482): argc=2 a0="/usr/bin/perl" a1="/var/www/cgi-bin/test.pl"
type=SYSCALL msg=audit(27482): arch=c000003e syscall=59 success=yes exit=0 a0=561ae60b3cd0 a1=561ae60ad370 a2=561ae60ad388 a3=7ffe850d64a0 items=3 ppid=23749 pid=24488 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="test.pl" exe="/usr/bin/perl" subj=system_u:system_r:httpd_t:s0 key=(null)
type=SELINUX_ERR msg=audit(27482): op=security_bounded_transition seresult=denied oldcontext=system_u:system_r:httpd_t:s0 newcontext=system_u:system_r:httpd_sys_script_t:s0

A última linha parece interessante "SELINUX_ERR op = security_bounded_transitionpresentult = negado oldcontext = ... newcontext = ..." mas não consegue encontrar muito sobre isso.

Por fim, o contexto e a permissão do arquivo estão corretos.

drwxrwxr-x. root   webdev system_u:object_r:httpd_sys_script_exec_t:s0 /var/www/cgi-bin
-rwxrwxr-x. root webdev system_u:object_r:httpd_sys_script_exec_t:s0 /var/www/cgi-bin/test.pl

E tudo está correto no http.conf

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI
   Require all granted 
</Directory>
AddHandler cgi-script .pl

Ter que desligar o selinux até eu descobrir o que está acontecendo.

    
por user2225403 30.03.2018 / 03:20

0 respostas

Tags