OpenVPN je fajn, ale má i své limity a nevýhody.
1, OpenVPN jede vždy přes server, přestože jinak by na sebe klienti třeba i viděli přímo. Tohle umí řešit můj oblíbený Tinc. Jde OpenVPN nakonfigurovat tak, aby automaticky vytvářel optimální mesh? Pokud ano, prosím o návod, Tinc bych opustil, taky má své mouchy.
2, wifi v hotelech, letištích, kavárnách, nemocnicích kromě omezení portů často pouští pouze některé protokoly. Jde vytvořit tunel pomocí http nebo i dns a teprve v tomto tunelu třeba otevřít VPN. Opět, pokud má někdo osvědčený nástroj, tak sem s ním. Fungovalo třeba yourfreedom nebo googlí g-bridge. Nebo na vlastním webserveru http://http-tunnel.sourceforge.net - ale tam bohužel umřel vývoj.
ad 1) nevím, nikdy jsem to neřešil, ale popravdě nezkoumal jsem fíčury posledních verze OpenVPN. Bral jsem to vždy tak, že pokud jsou klienti v (domácí) LAN, není moc důvodů tunelovat komunikaci přes VPN.
ad 2) tohle mám udělané tak, že jsou na serveru spuštěné dva OpenVPN démony, jeden běží na nativním UDP portu a druhý pak přes TCP na 443, konfigurace je stejná včetně certifikátů s rozdílem ve VPN subnetu, zbytek chování doladěn pravidly v Iptables resp. PF.
Klienti mají pak vygenerovány dva konfigurační soubory pro každý typ připojení.
Pokud to šlape přes UDP, je to efektivnější a s lepší latencí, když tohle neprojde kvůli omezení v jeho síti, připojí se klient alternativně přes TCP.
Jinak samozřejmě to jde nechat i jen přes TCP, pokud tuhle dualitu nastavení nechceš řešit a VPN má být primárně dostupná odkudkoliv.
Jde tam nastavit i přesměrování na reálný https server, který běží na tomtéž serveru jako OpenVPN, ale to beru spíš jako takovou nouzovku. Https server se spustí na jiném portu a když openvpn server zjistí, že komunikace na 443 není "jeho", tak ji přesměruje.
Ahoj,
zkuste se mrknout na Softether. Ten tunel se tváří jako HTTPS. Tak jestli je to ono.
https://www.softether.org/1-features/1._Ultimate_Powerful_VPN_Connectivity
Zároveň to umí i VPN over DNS a VPN over ICMP.
nahrada za http-tunnel by mohlo byt treba toto https://github.com/mhzed/wstunnel