Configurazione HTTPD di CentOS Apache (403 vietata)


8

Questo è quello che ho nel mio 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>

Quando visito il sito ottengo un errore 403 proibito, i file vengono aggiunti con vsftpd e dispongono delle autorizzazioni drwxr-xr-x

Risposte:


12

Stai utilizzando un'installazione stock di CentOS, se è corretta, controlla che SELinux sia in modalità Enforcing

getenforce

se il risultato è "Applicazione"

modificalo temporaneamente in permissivo

setenforce 0

e riprovare, è inoltre possibile guidare la condizione del contenuto Web ai file nella directory principale.


Questo ha funzionato nel mio caso. Ma se successivamente rinforzo di nuovo (con setenforce 1 ) l'errore 403 non viene più visualizzato, anche se la configurazione è la stessa di prima, quando veniva visualizzata.
damix911,

questo non è altro che un trucco sporco. Non è certamente il modo corretto di disabilitare semplicemente le funzionalità di sicurezza. Dovresti invece configurarli.
Il Matto il

9

Disabilita SELinux o esegui in 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 risposta di Freaktor di 'setenforce 0' ha "funzionato" per me (grazie!)

Ma per farlo funzionare e riattivare SELinux, dovevo farlo

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

... questo ha dato alla mia directory e a tutti i file e directory al suo interno il contesto di sicurezza di "httpd_t", che è un modo goffo per dire che SELinux lascia che httpd legga quei file.

abilitare nuovamente selinux era semplice come

setenforce 1

2
Questo è solo temporaneo; qualsiasi nuovo file creato avrà il suo contesto originale e SELinux negherebbe comunque l'accesso ai nuovi file. Per una soluzione permanente, vedi questa risposta .
Michael Hampton,

3

Probabilmente hai un rifiuto da qualche parte nella configurazione globale. Prova ad aggiungere questo alla stanza del vhost:

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

+1, Anche @ Spero78 dovrebbe assicurarsi che nessun file .htaccess sia nella radice del tuo vhost con direttive restrittive

0

è necessario utilizzare il <Directory>contenitore come indicato sopra.

E quindi devi controllare dal tuo DocumentRootpercorso, Ogni directory deve avere i permessi di lettura in modo che l'utente del servizio apache possa accedere.

puoi controllare usando ls -ld


-1

Aggiungi la riga seguente nel codice esistente.

restorecon -r /home/mcmoddr/www/

Dovrebbe risolvere il tuo problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.