Foros del Web » Administración de Sistemas » Unix / Linux »

Selinux - envio de correo

Estas en el tema de Selinux - envio de correo en el foro de Unix / Linux en Foros del Web. Hola hermanos.. estoy tratando de enviar correo desde mi aplicacion web y SELinux no me deja.. Código: Jul 27 15:41:38 hostname kernel: audit(1122493298.486:0): avc: denied ...
  #1 (permalink)  
Antiguo 27/07/2005, 13:32
Avatar de kairocode  
Fecha de Ingreso: diciembre-2004
Mensajes: 20
Antigüedad: 19 años, 4 meses
Puntos: 0
Pregunta Selinux - envio de correo

Hola hermanos..

estoy tratando de enviar correo desde mi aplicacion web y SELinux no me deja..
Código:
Jul 27 15:41:38 hostname kernel: audit(1122493298.486:0): avc:  denied  { execute } for  pid=4011 comm=httpd name=bash dev=hda5 ino=844138 scontext=user_u:system_r:httpd_t tcontext=system_u:object_r:shell_exec_t tclass=file
he leido algunas paginas y no acabo de encotrar la forma..si alguien a chocado con esto o sabe como resolverlo.. le agradeceria mucho que me orientara.

mientras, seguire leyendo...

Saludos...
  #2 (permalink)  
Antiguo 27/07/2005, 14:24
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
¿Tienes actualizado tu sistema? Específicamente tu MTA y las políticas de SELinux (en Fedora es el paquete selinux-policy).
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #3 (permalink)  
Antiguo 28/07/2005, 16:58
Avatar de kairocode  
Fecha de Ingreso: diciembre-2004
Mensajes: 20
Antigüedad: 19 años, 4 meses
Puntos: 0
disculpa el retraso ociomax, gracias por responder...

Aqui van los datos:

distro-CentOS4.0
kernel-2.6.9-11.EL
libselinux-devel-1.19.1-7
libselinux-1.19.1-7
selinux-policy-targeted-1.17.30-2.88

en cuanto a las politicas, tambien tenia esa duda. Tengo entendido que estan dentro del fichero
Código:
/etc/selinux/targeted/policy/policy.18
que por cierto es binario y que para cambiarlas hay que descargarse el fuente de la politica y hacer los cambios en el, despues volver a crear el fichero (cosa que tampoco se como hacer todavia). Tampoco se como ver las politicas, inmagino que exita algun comando, pero todavia no lo encuentro.

En cuanto al MTA pienso que sea Mail Transport Agent y no le veo relacion

No se si el sistema estara todo lo actualizado.. estoy utilizando yum y la ultima actualizacion la hice antier y lo unico que habia en el repositorio nuevo era una actualizacion de la libreria de kde.

Todo esto es la idea que tengo, no se si estoy en lo cierto, lo mas probable que no pero bueno espero poder aclararme... todo es cuestio de tiempo, seguir leyendo y compartiendo con ustedes .

gracias nuevamente..
  #4 (permalink)  
Antiguo 29/07/2005, 13:31
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
Cita:
Iniciado por kairocode
distro-CentOS4.0
kernel-2.6.9-11.EL
libselinux-devel-1.19.1-7
libselinux-1.19.1-7
selinux-policy-targeted-1.17.30-2.88
Mmmm... parece que está todo actualizado...
Cita:
Iniciado por kairocode
en cuanto a las politicas, tambien tenia esa duda. Tengo entendido que estan dentro del fichero
Código:
/etc/selinux/targeted/policy/policy.18
que por cierto es binario y que para cambiarlas hay que descargarse el fuente de la politica y hacer los cambios en el, despues volver a crear el fichero (cosa que tampoco se como hacer todavia). Tampoco se como ver las politicas, inmagino que exita algun comando, pero todavia no lo encuentro.
Puedes bajar el archivo selinux-policy-targeted-1.17.30-2.88.src.rpm y lo instalas de la forma habitual. Las fuentes quedarán en /usr/src/redhat/SOURCES y ahí puedes modificar lo que sea necesario. Luego reconstruyes el RPM usando el archivo SPEC que quedó en /usr/src/redhat/SPEC con el comando:
Código:
rpmbuild -ba /usr/src/redhat/SPEC/selinux-policy-targeted.spec
Esto te generará tu paquete RPM personalizado en /usr/src/redhat/RPMS

Cita:
Iniciado por kairocode
En cuanto al MTA pienso que sea Mail Transport Agent y no le veo relacion
¿No habías dicho que tenías problemas para enviar correo usando una aplicación web? Supongo que dicha aplicación usa un MTA.

PD. Si quieres desactivar SELinux (para hacer pruebas), puedes usar system-config-securitylevel.
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #5 (permalink)  
Antiguo 29/07/2005, 19:31
Avatar de kairocode  
Fecha de Ingreso: diciembre-2004
Mensajes: 20
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola ociomax...
Cita:
¿No habías dicho que tenías problemas para enviar correo usando una aplicación web? Supongo que dicha aplicación usa un MTA.
tienes razon.... no supe interpretar bien la pregunta y tal ves no me explique bien. Estoy haciendo un gestor de contenidos y a la hora de registrarse se envia un correo a una direccion de correo usando la funcion mail() de php. El programa que utiliza la funcion para enviar el correo es sendmail. Parece que como apache y sendmail tienen dominios diferentes, selinux bloquea la comunicacion entre ellos e impide que se envie el correo..

Cita:
Puedes bajar el archivo selinux-policy-targeted-1.17.30-2.88.src.rpm y lo instalas de la forma habitual. Las fuentes quedarán en /usr/src/redhat/SOURCES y ahí puedes modificar lo que sea necesario. Luego reconstruyes el RPM usando el archivo SPEC que quedó en /usr/src/redhat/SPEC con el comando:
Código:

rpmbuild -ba /usr/src/redhat/SPEC/selinux-policy-targeted.spec

Esto te generará tu paquete RPM personalizado en /usr/src/redhat/RPMS
asi podria cambiar las politicas en el fuente y configurarlas para poner a sendmail dentro del dominio de httpd_t y de esta forma pueda ejecutarse...cuando sea invocado por apache????.. no tengo ni idea de los ficheros de politicas pero seria mas o menos siguiendo esta idea???

Por otro lado he continuado leyendo algunas cositas y me encontre algo relacionado a php y selinux.
Cita:
How do I secure PHP programs running under Apache ?
PHP programs are difficult because they are run within the same process as the Apache server : SELinux can only change process contexts when a process exec occurs. This means that PHP programs can only run under Apache policy rules. While this scenario is significantly more secure than on a non-SE system, there are obviously issues in that PHP programs may tamper with parts of the web server for which they shouldn't. This could impact the security for both the web server and the PHP program.
Running PHP programs as external CGI-type processes will allow for context changes and permit fine-grain policy control. However, this method has obvious performance problems.
El articulo completo esta en esta direccion. Me gustaria poder leer sus comentarios.. a la verdad llevo poco mas de 3 semanas sin tocar la aplicacion web, trantado de entender esto ... y me he visto tentado a desactivar selinux defenitivamente(para evitarme el problema) y continuar con el desarrollo de la aplicacion, pero me barrena la cabeza dejar esto a medias, sin entenderlo bien.

Hasta ahora lo que tengo entendido que es como especie de un cortafuegos interno, donde cada proceso(objeto) esta separado uno del otro, cada uno tiene un dominio y dentro de este, todos los archivos(subject) tienen los mismo permisos(segun los permisos tradicionales(DAC)). Crea como varios niveles de seguridad. En los linux tradicionales (donde no hay selinux) solo existen usuarios y root. En caso que un usuario se vea comprometido(apche por ejemplo), se podra acceder a todo el sistema de archivo del sistema donde este usuario(apache) tiene acceso de lectura.

Ahora con selinux, cada usuario tiene atributos que limitan el acceso a su informacion. En el ejemplo de apache tiene como dominio httpd_t. Todo lo que tenga este dominio sera visible para el usuario apache, sin embargo ya no podra leer los ficheros donde tiene acceso de lectura pero no comparte el mismo dominio.
---
Esta es mas o menos la idea que tengo de selinux, no se si esta del todo correcta. Estoy seguro que me faltan por entender millones de cosas mas... Me gustaria leer sus comentarios sobre el tema.

gracias nuevamente ociomax por interesarte en el tema y responder los mensajes.

Última edición por kairocode; 30/07/2005 a las 02:54
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:21.