Bienvenido(a) a Alcance Libre 07/09/2025, 15:32

Alcance Libre Foros

 Índice del foro > Todo acerca de Linux > Redes y Servidores New Topic Post Reply
 SeLinux Permitir a apache ejecutar
Tópico anterior Tópico siguiente
   
Carlos David Yoong Loor
 07/02/15 01:54 (Leído 2,738 veces)  

Nuevo
working

Estado: desconectado
Forum User

Identificado: 02/07/09
Mensajes: 8
Localización:Ecuador
Hola.!

Necesito poder reiniciar un host desde una página en php, sin tener que deshabilitar el SeLinux.

Hasta ahora tengo la entrada en el archivo sudoers:

PHP Formatted Code
apache ALL=(ALL) NOPASSWD: /sbin/reboot


En php ejecuto

PHP Formatted Code
system('sudo /sbin/reboot');


Pero en audit.log recibo el siguiente registro:

PHP Formatted Code
type=AVC msg=audit(1423338346.349:18483): avc:  denied  { getattr } for  pid=28148 comm="sudo" path="/usr/bin/systemctl" dev="dm-1" ino=33597973 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file
 


Me podrían ayudar a solucionar el problema sin tener que deshabilitar el SeLinux?

Saludos cordiales.!

Cogito Ergo Sum
 
Profile Email
 Quote
Joel Barrios Dueñas
 08/02/15 12:02  

Admin

Estado: desconectado
Site Admin

Identificado: 17/02/07
Mensajes: 1761
Localización:Mexico
Asumo que configuraste sudo para permitir utilizarlo sin un TTY (deshabilita Defaults requiretty con visudo).

Paso 0: echo > /var/log/audit/audit.log
Paso 1: setenforce 0
Paso 2: Realiza la operación que necesitas habilitar en SELinux. Es decir, reinicia tu sistema con tu programa en PHP. Tras reiniciar...
Paso 3: cat /var/log/audit/audit.log |audit2allow -M apachetty
Paso 4: semodule -i apachetty.pp

Recomiendo revisar apachetty.te (se genera con el paso 3) antes de ejecutar el paso 4.
 
Profile Email Website
 Quote
Carlos David Yoong Loor
 09/02/15 08:21  

Nuevo

Estado: desconectado
Forum User

Identificado: 02/07/09
Mensajes: 8
Localización:Ecuador
Así es, está deshabilitado "Defaults requiretty".

Muchas gracias, funcionó, ya no tengo registros "AVC" en audit.log, SeLinux me permite ejecutar el comando, pero no se reinicia, obtengo este registro en error_log de httpd

PHP Formatted Code
sudo: unable to open audit system: Permission denied


Entiendo que ya no tiene que ver con SeLinux, debe faltar alguna línea en el sudoers, sigo buscando pero aún no encuentro.

Bueno, con setenforce 0, si se reinició... selinux?

Cogito Ergo Sum
 
Profile Email
 Quote
Joel Barrios Dueñas
 10/02/15 12:20  

Admin

Estado: desconectado
Site Admin

Identificado: 17/02/07
Mensajes: 1761
Localización:Mexico
Sí, si con setenforce 0 si reinicia, significa que algo aún impide hacerlo. Aplica los pasos que menciono arriba con otro nombre de política.
 
Profile Email Website
 Quote
Carlos David Yoong Loor
 10/02/15 07:38  

Nuevo

Estado: desconectado
Forum User

Identificado: 02/07/09
Mensajes: 8
Localización:Ecuador
Ahora el audit2allow encuentra un error de sintaxis en los logs

PHP Formatted Code
cat /var/log/audit/audit.log | audit2allow -M modulo

compilation failed:
modulo.te:6:ERROR 'syntax error' at token '' on line 6:


/usr/bin/checkmodule:  error(s) encountered while parsing configuration
/usr/bin/checkmodule:  loading policy configuration from modulo.te

 


Las líneas 5,6,7 de mi audit.log:
PHP Formatted Code

type=CRED_ACQ msg=audit(1423618082.811:373): pid=2255 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:httpd_t:s0 msg='op=PAM:setcred acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=? res=success'
type=USER_START msg=audit(1423618082.811:374): pid=2255 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:httpd_t:s0 msg='op=PAM:session_open acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=? res=success'
type=USER_AVC msg=audit(1423618082.851:375): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='avc:  received setenforce notice (enforcing=0)  exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?'
 



modulo.te generado:

PHP Formatted Code


module modulo 1.0;




 


5 líneas, la sexta no existe.

Cogito Ergo Sum
 
Profile Email
 Quote
Joel Barrios Dueñas
 10/02/15 08:07  

Admin

Estado: desconectado
Site Admin

Identificado: 17/02/07
Mensajes: 1761
Localización:Mexico
El error es debido a que el archivo *.te no tiene políticas. No hay información útil en /var/log/audit/audit.log para generar la política y por alguna razón sudo no está generando registros en audit. Parece un bug en sudo que impide registrar la actividad en SELinux.

Sugiero operes con setenforce 0 (o edita /etc/sysconfig/selinux y pon en modo permisivo) por unos días hasta generar suficientes registros en audit para generar la política que te falte. Luego de eso puedes volver a operar con setenforce 1.
 
Profile Email Website
 Quote
Contenido generado en: 0.32 segundos New Topic Post Reply
 Todas las horas son CST. Hora actual 03:32 .
Tópico normal Tópico normal
Tópico Pegado Tópico Pegado
Tópico bloqueado Tópico bloqueado
Mensaje Nuevo Mensaje Nuevo
Tópico pegado con nuevo mensaje Tópico pegado con nuevo mensaje
Tópico bloqueado con nuevo mensaje Tópico bloqueado con nuevo mensaje
Ver mensajes anónimos 
Los usuarios anónimos pueden enviar 
Se permite HTML Filtrado 
Contenido censurado