Configurare correttamente gli host virtuali di Apache con più utenti


15

Grazie in anticipo per qualsiasi aiuto tu possa fornire. Mi sono autodidatta usando Linux (Ubuntu), Apache, host virtuali e alcuni bit per quanto riguarda la sicurezza, anche se non ho ancora messo insieme tutti questi elementi senza soluzione di continuità.

Ho anche imparato a fondo dagli errori commessi in passato in merito alla mancata corretta configurazione degli account utente e dei siti / host virtuali. Ho usato il server come root (lo so, molto male) e ho creato manualmente tutti gli host e i file virtuali, quindi tutti di proprietà di root. Ho avuto una vecchia versione di joomla sfruttata e un codice di spam dannoso inserito in tutti gli altri miei host virtuali.

Sto per passare a un nuovo server e sto cercando i passaggi corretti da seguire per quanto riguarda la configurazione di host virtuali e account utenti che possono accedervi. Poiché utilizziamo software di terze parti, in alcune occasioni abbiamo avuto bisogno di qualcun altro per accedere al sito per esaminare i file del proprio sito Web.

Il nostro server attuale è la versione 10.04, tuttavia il nuovo server è la versione 12.04. Tutti i file del sito Web sono impostati in

/home/www/site1.com

/home/www/site2.com

/home/www/site3.com

eccetera

In breve, suppongo che sia quello che sto cercando.

  1. Come posso configurare correttamente un host virtuale e un utente, in modo che abbia accesso solo ai propri file e non a qualsiasi altro host virtuale sul server. Ad esempio, se quel sito viene sfruttato con codice dannoso, non può infettare altri siti sul server

  2. Come potrei configurare gli utenti in modo che possano ftp solo nei loro file e non accedere a nessuno degli altri siti.

Come accennato in precedenza, ci sono numerosi articoli che descrivono in dettaglio come eseguire uno di questi passaggi, ma nulla che li riunisca perfettamente.

Apprezzo molto l'aiuto che chiunque può offrire. Non esitate a chiedere ulteriori informazioni che potrebbero essere necessarie per dare consigli. Attualmente sto seguendo tutorial per configurare chroot, tuttavia temo di non farlo correttamente poiché ho riscontrato alcune incoerenze lungo il percorso. Sto anche indagando sul jailkit.

Risposte:


6

Poiché la domanda è il principale risultato di ricerca in google quando viene posta la domanda "utente separato host virtuale apache", mi piacerebbe dare una risposta più elaborata basata su questa risposta . La mia risposta non copre il caso d'uso di PHP e CGI (useresti suPHP). Si concentra su PHP quando utilizzato come modulo apache.

Puoi usare il modulo apache apache2-mpm-itk . È disponibile per l'attuale versione di Apache 2.4. Viene fornito con la direttiva AssignUserID. Questa direttiva definisce l'utente e il gruppo con cui viene gestita la richiesta di un host virtuale. Questo è un esempio della configurazione del sito apache con cui sono finito:

<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>

Naturalmente, ciò migliora la sicurezza solo se i singoli DocumentRoot sono di proprietà dei rispettivi utenti e non sono accessibili al gruppo. Per ulteriore sicurezza relativa a PHP, gli script sono imprigionati nella DocumentRootrestrizione open_basedir. Per quanto riguarda l'accesso al file back-end, preferisco SFTP con chroot .

Nota: apache2-mpm-itk è attualmente incompatibile con il modulo http2 di Apache.


1

Non ritengo che questa sia una risposta alla tua domanda. Ma dal momento che non posso ancora commentare, devo scrivere nell'area "risposta". Faccio stagionalmente la gestione web, un modo per testare e provare le cose in modo sicuro è quello di impostare un ambiente di prova in una macchina virtuale (cioè VirtualBox) o un "vecchio" computer desktop. Uno dei problemi più comuni degli amministratori di host web per principianti è capire come funzionano i programmi di server web. In questo caso suppongo che tu debba capire come funziona Apache e almeno capire i file di configurazione. Trovo che Webmin sia uno strumento molto utile - per un principiante - per gestire Apache e altri servizi. Devi dedicare un po 'di tempo a provare le cose nel tuo ambiente di test in modo che le cose diventino più chiare per te.

Ritornando alla tua domanda, penso che la risposta possa essere un articolo tutorial o un piccolo libro. Dai un'occhiata a questi articoli per iniziare:

https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

http://www.servermom.org/build-ubuntu-server-a-complete-guide/


Grazie biocyberman. Questi sono praticamente i passaggi di base che seguo e sono abbastanza familiari. L'unica differenza è che non ho associato ciascun sito Web a un altro utente, il che è qualcosa che proverò dopo, ma questo protegge le cartelle degli host virtuali l'una dall'altra? Il jailkit sembra essere parte della soluzione, ma non ne sono sicuro al 100%. Ho giocato con webmin in passato, quindi lo rivisiterò e vedrò se sarà di aiuto con una qualsiasi delle domande che ho.
user249729,
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.