Configuración CentOS Apache HTTPD (403 prohibido)


8

Esto es lo que tengo en mi httpd.conf

<VirtualHost *:80>
        ServerAdmin spero78@spero78.com
        ServerName mcmoddr.com
        ServerAlias www.mcmoddr.com
        DocumentRoot /home/mcmoddr/www/
        ErrorLog /mcmoddr/logs/error.log
        CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>

Al visitar el sitio, aparece un error prohibido 403, los archivos se agregan con vsftpd y tienen los permisos drwxr-xr-x

Respuestas:


12

Está utilizando una instalación estándar de CentOS, si eso es correcto, verifique si SELinux está en modo de aplicación

getenforce

si el resultado es "Hacer cumplir"

cambiarlo temporalmente a permisivo

setenforce 0

e intente nuevamente, también puede guiar la condición del contenido web a los archivos en su directorio de inicio.


Esto hizo el truco en mi caso. Pero si posteriormente reforzo nuevamente (con setenforce 1 ) el error 403 ya no aparece, aunque la configuración es la misma que antes, cuando solía aparecer.
— damix911

Esto no es más que un truco sucio. Ciertamente no es la forma correcta de simplemente deshabilitar las funciones de seguridad. Debería configurarlos en su lugar.
— El tonto

9

Deshabilitar SELinux o ejecutar en ROOT

setsebool -P httpd_enable_homedirs on
chcon -R -t httpd_sys_content_t /home/
chcon -R -t httpd_sys_rw_content_t /home/

5

La respuesta de Freaktor de 'setenforce 0' me "funcionó" (¡gracias!)

Pero para mantenerlo funcionando y volver a habilitar SELinux, necesitaba

sudo chcon -Rv --type=httpd_t /path/to/my/files

... esto le dio a mi directorio y a todos los archivos y directorios dentro de él el contexto de seguridad de "httpd_t", que es una forma torpe de decir que SELinux deja que httpd lea esos archivos.

habilitar selinux nuevamente fue tan simple como

setenforce 1

2
Esto es solo temporal; cualquier archivo nuevo que haga tendrá su contexto original y SELinux aún denegará el acceso a los nuevos archivos. Para una solución permanente, vea esta respuesta .
— Michael Hampton

3

Probablemente tenga una denegación de todo en alguna parte de la configuración global. Intente agregar esto a la estrofa vhost:

<Directory /home/mcmoddr/www>
  Order allow,deny
  Allow from all
</Directory>

+1, también @ Spero78 debería asegurarse de que no haya un archivo .htaccess en la raíz de su

0

necesita usar el <Directory>contenedor como se mencionó anteriormente.

Y luego debe verificar desde su DocumentRootruta, cada directorio debe tener permiso de lectura para que el usuario del servicio apache pueda acceder.

puedes verificar usando ls -ld


-1

Agregue la línea a continuación en su código existente.

restorecon -r /home/mcmoddr/www/

Debería solucionar su problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.