Configurazione Reverse Proxy Apache per KVM Cockpit
In questo articolo, vedremo come configurare un reverse proxy su Apache per accedere a Cockpit tramite HTTPS, con il supporto per WebSocket. Questa configurazione è utile per migliorare la sicurezza e l’accessibilità quando si utilizza Cockpit su una rete interna.
Prerequisiti
- Un server con Apache installato e configurato per supportare HTTPS.
- Cockpit installato su un server con un indirizzo IP interno (es.
192.168.1.100
). - Certificati SSL validi per Apache.
Configurazione di Apache come Reverse Proxy
Modifica il file di configurazione di Apache o crea un nuovo virtual host per configurare il reverse proxy per Cockpit. La configurazione è la seguente:
;
ServerName esempio.dominio.com
ProxyPreserveHost On
# Impostazioni SSL tra il client e Apache
SSLEngine on
SSLProxyEngine On
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLCertificateFile /path/to/certificates/cert.crt
SSLCertificateKeyFile /path/to/certificates/key.key
SSLCertificateChainFile /path/to/certificates/chain.crt
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
SSLCipherSuite HIGH:!aNULL:!MD5
Header always unset X-Frame-Options
# Configura il Proxy verso Cockpit usando HTTP e WebSocket
ProxyPass / https://192.168.1.100:9090/ upgrade=websocket
ProxyPassReverse / https://192.168.1.100:9090/
ProxyPass /ws/ wss://192.168.1.100:9090/ws/
ProxyPassReverse /ws/ wss://192.168.1.100:9090/ws/
# Inoltra gli header per HTTPS
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Host "esempio.dominio.com"
RequestHeader set X-Forwarded-SSL "on"
# Compressione delle risposte
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
SetOutputFilter INFLATE;DEFLATE
Order deny,allow
Allow from all
Spiegazione della Configurazione
ProxyPreserveHost On
: mantiene il nome host originale.SSLEngine on
eSSLProxyEngine On
: abilitano il supporto SSL per le connessioni tra Apache e il client e tra Apache e Cockpit.SSLProtocol
eSSLCipherSuite
: limitano i protocolli e le suite di cifratura per migliorare la sicurezza.ProxyPass
eProxyPassReverse
per la gestione delle connessioni WebSocket e HTTPS tra Apache e Cockpit.- Il supporto per
X-Forwarded
headers per informare Cockpit che la connessione avviene tramite HTTPS.
Riavvio di Apache
Una volta completata la configurazione, riavvia Apache per applicare le modifiche:
sudo systemctl restart apache2
Conclusione
Questa configurazione permette di accedere a Cockpit in modo sicuro tramite un reverse proxy Apache. Assicurati di verificare la configurazione e controllare i log per risolvere eventuali problemi di handshake TLS o di connessione WebSocket.