SELinux está habilitado por defecto en CentOS 7 y su configuración predeterminada es restringir el acceso de Apache a los directorios hasta que se otorguen permisos explícitos o como hacen algunos y ya hemos visto, lo deshabilitan cosa que no se recomienda.

Si no hacemos esto podemos encontrarnos con algún mensaje como:

  • SELinux Alert Browser
  • SELinux has detected a problem.
  • The source process: httpd

  1. Usaremos chown para hacer que apache sea el propietario del directorio web:
    sudo chown apache:apache -R /var/www/html/
  2. Modificar los permisos para archivos y directorios:
    cd /var/www/html/
    find . -type f -exec sudo chmod 0644 {} \;
    find . -type d -exec sudo chmod 0755 {} \;
    
  3. Usaremos chcon para cambiar el contexto de seguridad del archivo para el contenido web:
    sudo chcon -t httpd_sys_content_t /var/www/html/ -R
    sudo chcon -t httpd_sys_rw_content_t /var/www/html/ -R
    
  4. Reiniciamos el servicio para que se realicen los cambios anteriores:
    sudo systemctl restart httpd.service
    

    Ahora vamos el http://localhost o IP pública para probar el servidor Apache y ver la página Apache predeterminada.

Configurar FirewallD para permitir las conexiones HTTP Permalink

Finalmente falta configurar el Firewall que está habilitado para CentOS 7 por defecto, pero HTTP no está incluido en el conjunto predeterminado de servicios:

sudo firewall-cmd --zone=public --list-services
Nos devolverá:
ssh dhcpv6-client

Para permitir conexiones a Apache, agregamos HTTP como servicio:

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=http

Deja un comentario