Via Cà Matta 2 - Peschiera Borromeo (MI)
+39 02 00704272
info@synaptica.info

Configurazione Reverse Proxy Apache per KVM Cockpit

Digital Innovation Partner

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 e SSLProxyEngine On: abilitano il supporto SSL per le connessioni tra Apache e il client e tra Apache e Cockpit.
  • SSLProtocol e SSLCipherSuite: limitano i protocolli e le suite di cifratura per migliorare la sicurezza.
  • ProxyPass e ProxyPassReverse 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.