Condividere la porta SSL 443 tra OpenVPn ed Apache
ATTENZIONE: CON QUESTA CONFIGURAZIONE TUTTE LE CONNESSIONI HTTPS SARANNO ORIGINATE DALL'INDIRIZZO IP DELLA MACCHINA DOVE GIRA OPENVPN. NESSUNA VARIABILE X-FORWARDED SARÀ INVIATA E NESSUN ALTRO INDIRIZZO IP SARÀ LOGGATO NEI LOG DEL WEBSERVER.
È utile utilizzare la porta standard 443 https in OpenVpn, perchè spesso è aperta su proxy e firewall.
Se sullo stesso ip gira anche un web server in https, è necessario condividere la porta. Questo può essere fatto con la direttiva
port-share
che permette di utilizzare la porta 443 per openvpn, che provvede a girare il traffico che non gli compete verso un'altra destinazione.
L'esempio considera una macchina con iterfaccia WAN 192.168.1.252 ed interfaccia LAN 192.168.254.254.
Openvpn gira sulla interfaccia WAN, su ci deve essere disponile anche il server HTTPS.
Il server Https deve anche essere raggiungibile sull'interfaccia LAN sempre sulal porta 443. Se non fosse necessario, è possibile configurare apache per ascoltare in localhost su un'altra porta, e redirigere il traffico su quella.
Configurazione OpenVPN
- Fermare Apache
sudo invoke-rc.d apache2 stop
- Configurare openvpn per utilizzare la porta 443 sull'interfaccia WAN, redirigerendo il traffico sull'interfaccia LAN:
sudoedit /etc/openvpn/roadwarriors.conf
#... proto tcp-server port 443 port-share 192.168.254.254 443 local 192.168.1.252 #...
- Riavviare openvpn e provare a aconnettersi:
sudo invoke-rc.d openvpn restart
Se la vpn funziona, proseguire con Apache
Configurazione di Apache
- Configurare IP e porta di ascolto
sudoedit /etc/apache2/ports.conf
<IfModule mod_ssl.c>
#...
Listen 192.168.254.254:443
#...
<IfModule mod_gnutls.c>
Listen 192.168.254.254:443
#...
sudoedit /etc/apache2/sites-available/default-ssl
<VirtualHost _default_:443>
- Riavviare apache e verificare che ci si possa connettere sia lato lan che lato wan:
sudo invoke-rc.d apache2 restart