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
- Usaremos
chown
para hacer queapache
sea el propietario del directorio web:sudo chown apache:apache -R /var/www/html/
- 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 {} \;
- 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
- 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