Usted está aquí:Inicio/MG Developers/Blog/Configurar Apache (httpd) cuando está activado SELinux en CentOS

Publicaciones recientes

Por Qué Elegirnos

  • Más de 400 proyectos puestos en producción durante los últimos 15 años demuestran el compromiso con nuestros clientes, certifican nuestra metodología y reflejan la capacidad de nuestro equipo de profesionales.

  • En MicroGestion existe un compromiso genuino con la calidad, la formación continua de nuestros profesionales y la mejora continua de nuestros procesos son la evidencia de dicho compromiso.

  • Creemos que los siguientes rasgos son esenciales para el ejercicio de nuestra actividad:

    » Entusiasmo, como requisito para llevar a cabo un proceso creativo.
    » Proactividad, como engranaje de la dinámica de grupos.
    » Responsabilidad, como condición fundamental para asumir compromisos en cada nivel de la empresa.
    » Trabajo en grupo, como mecánica de trabajo elegida para lograr sinergia.

    Asimismo nuestra capacidad de ejecución se fundamenta en el respeto de los siguiente valores:

    » Flexibilidad, necesaria para buscar el mejor camino en cada proyecto.
    » Compromiso, para formar equipos con conocimiento de dominio y orientación al logro.
    » Solvencia, que nos permite diseñar la mejora alternativa tecnológicas para cada solución.

  • En MicroGestion las personas son el factor más importante para el éxito de los proyectos; la conformación y gestión del capital humano se lleva a cabo teniendo en cuenta los siguientes lineamientos:

    » Determinando el conjunto correcto de personas para cada proyecto.
    » Desarrollando un ambiente donde existan oportunidades de aprendizaje.
    » Propiciando la confianza y el respeto dentro del equipo.
    » Permitiendo el desacuerdo y previendo una manera de resolverlo.
    » Preguntando, no inquiriendo.
    » Reconociendo los logros.

30 Ago

Configurar Apache (httpd) cuando está activado SELinux en CentOS

El siguiente tip describe brevemente como configurar SELinux para que el servidor Apache escuche en un puerto diferente al definido por omisión (80).

Nota: los comandos detallados en esta guía, salvo aclaración en contrario, se asumen ejecutados con la identidad de root.

Primer intento!

Si modificamos el archivo de configuración httpd.conf para que el servicio httpd "escuche" en el puerto 81 es posible que obtengamos el siguiente error:

# service httpd start
Starting httpd: [Mon Aug 26 13:41:44 2013] [warn] module dav_svn_module is already loaded, skipping
(13)Permission denied: make_sock: could not bind to address [::]:81
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:81
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

Esto se debe a que la configuración de SELinux no permite la utilización de este puerto por parte del servicio httpd. A continuación se describen los pasos que se deben seguir para configurar el servicio de apache (httpd) en un puerto diferente al 80 cuando está activado SELinux.

Pasos iniciales

Verificar estado de SELinux

Para comprobar nuestra hipótesis, ejecutar el comando sestatus y verificar que SELinux se encuentra habilitado:

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted

Verificar que el servicio httpd esté bajo

Antes de realizar cambios en las configuraciones conviene asegurarse que el servidor Apache está bajo:

# service httpd status
httpd is stopped

Configurar SELinux

Obtener configuración de los puertos donde puede escuchar httpd

Ejecutando el comando semanage port -l se listan todos los puertos habilitados.

Nota: para httpd solo nos interesa conocer los puertos definidos para http_port_t.

# semanage port -l | grep http
http_cache_port_t              tcp      3128, 8080, 8118, 11211, 10001-10010
http_cache_port_t              udp      3130, 11211
http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

Nota: El puerto 81 no está incluido y por ello el servidor falla al iniciar.

Agregar el puerto 81 a la lista de puertos habilitados para httpd

Necesitaremos del comando semanage port -a para habilitar un puerto, el siguiente comando permite habilitar un puerto para http_port_t:

# semanage port -a -t http_port_t -p tcp 81

Si ejecutamos nuevamente el comando semanage port -l deberíamos ver el puerto agregado a http_port_t.

# semanage port -l | grep http
http_cache_port_t              tcp      3128, 8080, 8118, 11211, 10001-10010
http_cache_port_t              udp      3130, 11211
http_port_t                    tcp      81, 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

Iniciar el servicio httpd

Luego de realizar los cambios en las configuraciones se deberá reiniciar el servidor Apache.

# service httpd start

SSL

El procedimiento anterior se deberá repetir si se pretende acceder al servidor a través de HTTPS (SSL) utilizando un puerto no definido en http_port_t.

Referencias

Modificado por última vez en Lunes, 09 Septiembre 2013 04:11
Valora este artículo
(0 votos)
Diego Mendoza

Diego Mendoza se desempeña como arquitecto de software en MicroGestion participando en el proceso de análisis y diseño de soluciones que tengan requerimientos de alta disponibilidad, integración de ambientes heterogéneos, orientación a servicios, gestión de procesos de negocio, etc.

Sitio Web: www.microgestion.com/index.php/mg-developers/blog/author/988-diegomendoza
Deja un comentario

Asegúrate de llenar la información requerida marcada con (*). No está permitido el Código HTML. Tu dirección de correo NO será publicada.

Comuníquese con nosotros telefónicamente +54 011 4382-0878 o vía correo electrónico Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.