Vedremo come utilizzare OpenVPN, nonostante la porta 1194 di default sia bloccata dal firewall della nostra azienda.
Il problema evidenziato in questo articolo presuppone che, sullo stesso server in cui è hostata la VPN, ci sia un webserver che deve fornire pagine su HTTPS, altrimenti basterebbe impostare direttamente la VPN per utilizzare la porta 443.
La VPN da me utilizzata è OpenVPN, il webserver nginx e la piattaforma hardware un Raspberry Pi.
Step 1: la VPN
Nello specifico, è stato utilizzato il progetto PiVPN per velocizzare le operazioni di setup.
Seguite il wizard di PiVPN e installate OpenVPN con protocollo TCP scegliendo come porta quella di default (1194) o un'altra a vostro piacimento. Io ho scelto la 1195.
Generate un certificato con il comando
pivpn -a
e modificatelo a mano cambiando la porta da 1195 a 443 (il wizard di PiVPN genera certificati in base alla configurazione della VPN che avete specificato).Step 2: il webserver
Assunto che il web server, correttamente installato e configurato, risponda sulle porte 80 e 443, sarà necessario modificare la porta HTTPS di default su cui è in ascolto.
Usando Certbot per usufruire del certificato Let’s Encrypt, è necessario editare la configurazione in questione in
/etc/nginx/sites-available
cambiando porta HTTPS 443. Nel mio caso ho aggiunto un 4, ottenendo la porta 4443.Bisogna inoltre specificare a nginx di rimanere in ascolto solo sull'interfaccia localhost e non su tutte le interfacce di rete.
Modificare quindi
listen 443 ssl;
in listen 127.0.0.1:4443 ssl;
.Prima |
Dopo |
Dopo di che riavviate il servizio con il comando
service nginx restart
.La stessa configurazione per Apache è pressoché identica.
Step 3: il protocol multiplexer
sslh è una fantastica applicazione open source che funziona da multiplexer applicativo per i protocolli. In poche parole analizza il primo pacchetto ricevuto e smista la richiesta a chi di dovere, in base alla configurazione.
Installiamola con
sudo apt intall sslh
selezionando le opzioni preferite e successivamente modifichiamo il file di configurazione /etc/default/sslh
come segue:
RUN=yes
DAEMON_OPTS="--user sslh --transparent --listen 0.0.0.0:443 --ssl 127.0.0.1:4443 --openvpn 127.0.0.1:1195 --pidfile /var/run/sslh/sslh.pid"
In pratica, con questa configurazione, stiamo dicendo a sslh di ascoltare la porta 443 su tutte le interfacce di rete e di indirizzare il traffico OpenVPN alla 1195 in localhost, mentre il traffico HTTPS/SSL alla 4443 in localhost.
Riavviate il servizio con il comando
service sslh restart
et voià.
Nessun commento:
Posta un commento