OpenVPN: klient Android app, server W10 GUI, + samba

Problematika připojení - hardware i software.

Moderátor: Don

Odpovědět
Jey
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 30. črc 2011
Bydliště: Praha

OpenVPN: klient Android app, server W10 GUI, + samba

Příspěvek od Jey »

Je tu hodně témat o serverech, tak přidám další. Kromě ReadyNAS (NAS), používám i server na W10. Protože mám pomalou VPN zvenku na router (malý cpu výkon), tak se snažím proroutovat 1194, 1195 (TCP + UDP) VPN do LAN, na ten server PC v LAN s W10 + OpenVPN GUI. Na routeru jsem původní OpenVPN raději vypnul (zamezení konfliktu IP).

Pokud vezmu default konfigurace OpenVPN, různá doporučení, tak se mi povede rozjet server tun/tap (android/w10 server, i když mám podezření že oboje je tun). Připojím se z mobilu zvenku. Tím to končí. Nedostanu se na lokální ip adresy domácí sítě, kde je NAS server a samba. Ani skrz VPN do internetu (běží jen připojení přes mobil, podle IP adresy).

datové připojení mobil: 10.0.0.0 255.255.255.0
domácí síť: 192.168.1.0 255.255.255.0
tunel OpenVPN: 10.8.0.0 255.255.255.0 a pak se přidělí serveru automaticky 10.8.0.1 (PC v domácí síti aka server) a klientovi (android mobilní telefon) 10.8.0.2.
server má zároveň 192.168.1.2 na LAN síťovce (internet, lan, vše) a cílový NAS má 192.168.1.5

1) neměl bych přečíslovat tu VPN na jiný rozsah než 10.x.x.x, protože ten používá už datové připojení O2?
2) kromě toho, že se připojí android app OpenVPN na server (exe w64) OpenVPN ve windows nic dalšího nemám

Potřebuju abych z mobilu mohl přistoupit na sambu (klidně přes IP adresu, netbios netřeba). I co se týče internetu, tak provoz v mobilu dál probíhá přes datové připojení a ne VPN (může zůstat). Ale jde mi tam jen o sambu a domácí síť.

Nenašel jsem 1 srozumitelný, funkční návod, co jak nastavil, jestli povolit "topology subnet" (openvpn server config), nebo přidávat "routes" (obojí se nesnese). Firewall všude vypnutý.
Zajímavé vypadá i volba "client-to-client" nebo "redirect-gateway def1" a "dhcp-option DNS 208.67.222.222" a "router-gateway" samozřejmě tohle všechno doporučují použít na fórech, ale člověk něco/všechno zplácá dohromady a nastavení je nefunkční.

Prakticky jen potřebuji, aby si ten mobil vzal přes VPN ip adresu z 192.x.x.x. rozsahu, nebo na ni mohl přistupovat, protože v LAN běží NAS 192.168.1.5 a další služby.

CLIENT.OVPN

Kód: Vybrat vše

client
dev tun
proto udp
float
nobind
cipher AES-128-CBC
comp-lzo adaptive
ns-cert-type server
verb 3
resolv-retry infinite
remote-cert-tls server
persist-key
persist-tun
remote verejna_ip_adresa 1195 (prehozeno na 1195, protoze na 1194 bezi vpn server routeru, momentalne je vypnuty) + nasleduji 3 certifikaty...
SERVER.OVPN

Kód: Vybrat vše

proto udp
port 1195
# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
dev tun
;dev-node TAP-Windows Adapter V9
;route-gateway 10.8.0.1
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\issued\\server.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\private\\server.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\dh.pem"
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
server 10.8.0.0 255.255.255.0
#client-config-dir ccd
comp-lzo adaptive
ifconfig-pool-persist ipp.txt
keepalive 10 120

;data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC
;topology subnet
;route 192.168.1.0 255.255.255.0
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
;server-bridge
;client-config-dir ccd
;learn-address ./script
;redirect-gateway def1 bypass-dhcp
;dhcp-option DNS 208.67.222.222
;dhcp-option DNS 208.67.220.220
;client-to-client
;duplicate-cn
;tls-auth ta.key 0 # This file is secret
;max-clients 100
;user openvpn
;group openvpn
;log         openvpn.log
;log-append  openvpn.log
;mute 20
Když se to povede zprovoznit, tak tu bude stručný a jasný návod, a dva konfigy, pro server a client (i pro ostatní). Popřípadě klidně lze použít pro napsání článku na magazín (tip).
Jey
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 30. črc 2011
Bydliště: Praha

Re: OpenVPN: klient Android app, server W10 GUI, + samba

Příspěvek od Jey »

Tak nakonec to bylo snadné. Klíčem k úspěchu bylo pochopení příkazu "push", který posílá nastavení klientům serveru. Pak je na straně klienta minimum možných voleb a vše ostatní tam.

Program OpenVPN je velmi zajímavý a zároveň umožňuje celou škálu nastavení.

Přesunul jsem VPN do rozsahu 172.16.0.0/12. A přidal "topology subnet" a "push "redirect-gateway def1"". Vše korektně funguje. Samba, internet, zkontrolovány IP adresy.

RYCHLOST:
Teď jen otázka.. na routeru (asi pomalé cpu, vytížení cpu 50%) jede OpenVPN 2-4MB/s a víc ani ťuk. Proto jsem použil Win10 PC v síti jako host programu. Toto řešení jede 2-4MB/s. (vytížení cpu 1%) Stolní PC jako host aplikace, router jen routuje příslušný port. Připojení LAN 1gbit, internet 500mbit (optika), mobil 200mbit (5g), opravdu nevidím bottleneck. Někdo tu psal, že mu to běží vcelku bez omezení, a poměrně rychle. Nedá se s tím něco dělat, CPU momentálně 5700X (8 jader 16 vláken)...? Pomohlo by mít místo routování (vždy bude pomalejší, ale cpu !!!) použít jen bridge? Nebo změnit šifrování na slabší? Psalo se (nejen) tu o rychlostech v řádu desítek až stovky MB/s. Děkuji

EDIT: Otestováno i z jiné bts (5g), vše ok, internet, samba, ale VLC přes to nefunguje, nespustí se přehrávání.

Kód: Vybrat vše

proto udp
port 1195
dev tun
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\issued\\server.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\private\\server.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\dh.pem"
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
server 172.16.0.0 255.255.0.0
comp-lzo adaptive
;ifconfig-pool-persist ipp.txt
keepalive 10 120

topology subnet
push "redirect-gateway def1"
+ zároveň bylo potřeba ve W10 zapnout routování + nasdílet internetové připojení (adaptér = rozhraní) "Ethernet" i pro adaptér "TAP-Windows Adapter V9".

Kód: Vybrat vše

reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f
Jey
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 30. črc 2011
Bydliště: Praha

Re: OpenVPN: klient Android app, server W10 GUI, + samba

Příspěvek od Jey »

Tak tam píšou, že dosahují 450/750mbit i na starším Xeonu. S příslušnou optimalizací. Tohle je nový Ryzen (vytížení 1%) a nový Mediatek 9300+ (poslední generace). Můžu vyzkoušet rozjet VPN tunel přímo po 1gbit LANU, podle mě bude rychlost opět stejná (jinak je bottleneck 200-400mbit 5g datové připojení). Používají TUN rozhraní, UDP připojení, viz tento článek:

https://linuxblog.io/improving-openvpn- ... hroughput/
(příspěvek v komentářích)
Optimalizováno podle něj. Bohužel těch 30mbit je i u mně maximum, občas chvíli běží +- 40mbit. Parametr "txqueuelen" nefunguje ve Win.

Večer budu testovat optimalizaci podle následujícího článku, nastavují a přeměřují parametr "tun-mtu" (jumbo frames), tak potom uvidíme.
https://community.openvpn.net/Archived/ ... 20Networks

Šifrování (cipher) používám "AES-128-CBC", tedy doporučené nejméně procesorově náročné; a "compress" nebo "comp-lzo adaptive", kódování je vypnuté nebo adaptivní.

EDIT: Otestováno, zkusil jsem "tun-mtu 6000" a větší hodnotu + "push "tun-mtu-6000"" i pro clienta, ale bez efektu. Už fakt nevím. Jinde doporučují wireshark. Přestože se jinak popisuje, že OpenVPN jede i rychleji. Vytížení jsem ověřoval, u routeru je okolo 50% obě dvě jádra, tj. jedno jádro plně vytížené, druhé zbývá pro routerové operace. U pc je vytížení 1% (Ryzen 5700X) a u androidu jsem neměřil, ale to cpu (Mediatek 9300+) má podle srovnání stejný výkon jako ten Ryzen. :-)

Podivný je bottleneck okolo 30mbit a maximálně okolo 40mbit ať už se připojuji odkudkoliv kamkoliv a přes cokoliv. Rychlosti připojení mají velké rezervy. Možná nějaká affinita?
Jey
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 30. črc 2011
Bydliště: Praha

Re: OpenVPN: klient Android app, server W10 GUI, + samba

Příspěvek od Jey »

Další série testů... OpenVPN po LANU: s vyladěným nastavením viz výše:

OpenVPN na router: maximum 30-40mbit tj 2-4MB/s beze změny
OpenVPN na win PC: maximum => 100mbit tj. okolo 8-10MB/s, ale rychlost není moc stabilní (klesá)

Pak už mi to nedalo.. tun používají všichni.. tzn. nebridgují, což se chystám taky vyzkoušet.. jestli to vůbec reálně půjde (aby nebyly v konfliktu rozsahy ip adres určené pro lokální sítě).

Rovnou jsem nainstaloval na Win PC aplikaci Wireguard, dle doporučeného nastavení, na Android klient. Wireguard běží pěkně okolo 180-200mbit, reálně okolo 18-20MB/s, ale opět rychlost trochu kolísavá směrem dolů.

Co je ovšem problém je VLC, buď nevím jak to vyladit, nebo je problém v programu. Spustím VIDEO na LAN (typicky mp4, mkv), přehrává se. Jakmile se škubne, už se nenačte. Jak se dá pauza, už se nerozjede. A seek nefunguje vůbec, nedá se posouvat v čase videa. Což vypadá spíše na problém programu.

Samozřejmě jsem zkoušel použít i duální wifi (2,4+5ghz), ale oproti samotné 5ghz minimální rozdíl, tak vráceno nazpět. Samozřejmě úsporné funkce vše vypnuto
Odpovědět

Zpět na „Sítě, modemy a Internet“