Esporre servizi interni in sicurezza
Un reverse proxy Apache permette di esporre più servizi web (Proxmox, Gitea, Grafana) su un unico IP pubblico con HTTPS.
1. Abilitare i moduli
a2enmod proxy proxy_http proxy_wstunnel ssl headers rewrite
systemctl restart apache2
2. VirtualHost con proxy
<VirtualHost *:443>
ServerName git.esempio.it
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/git.esempio.it/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/git.esempio.it/privkey.pem
ProxyPreserveHost On
ProxyPass / http://192.168.1.75:3000/
ProxyPassReverse / http://192.168.1.75:3000/
RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>
3. WebSocket support (per Proxmox noVNC)
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) ws://192.168.1.81:8006/$1 [P,L]
4. Protezione aggiuntiva
# Rate limiting
<Location />
# Limitare accesso per IP
Require ip 192.168.1.0/24
</Location>
# Security headers
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Il reverse proxy centralizza HTTPS, semplifica la gestione dei certificati e aggiunge un livello di protezione ai servizi interni.