Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/07/2005, 19:31
Avatar de kairocode
kairocode
 
Fecha de Ingreso: diciembre-2004
Mensajes: 20
Antigüedad: 20 años
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