Nwlapcug.com


Come consentire di Apache per connettersi a un database remoto sotto SELinux

SELinux è un grande strumento che deve essere utilizzato in ogni server web pubblicamente accessibile e su qualsiasi server aziendale dove avete bisogno per proteggere i dati.

SELinux assicura servizi fino a quando si dice che altri servizi e le connessioni sono consentite. E ' restrittivo di natura e deve essere configurato per le vostre esigenze.

È abbastanza comune per le aziende di utilizzare un server separato per ospitare un database, o forse condivisi database per i client separati dal web ospitati macchine.

Se questo suona come voi:
"Ho problemi a trovare l'Apache/PHP sul server linux per lavorare con il database Mysql esterno. Connessione da script PHP al database remoto sempre ha esito negativo. Abbiamo fatto un piccolo php script che semplicemente si tenta di connettersi al database remoto. Quando si esegue lo script php in ssh sul server web che funziona bene. Ma quando in esecuzione sotto Apache otteniamo un errore di connessione non importa quello che facciamo. "

Poi ci occuperemo di come risolvere questo problema :)

Istruzioni

1

In primo luogo abbiamo bisogno di verificare che SELinux è abilitato.

Codice:
[root@www ~] # getenforce

Si dovrebbe vedere qualcosa che assomiglia a
Far rispettare

2

Se vedete un risultato diverso, prova:
Codice:
[root@www ~] # setenforce 1

Se si verifica un errore, quindi non avete SELinux attivata. Sarà necessario andare al /etc/selinux/config. e modificare il file per abilitare SELinux.

Una volta che questo accendere (o spegnere per quella materia) sarà necessario riavviare il server linux per la chagnes effettive come sono fatto durante il caricamento del kernel.

3

Una volta SELinux è abilitato, eseguire le operazioni seguenti

Impostare SELinux per consentire le connessioni remote per HTTP

Codice:
setsebool -P httpd_can_network_connect = 1

4

Quello è esso! Il tutto fatto. Alcune persone come riavviare per forzare un ricaricamento, ma la sua non necessarie, a meno che non si desidera.

Consigli & Avvertenze

  • Ci sono altre restrizioni di selinux che possono interessare il server in futuro. È possibile ottenere l'elenco completo con il comando 'getsebool - a'
  • Non tutte le distribuzioni o "sapori" di linux è possibile utilizzare la stessa build. Alcune versioni più recenti non utilizzare questo booleano e avere questo comportamento impostato in RBACs invece.