Centos 7 – Apache 2.4 : Résoudre les accès 403 Forbidden

J’ai lu sur un blog en vadrouillant : « You choose Centos, you choose SeLinux enabled by default ». Et c’est bien vrai. J’ai choisi la distribution Centos pour deux raisons : la première c’est la sécurité, la seconde c’est que je le trouve plus facile à maintenir que Debian (Jessie à l’heure actuelle), enfin passons. Installation […]
  • Administration système
Centos 7 icone logo
Centos 7 RHEL

J’ai lu sur un blog en vadrouillant : « You choose Centos, you choose SeLinux enabled by default ». Et c’est bien vrai.

J’ai choisi la distribution Centos pour deux raisons : la première c’est la sécurité, la seconde c’est que je le trouve plus facile à maintenir que Debian (Jessie à l’heure actuelle), enfin passons.

Installation et sécurisation d’Apache / httpd

J’ai du passer au moins 2 gros jours dessus, afin de comprendre d’où venait le problème et comment le corriger.

Le problème dans mon cas, c’est que SELinux empêchait Apache de desservir mes fichiers, même en lecture : d’où une erreur 403, accès interdit.

Lorsque que vous avez fini d’installer vos différents CMS, tout bon développeur lance ces deux commandes :

chmod -R 755 /var/www
chown -R http:httpd /var/www

Trouver le groupe d’Apache

httpd est relatif à l’utilisateur / groupe d’Apache depuis sa configuration dans :

nano /etc/httpd/conf/httpd.conf

Cherchez « User » ou « Group« .

Encore plus simple, on peut chercher quel processus écoute sur le port 80 :

# netstat -tulp | grep 'http\|80'

tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 497/httpd 
tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN 497/httpd

SELinux protège les services web

Si la commande au dessus a résolu votre problème, bien joué. Vous êtes peut-être sous Debian, peut-être pas.

La commande suivante vous permettra de savoir si SELinux est activé.

# sestatus

SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 30

Si SELinux est en mode « enforcing », alors SELinux est activé. Pour voir si il vous cause des soucis, désactivez-le, puis testez à nouveau votre URL.

setenforce 0

Si cela fonctionne, souriez et autorisez Apache à servir du contenu web :

chcon -R -t httpd_sys_rw_content_t /var/www/

Puis réactivez SELinux.

setenforce 1

SELinux n’est pas responsable ?

Si ce n’était pas votre problème, vous allez devoir creuser un peu, je vous donne quelques pistes à suivre :

Vérifiez les logs de votre domaine

tail -f /var/log/httpd/domain/error.log

Rechargez la page qui plante, et déchiffrez vos logs. « Denied by server configuration » ou « You don’t have permission to access on this server. » signifient souvent une directive

Options -Indexes

Ou bien

Deny from all

Demandez de l’aide en commentaire si besoin 🙂

Article publié le

Dernière modification le

2 réponses sur “Centos 7 – Apache 2.4 : Résoudre les accès 403 Forbidden”

Georges LAWSON

Salut. Très brillant exposé surtout que des ressources pareilles sont rares sur le web. J’ai fait toutes les étapes mais ça ne fonctionne pas. Peux tu stp mieux expliquer les dernières recommendation après avoir lu le error.log?

Alex Soyer

Salut !

Merci 🙂

Si tu as essayé de désactiver SELinux (avec setenforce 0) et que tu as toujours des erreurs 500, essaye de regarder dans les logs si tu as un indice dedans.

tail -n 50 /var/log/httpd/domain/error.log

Poste le contenu de ceci voir ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.