CentOS Apache HTTPD-Konfiguration (403 verboten)

8

Dies ist, was ich in meiner httpd.conf habe

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName mcmoddr.com
        ServerAlias www.mcmoddr.com
        DocumentRoot /home/mcmoddr/www/
        ErrorLog /mcmoddr/logs/error.log
        CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>

Beim Besuch der Website wird der Fehler 403 Forbidden angezeigt. Die Dateien werden mit vsftpd hinzugefügt und haben die Berechtigungen drwxr-xr-x

Patt-Tom McDonnell
quelle

Antworten:

12

Sie verwenden eine Standardinstallation von CentOS. Wenn dies korrekt ist, überprüfen Sie bitte, ob sich SELinux im Durchsetzungsmodus befindet

getenforce

wenn das Ergebnis "Durchsetzen" ist

zeitlich auf freizügig ändern

setenforce 0

Wenn Sie es erneut versuchen, können Sie den Zustand des Webinhalts auch zu den Dateien in Ihrem Home-Verzeichnis führen.

Freaktor
quelle
Dies hat in meinem Fall den Trick getan. Wenn ich jedoch später erneut verstärke (mit setenforce 1 ), wird der 403-Fehler nicht mehr angezeigt , obwohl die Konfiguration dieselbe ist wie zuvor, als sie früher angezeigt wurde.
Damix911
Das ist nichts weiter als ein schmutziger Hack. Es ist sicherlich nicht der richtige Weg, um Sicherheitsfunktionen einfach zu deaktivieren. Sie sollten sie stattdessen konfigurieren.
Der Narr
9

Deaktivieren Sie SELinux oder führen Sie es in ROOT aus

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

Freaktors Antwort von 'setenforce 0' hat für mich "funktioniert" (danke!)

Aber damit es funktioniert und SELinux wieder aktiviert, musste ich es tun

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

... dies gab meinem Verzeichnis und allen darin enthaltenen Dateien und Verzeichnissen den Sicherheitskontext von "httpd_t", was eine klobige Art zu sagen ist, dass SELinux httpd diese Dateien lesen lässt.

Das erneute Aktivieren von Selinux war so einfach wie

setenforce 1
jg3
quelle
2
Dies ist nur vorübergehend; Alle neuen Dateien, die Sie erstellen, haben ihren ursprünglichen Kontext und SELinux verweigert weiterhin den Zugriff auf die neuen Dateien. Eine dauerhafte Lösung finden Sie in dieser Antwort .
Michael Hampton
3

Sie haben wahrscheinlich irgendwo in der globalen Konfiguration eine Verweigerung. Versuchen Sie, dies der Zeilengruppe vhost hinzuzufügen:

<Directory /home/mcmoddr/www>
  Order allow,deny
  Allow from all
</Directory>
Alex Howansky
quelle
+1, auch @ Spero78 sollte sicherstellen, dass sich keine .htaccess-Datei im Stammverzeichnis Ihres vhost mit restriktiven Anweisungen befindet
0

Sie müssen den <Directory>oben genannten Behälter verwenden.

Und dann müssen Sie von Ihrem DocumentRootPfad aus überprüfen, ob jedes Verzeichnis über Leseberechtigungen verfügt, damit der Dienstbenutzer Apache darauf zugreifen kann.

Sie können mit überprüfen ls -ld

user533968
quelle
-1

Bitte fügen Sie die folgende Zeile in Ihren vorhandenen Code ein.

restorecon -r /home/mcmoddr/www/

Es sollte Ihr Problem beheben.

Niranjay singh
quelle