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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<VirtualHost *:443>; 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 <Location> SetOutputFilter INFLATE;DEFLATE Order deny,allow Allow from all </Location> </VirtualHost> |
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:
1 |
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.