Web server¶
Nota
Questo capitolo descrive le funzionalità dell'applicazione Web server, disponibile nel nuovo Server Manager.
L'applicazione Web server è immediatamente disponibile al termine dell'installazione di NethServer Enterprise. Serve a configurare e avviare il web server HTTP Apache.
L'applicazione Web server mette a disposizione le seguenti funzionalità:
Apache HTTP web server
Integrazione con i certificati del sistema per HTTPS
Hosting di siti web multipli
reverse proxy HTTP
Linguaggio di scripting PHP per eseguire applicazioni Web
FTP server
Le seguenti sezioni descrivono le pagine dell'applicazione Web server. Alcune di esse richiedono componenti software aggiuntivi che vengono scaricati, installati e configurati automaticamente quando sono richiesti per la prima volta.
Dashboard Web server¶
La pagina Dashboard del server Web mostra lo stato e le statistiche correnti del server Web. Elenca anche i componenti aggiuntivi installati sul sistema.
La configurazione predefinita di Apache serve il contenuto di /var/www/html
ed è in grado di eseguire script PHP sul Default web stack.
Impostazioni¶
La pagina Impostazioni consente di modificare i parametri di configurazione di PHP per l'allocazione delle risorse (ad es. Memoria massima dello script e tempo di esecuzione).
Le modifiche influiscono sulla configurazione globale di PHP: sono pertanto valide sia per le applicazioni Web che per gli script da riga di comando, a meno che non vengano sovrascritti in qualche modo.
Le impostazioni di PHP possono anche essere modificate per un sito web specifico dalla pagina Virtual hosts (vedi anche Versioni e configurazione PHP), o sovrascritte con un file di configurazione personalizzato. Per questo scopo:
per PHP 7.2, verificare le impostazioni correnti di PHP-FPM in
/etc/opt/rh/rh-php72/php-fpm.d/000-virtualhost.conf
;creare un file nella stessa directory (es
/etc/opt/rh/rh-php72/php-fpm.d/001-custom.conf
) e fare riferimento alla documentazione ufficiale di PHP-FPM per adeguare le necessarie direttive;aggiungere il file creato al backup della configurazione.
Virtual host¶
È possibile ospitare più siti web su NethServer Enterprise. È possibile configurare lo spazio di hosting del sito web dalla pagina Virtual Host.
Quando viene creato un nuovo virtual host con uno o più nomi server, il nuovo Server Manager crea contestualmente, per ciascuno di essi, un nome alias nel servizio DNS locale.
Nota
Un nome alias del server è accessibile dai client web se questi utilizzano il NethServer Enterprise stesso come il loro server DNS. Per i siti Web pubblici, consultare la documentazione del provider DNS e assicurarsi che il nome alias del server sia impostato correttamente nel DNS pubblico.
I nomi alias del server sono elencati nella dashboard del nuovo Server Manager e da lì possono essere direttamente modificati.
Restrizioni accesso sito web¶
È possibile limitare il modo in cui i client web accedono ad un sito web con le seguenti opzioni, disponibili nella sezione Impostazioni avanzate.
Abilitando l'opzione :guilabel: Consenti accesso solo da reti fidate. Fare riferimento alla sezione Reti fidate per maggiori informazioni.
Abilitare l'opzione Richiedi autenticazione HTTP per concedere l'accesso ai client solo tramite password. Le applicazioni Web di solito forniscono un metodo di autenticazione autonomo: questa opzione potrebbe essere utile per proteggere i contenuti di siti Web statici.
Se fosse necessario accedere al sito web sempre tramite un canale crittografato, è possibile abilitare l'opzione Richiedi connessione crittografata SSL. Qualsiasi richiesta di risorse ricevuta tramite il protocollo HTTP verrà reindirizzata su HTTPS.
Certificato SSL/TLS¶
A ciascun virtual host può essere assegnato un certificato SSL/TLS dedicato oppure si può utilizzare quello predefinito di sistema. In qualunque caso, i nomi usati per il virtual host devono essere presenti tra i nomi alternativi del certificato, altrimenti i client web potrebbero rifiutare di connettersi.
Configurare un'applicazione web¶
Quando viene definito un nuovo virtual host, viene creata anche la relativa directory radice web. Il percorso completo della radice web viene visualizzato sotto Host virtuali > Elenco > Web root path.
Se l'opzione Abilita accesso FTP è attiva, è possibile caricare i dati, i file di configurazione e gli script nella root web utilizzando un client FTP.
Suggerimento
La password di autenticazione HTTP dovrebbe essere diversa da quella FTP, poiché FTP viene utilizzato per caricare i contenuti del virtual host mentre HTTP viene utilizzato per visualizzarli dal web.
Il sito web visualizza una pagina di "Benvenuto" fino a quando un file chiamato index.html
o index.php
non viene caricato nella directory web principale. Se non si desidera questo comportamento, è possibile abilitare l'opzione Elenco dei file della directory principale, come alternativa alla pagina di benvenuto.
I file caricati via FTP sono di proprietà del gruppo apache con autorizzazioni di sola lettura. Se fossero necessarie autorizzazioni di scrittura o di esecuzione, sarà possibile concederle tramite un client FTP.
Avvertimento
Se un sito web contiene codice eseguibile, ad esempio script PHP, le implicazioni di sicurezza delle autorizzazioni dei file devono essere valutate attentamente. Si consiglia di concedere l'accesso in scrittura solo a una serie limitata di file e directory speciali, come richiesto dalla documentazione dell'applicazione web.
La configurazione di Apache può essere sovrascritta caricando un file chiamato .htaccess
. Fare riferimento alla documentazione ufficiale di Apache per ulteriori informazioni su questa funzione 1.
Versioni e configurazione PHP¶
Se la versione di PHP fornita da Default web stack non si adatta ad un'applicazione web, è possibile selezionarne e installarne una alternativa e sovrascrivere le impostazioni predefinite globali di PHP, come spiegato nella sezione Impostazioni.
Disabilitazione di un virtual host¶
L'azione Disabilita nasconde il virtual host, rendendolo inaccessibile ai client web. Questa operazione è reversibile, selezionando l'azione Abilita.
Cancellazione di un virtual host¶
L'azione :guilabel: Cancella rimuove la configurazione del virtual host e ne cancella la directory web principale. Questa operazione non è reversibile.
Reverse proxy¶
In alternativa a un virtual host, che ospita file statici o un'applicazione web PHP in una directory radice web locale, è possibile inoltrare richieste web a un altro server HTTP e fornire risposte per conto di esso. Questo comportamento può essere configurato dalla pagina Reverse proxy.
Ogni elemento del reverse proxy è in realtà una regola che può corrispondere a una richiesta web in entrata. A seconda del valore del campo Nome, la corrispondenza può verificarsi per:
Se la regola corrisponde, la richiesta viene inoltrata a un altro server web, definito dal campo URL di destinazione.
Proxy pass per nomi sito web¶
Scenario per un proxy pass sul nome:
NethServer Enterprise è il firewall della LAN, con nome pubblico
http://fw.myfirstdomain.org
Si possiede il dominio
http://mydomain.com
che punta all'IP pubblico di NethServer EnterpriseSi desidera che le richieste per
http://mydomain.com
vengano inoltrate ad un server interno (IP privato: 192.168.2.100)
In questo scenario, creare una nuova voce cliccando su Crea un reverse proxy. Compilare il campo Nome con mydomain.com
e il campo URL destinazione destinazione con http://192.168.2.100
.
Proxy pass su resource path¶
Scenario per un proxy pass basato su url
NethServer Enterprise è il firewall della LAN
Si possiede un dominio
http://mydomain.com
Si desidera che le richieste per
http://mydomain.com/mysite
vengano inoltrate ad un server interno (IP privato: 192.168.2.100)
In questo scenario, creare una nuova voce cliccando su Crea un reverse proxy. Compilare il campo Nome con /mysite
e il campo URL destinazione destinazione con http://192.168.2.100
.
Opzioni aggiuntive¶
Se fossero consentite solo connessioni cifrate, abilitare l’opzione Richiedi connessione SSL cifrata.
Si può restringere l’accesso solo ai client appartenenti ad alcune reti, specificando un elenco separato da virgola di reti in notazione CIDR nel campo Accedi da reti CIDR.
Opzioni disponibili solo per proxy pass basti su nome:
Abilita o disabilita l'inoltro dell'header
Host
Abilita o disabilita l'inoltro dei WebSocket
Accetta certificato SSL di destinazione non valido: utilizzare questa opzione solo se la destinazione dispone di un certificato autofirmato
Impostazioni avanzate reverse proxy¶
Quando la regola del reverse proxy corrisponde a un nome di sito web è possibile assegnargli un certificato dedicato, scegliendolo dall'elenco Certificato SSL/TLS.
Non è possibile selezionare il certificato se la regola corrisponde a un resource path. In questo caso è possibile utilizzare solo il certificato predefinito.
Indipendentemente dal tipo di regola, sono disponibili anche le seguenti impostazioni:
Accesso dalle reti CIDR: limita l'accesso ad un dato elenco di reti CIDR. Solo i client web che si connettono da tali reti sono autorizzati ad aprire il sito web.
Richiedi connessione crittografata SSL: se abilitato, qualsiasi richiesta `http:// ` viene reindirizzata a `https:// `.
Accetta certificato SSL non valido dalla destinazione: se l'URL di destinazione inizia con https:// e viene restituito un certificato non valido, abilitando questa opzione si ignora l'errore di convalida del certificato.
inoltra l'intestazione "Host" HTTP alla destinazione: se abilitato, un'intestazione HTTP Host contenente il nome host della richiesta originale viene inoltrata all'URL di destinazione. Ciò potrebbe essere richiesto dall'applicazione del server di destinazione per funzionare correttamente.
Server FTP¶
Avvertimento
Il protocollo FTP non è sicuro. Le password e i dati dei file vengono inviati in chiaro sulla rete.
Il File Transfer Protocol è un protocollo di rete standard utilizzato per il trasferimento di file tra un client e un server 2. La pagina FTP abilita il servizio FTP e permette di configurare account utente aggiuntivi limitati al solo servizio FTP.
Gli utenti del servizio FTP possono essere limitati ad accedere alla propria directory home abilitando Chroot utente nella home directory. Quando questa opzione è abilitata, l'utente non può vedere le altre directory di sistema. Questa configurazione è anche nota come jailing.
Quando viene creato un virtual host, gli viene assegnato un nome utente FTP casuale. È possibile quindi caricare il contenuto del virtual host attraverso FTP. Fare riferimento a Configurare un'applicazione web per maggiori informazioni.
Utenti di sistema¶
Avvertimento
Questa configurazione è altamente sconsigliata. Si noti inoltre che, se abilitata, l'integrazione con il server Web verrà interrotta.
Dopo aver abilitato gli utenti di sistema, gli utenti virtuali saranno disabilitati. Tutta la configurazione deve essere eseguita da linea di comando.
Abilitare gli utenti di sistema:
config setprop vsftpd UserType system
signal-event nethserver-vsftpd-save
Dato l’utente goofy, per prima cosa assicurarsi che sia abilitato per l’accesso remoto da shell. Vedi Accesso ai servizi. Quindi, abilitare l’accesso:
db accounts setprop goofy FTPAccess enabled
signal-event user-modify goofy
signal-event nethserver-vsftpd-save
Per disabilitare l’accesso ad un utente precedentemente abilitato:
db accounts setprop goofy FTPAccess disabled
signal-event nethserver-vsftpd-save
Se non esplicitamente disabilitato, tutti gli utenti di sistema hanno l’opzione di chroot all’interno della propria home. Per disabilitare il chroot di un utente di sistema:
db accounts setprop goofy FTPChroot disabled
signal-event nethserver-vsftpd-save
Riferimenti
- 1
Documentazione Apache per i file
.htaccess
https://httpd.apache.org/docs/2.4/howto/htaccess.html- 2
File Transfer Protocol https://en.wikipedia.org/wiki/File_Transfer_Protocol