View Full Version : OpenVPN su porta 443
robertogl
01-03-2017, 19:25
Ciao a tutti :)
Finalmente ho messo in piedi una piccola VPN domestica. Andando spesso all'estero mi è utile, non mi serve una grande velocità quindi mi basta la rete domestica. Per ora funziona che:
- il traffico passa dalla porta 1194;
- un raspberry pi zero (alimentato direttamente dall'usb del router) fa da server VPN, con OpenVPN.
Ciò che vorrei fare ora è un passo ulteriore, ovvero far passare il traffico di OpenVPN dalla porta 443, come fosse normale HTTPS (per evitare ulteriori possibili blocchi). Mi sono informato un po', in pratica come prima cosa dovrei fare il port forwarding di tutte le richieste su quella porta al pi zero. Mi sorge quindi la prima domanda: cosa succede poi? Tutto il traffico HTTPS passa per quella porta, ma se lo inoltro ad un dispositivo specifico che fine fa? Non lo so, roba tipo loggarsi su Google (visto che il forwarding sarebbe fatto per forza dal router)...
openvpn usa di default udp su porta 1194.
Ok per cambiare porta: ha senso.
Ma quel che intendi fare tu è un po' diverso:
- dovresti usare tcp al posto di udp (che si può fare, ma in linea di principio ha poco senso)
- anche mettendo su tcp/443 rimane "traffico criptato" e nn https "pulito". Vuol dire che se devi attraversare qualche proxy guardone non è detto che ti lasci passare.
Consiglio: a fianco della configurazione attuale funzionante tira su un'altra istanza di openvpn su tcp/443 e configurati due profili per il client vpn. Se non funziona uno, va l'altro.
Per quanto riguarda il resto della domanda, dovresti portforwardare entrambe le porte udp/1194 e tcp/443 sul Pi0. Ma il Pi0 deve essere configurato in modo che fa da router, e i profili dei client devono essere fatti in modo da far passare tutto il traffico attraverso la vpn (udp o tcp che sia, è indifferente).
robertogl
02-03-2017, 17:49
openvpn usa di default udp su porta 1194.
Ok per cambiare porta: ha senso.
Ma quel che intendi fare tu è un po' diverso:
- dovresti usare tcp al posto di udp (che si può fare, ma in linea di principio ha poco senso)
- anche mettendo su tcp/443 rimane "traffico criptato" e nn https "pulito". Vuol dire che se devi attraversare qualche proxy guardone non è detto che ti lasci passare.
Consiglio: a fianco della configurazione attuale funzionante tira su un'altra istanza di openvpn su tcp/443 e configurati due profili per il client vpn. Se non funziona uno, va l'altro.
Per quanto riguarda il resto della domanda, dovresti portforwardare entrambe le porte udp/1194 e tcp/443 sul Pi0. Ma il Pi0 deve essere configurato in modo che fa da router, e i profili dei client devono essere fatti in modo da far passare tutto il traffico attraverso la vpn (udp o tcp che sia, è indifferente).
Intanto grazie per la risposta.
Io mio cambiare porta era dovuto al fatto che, leggendo online, ho visto che in alcuni paesi il traffico sulla 1194 viene filtrato automaticamente (perché appunto default di OpenVPN), cosa che si risolve mascherando il traffico come 'normale' SSL che va quindi sulla porta 443 (per farlo ci sono vari modi, pare). Dal dire al farlo però ce ne passa. Se devo mettere il pi0 a fare anche da router non so più se regge, tra l'altro.
Ne approfitto per farti un paio di domande:
1) È possibile limitare la banda per profilo? Ho visto lo '--shaper n' ma credo sia globale.
2) È possibile limitare l'accesso alla rete locale per profilo? Ovvero fare in modo che un profilo A possa fare tutto, mentre un profilo B solo accedere a internet, ma non entrare nella rete locale (quella del pi0 per capirci).
Ovviamente senza doverci perdere le giornate sarebbe meglio, ma non so se mi andrà bene :D
Intanto grazie per la risposta.
Io mio cambiare porta era dovuto al fatto che, leggendo online, ho visto che in alcuni paesi il traffico sulla 1194 viene filtrato automaticamente (perché appunto default di OpenVPN), cosa che si risolve mascherando il traffico come 'normale' SSL che va quindi sulla porta 443 (per farlo ci sono vari modi, pare). Dal dire al farlo però ce ne passa. Se devo mettere il pi0 a fare anche da router non so più se regge, tra l'altro.
Ne approfitto per farti un paio di domande:
1) È possibile limitare la banda per profilo? Ho visto lo '--shaper n' ma credo sia globale.
2) È possibile limitare l'accesso alla rete locale per profilo? Ovvero fare in modo che un profilo A possa fare tutto, mentre un profilo B solo accedere a internet, ma non entrare nella rete locale (quella del pi0 per capirci).
Ovviamente senza doverci perdere le giornate sarebbe meglio, ma non so se mi andrà bene :D
se al Pi0 fai fare anche da router gli cambia praticamente niente.
Computazionalmente è molto più pesante criptare il traffico della vpn.
Non so come openvpn faccia shaping. E' una delle cose che sta nella mia todo list (già da qualche mese), ma in linea di massima non dovrebbe fare shaping openvpn, bensì il router che è affacciato su internet. Al limite openvpn dovrebbe passare il tos dei pacchetti al router che dovrebbe gestirli con uno shaper.
Per il discorso accesso a internet e/o accesso alla lan risolvi con una manciata di righe di iptables, e un paio di profili openvpn.
robertogl
08-03-2017, 20:30
se al Pi0 fai fare anche da router gli cambia praticamente niente.
Computazionalmente è molto più pesante criptare il traffico della vpn.
Non so come openvpn faccia shaping. E' una delle cose che sta nella mia todo list (già da qualche mese), ma in linea di massima non dovrebbe fare shaping openvpn, bensì il router che è affacciato su internet. Al limite openvpn dovrebbe passare il tos dei pacchetti al router che dovrebbe gestirli con uno shaper.
Per il discorso accesso a internet e/o accesso alla lan risolvi con una manciata di righe di iptables, e un paio di profili openvpn.
Capito, grazie. Se trovo il tempo provo tutto :)
robertogl
18-03-2017, 11:56
Ok, aggiorno la situazione. Ho installato sul server Stunnel, e insieme a OpenVPN ho ottenuto quello che volevo (sulla porta 443) con tutto funzionante. Però mi è sorto un piccolo problema: se vado su un sito come questo https://ssldecoder.org/ mi trova due certificati, uno quello corretto che sto usando ora, e uno con un nome che avevo dato come hostname durante una configurazione di prova ma che ora dovrebbe essere cancellato. Com'è possibile?
due certificati, o un certificato con due nomi?
robertogl
18-03-2017, 12:51
due certificati, o un certificato con due nomi?
Il sito che ti ho linkato mi da 2 warning:
'Issuer does not match the next certificate CN. Chain order is probably wrong.'
'Validating certificate chain failed. Probably non-trusted root/self signed certificate, or the chain order is wrong.'
Poi mi elenca due certificati (credo), il primo mi dice:
'Certificate for 'Casa'
2 warnings!
Provided certificate issuer does not match issuer in certificate. Sent chain order wrong
Hostname *mio indirizzo ip* not found in certificate.'
Per il secondo invece va tutto bene, nessun warning (e lo chiama 'server').
Io non ricordo di aver dato il nome 'Casa' a niente durante l'ultima configurazione, però è stata una cosa lunga quindi magari mi sbaglio.
Edit:
Ho rifatto la configurazione di Stunnel, e ora ho 3 certificati. Cioè ogni volta che con openssl ricreo i file 'key.pem' e 'cert.pem' mi si aggiunge un nome lì, anche se quei file li sovrascrivo poi. È normale?
Edit2:
Ho capito dove sbagliavo, colpa mia. Quando creavo i file per i client aggiungevo sempre il server al file 'stunnel.pem' (colpa del comando cat) invece di cancellare prima il file.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.