Orientace jak na VPN

Orientace jak na VPN
« kdy: 10. 04. 2021, 21:29:24 »
Ahoj.
Stávající stav: Mám někde lokální ethernetovou síť s několika zařízeními (dále vzdálenou). V té síti je nějaké PLC, které něco řídí a nějaké PC, které komunikuje s tím PLC, čte a zobrazuje data z PLC a zapisuje do toho PLC nějaké změněné parametry.
Zařízení ve vzdálené síti mají fixně nastavené IP adresy.

Cílový stav je, že to PC se přesune někde daleko (do kancelářské budovy), ale zůstane zachována komunikace s tím PLC.

PC je s windows, v kancelářské budově bude připojeno do internetu. Vzdálená síť bude taktéž připojena do internetu (nejspíš nějakým GSM-4G modemem). Přepokládám, že toto je řešitelné nejlépe skrze VPN. Celé to nebude zapadat do žádné infrastruktury zákazníka (zákazník žádnou VPN nemá).
Zřejmě žádný účastník nebude mít veřejnou IP adresu (a na straně vzdálené sítě zřejmě nebude s mobilním operátorem možná domluva o přesměrování portů).
Na to PLC není možné nainstalovat žádný klientský ani serverový VPN software.

Vůbec nevím, jak to mám uchopit. Co musí být ve vzdálené síti za zařízení, aby to do VPN sítě vystavilo celou tu lokální síť?
1) Nějaký počítač se dvěma eth rozhraními (WAN a LAN), na kterém poběží VPN server?
Na ovládacím PC v kanceláři by byl zřejmě nainstalován VPN klient

2) Nebo by VPN server bez veřejné IP adresy nefungoval, ale dalo by se to obrátit, že VPN server poběží na kancelářském PC (kde bude možná domluva s ISP o přesměrování portů na to PC) a ve vzdálené síti bude nějaký klient, který nepřipojí do VPN pouze sebe, ale celou tu místní síť? Jde to vůbec takto?

Na uživatele PC je možno klást požadavky, aby se po restartu sám někde připojil (apod.), ale v té vzdálené síti musí vše najet automaticky.
Požadavky na bezpečnost jsou velmi malé a pokud třeba někdo považuje OpenVPN za děravé, tak tady to vůbec nevadí.
Nice to have: Je to bezúdržbové, tzn. není potřeba aby se to jednou nastavilo a pak se o to nemusel starat nějaký admin.



Re:Orientace jak na VPN
« Odpověď #1 kdy: 10. 04. 2021, 22:20:37 »
 Ahoj,
Jak daleko jsou ty baráky od sebe? (Wifi spoj)
Jestli bude mít každá ze stran připojení do internetu, budou koneckonců existovat veřejné adresy, fixní se dá připlatit.
Proč by měl být port forwarding problém? To se nastavuje na routeru a ten provider mobilního internetu poskytne včetně přístupu do administrace. Měl jsem LTE router od T-mobile nebo Vodafone a byla to paráda.
Pokud bude potřeba VPN připojení, tak v té PLC síti musí být něco, co to umí. Třeba lze router od ISP přepnout do režimu modem a za to dát Mikrotik router s VPN serverem.
Další možnost je vykašlat se na VPN, řídící PC nechat v síti a zaplatit si teamviewer nebo třeba RealVNC a chodit na ně vzdálenou plochou ze svého PC odkudkoliv. To chodí přes zprostředkovaně přes cloud, takže znalost IP není potřeba. Určitě ale nedoporučuji Windows RDP bez VPN!

P.S. Nevím kolik dat produkuje PLC, ale tohle bych v dávné době řešil elegantně párem modemů na telefonní lince :-))
« Poslední změna: 10. 04. 2021, 22:27:07 od FKoudelka »

_Jenda

  • *****
  • 830
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Orientace jak na VPN
« Odpověď #2 kdy: 10. 04. 2021, 22:34:00 »
Citace
Co musí být ve vzdálené síti za zařízení, aby to do VPN sítě vystavilo celou tu lokální síť?
Nerozumím. Nejdřív jsi řešil komunikaci s PLC, teď chceš vystavovat celou síť.

Je na PLC možno změnit default route, případně nastavit specifickou routu? Je OK když se na PLC bude přistupovat přes NAT?

Já bych to dělal takhle:
  • Musíš si pořídit stroj na kterém spustíš OpenVPN server. Ten stroj musí mít alespoň jeden port (ideálně UDP) dostupný z internetu - veřejná IP, port forward… Může to být VPS za pár desetikorun (e.g. Forpsi) nebo jestli máš kdekoli účet nebo si můžeš udělat port forward.
  • Na OpenVPN serveru nastavíš adresní rozsah který nebude s ničím kolidovat, třeba 10.94.157.0/24 a povolíš client-to-client.
  • Do cílové sítě zapojíš počítač (doporučil bych třeba nějaký routřík s OpenWRT - já bych použil třeba https://www.i4wifi.cz/cs/210637-routerboard-mikrotik-hex-lite nebo RB750Gr3 pokud je potřeba vyšší propustnost (ten dá tak 20 Mb/s) a na něj dal OpenWRT) a teď jsou dvě možnosti:
  • 1) na PLC nastavíš routu aby 10.94.157.0/24 šlo přes ten tvůj routřík (vyžaduje mít možnost na PLC nastavovat routu)
  • 2) nebo na routříku zapneš pro jeho ethernetové rozhraní maškarádu (způsobí že na PLC budeš přistupovat přes NAT, což může dělat problémy pokud komunikace vyžaduje aby se toto nedělo)
  • Na ovládací počítač nainstaluješ OpenVPN a pomocí iroute (nikdy jsem nedělal) nebo nastavením routy na počítači a serveru zařídíš aby pakety chodily.
A nebo:
Citace
ale dalo by se to obrátit, že VPN server poběží na kancelářském PC (kde bude možná domluva s ISP o přesměrování portů na to PC) a ve vzdálené síti bude nějaký klient, který nepřipojí do VPN pouze sebe, ale celou tu místní síť? Jde to vůbec takto?
Tohle je mnohem jednodušší, protože si ušetříš to routování na klienta přes server! Takže pokud je toto možné, použij toto.

// pokud je potřeba vyšší propustnost než 20 Mb/s, je nutné buď pořídit výkonnější HW než ten RB750Gr3 nebo použít Wireguard, který je násobně výkonnější, nastavení má analogické, ale asi to bude trochu větší opruz
« Poslední změna: 10. 04. 2021, 22:37:52 od _Jenda »

Re:Orientace jak na VPN
« Odpověď #3 kdy: 10. 04. 2021, 22:39:17 »
Pokud ani jedna strana nema verejnou IP tak se musi jako klienti pripojit na prostrednika.

Re:Orientace jak na VPN
« Odpověď #4 kdy: 11. 04. 2021, 11:44:29 »
Citace
  • Do cílové sítě zapojíš počítač (doporučil bych třeba nějaký routřík s OpenWRT - já bych použil třeba https://www.i4wifi.cz/cs/210637-routerboard-mikrotik-hex-lite nebo RB750Gr3 pokud je potřeba vyšší propustnost (ten dá tak 20 Mb/s) a na něj dal OpenWRT) a teď jsou dvě možnosti:
Postupoval bych +/- podobně, i volba zařízení se mi zdá pro účel dobrá. Jen bych za sebe zůstal u originálního RouterOS a použil OpenVPN moduly.
Moje otázka tedy zní, proč bych v takto celkem jednoduchém případě měl chtít RouterOS nahrazovat mermomocí OpenWRTem...
« Poslední změna: 11. 04. 2021, 11:46:06 od Jaroslav Juha »


_Jenda

  • *****
  • 830
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Orientace jak na VPN
« Odpověď #5 kdy: 11. 04. 2021, 13:21:56 »
Moje otázka tedy zní, proč bych v takto celkem jednoduchém případě měl chtít RouterOS nahrazovat mermomocí OpenWRTem...
Protože neumí OpenVPN přes UDP. Protože tam není tcpdump (jenom nějaká možnost forwardovat si pakety jinam, což je opruz přes VPN nastavit, a nemá to skoro žádné dostupné filtry) a "nmap -sP" (možná jde nahradit ip-scan, kdo ví). Protože zešílí až bude chtít cokoli naskriptovat - třeba kontrolu toho, že je PLC OK (k čemuž může být potřeba wget, ideálně s podporou https, nc, jq, expect, cron… nebo prostě Python a nazdar) a integrovat to do svého monitoringu. Protože se bude muset učit s yet-another-os i když Linux už nejspíš zná.

ja.

  • ***
  • 112
    • Zobrazit profil
    • E-mail
Re:Orientace jak na VPN
« Odpověď #6 kdy: 11. 04. 2021, 16:57:02 »
1. Dohovoriť sa s mobilným operátorom na verejnej IP adrese sa dá. Dynamická verejná stojí zvyčajne jeden telefonát a naklepanie iného APN do modemu, za statickú verejnú už zvyčajne treba platiť každý mesiac.

V závislosti od toho, aký bude traffic možno stojí za to dohodnúť sa na FWA cez LTE. Mobilní operátori toho vedia ponúknuť prekvapivo dosť.

2. Pokiaľ nie je OpenVPN striktná podmienka, tak by som ho moc neriešil. Dôvod ďalší bod.

3. V závislosti od úrovne signálu by som použil buď Mikrotik Chateau LTE (pre indoor) alebo SXT LTE/LHG LTE (pre outdoor), dal do neho SIM kartu od operátora a nastavil mikrotikové DDNS (ak je IP adresa dynamická) a IPSec VPN rovno na ňom. Pre klienta to má výhodu, že nemusí nič inštalovať ani spúšťať s admin právami, klient IPSec je priamo vo Windows, resp. v iných systémoch. Celé by to bolo off the shelf riešenie, netreba žiadne bastlenie.

_Jenda

  • *****
  • 830
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Orientace jak na VPN
« Odpověď #7 kdy: 11. 04. 2021, 20:38:10 »
Mně se ještě rozleželo to s tím tcpdumpem a nmapem. Já jakékoli síťové problémy (spočívající např. v tom, že pakety nechodí nějakým směrem) ladím takhle:
Kód: [Vybrat]
tcpdump -ni ethX icmp        # pokud nechodí ani ping
tcpdump -ni ethX port 1234   # pokud nechodí UDP/TCP spojení
tím hned na konzoli vidím ty důležité informace (především odkud → kam) a současně mě nezahlcuje jiný traffic co tam třeba taky teče. Závažnější problémy ladím takhle:
Kód: [Vybrat]
ssh stroj "/usr/sbin/tcpdump -i ethX -s0 -U -w - 'port 443'" | wireshark -k -i -
tím si přesměruju pakety odpovídající danému filtru do lokálního Wiresharku. Dále pravidelně používám
Kód: [Vybrat]
nmap -sP 192.168.1.0/24
když do sítě někdo připojí nové zařízení které nemá DHCP takže ho nevidím v leases, nebo k leases není přístup (to se stane tazateli, protože jeho zařízení je v cizí síti s cizím DHCP serverem) atd.

Blbě koukám, nebo je tyhle zásadní věci „první volby“ udělat na RouterOS mnohem větší pain?

Re:Orientace jak na VPN
« Odpověď #8 kdy: 11. 04. 2021, 21:21:26 »
Citace
Co musí být ve vzdálené síti za zařízení, aby to do VPN sítě vystavilo celou tu lokální síť?
Nerozumím. Nejdřív jsi řešil komunikaci s PLC, teď chceš vystavovat celou síť.
Nejsem síťař a nevím, co je možné a co je schůdné. Vycházím z toho, že když se na PLC nedá nainstalovat VPN klient (tedy PLC se nebude moci připojit k VPN serveru vlastními prostředky), tak se bude muset přes VPN připojit celá síť ve které to PLC je. Je to chybná úvaha?

Je na PLC možno změnit default route, případně nastavit specifickou routu? Je OK když se na PLC bude přistupovat přes NAT?
Nevím, co je default route. Na PLC se dá nastavit IP, maska a gateway. A ta gateway musí svou IP odpovídat té síti, kterou definuje ta IP a maska.

Já bych to dělal takhle:
  • Musíš si pořídit stroj na kterém spustíš OpenVPN server. Ten stroj musí mít alespoň jeden port (ideálně UDP) dostupný z internetu - veřejná IP, port forward… Může to být VPS za pár desetikorun (e.g. Forpsi) nebo jestli máš kdekoli účet nebo si můžeš udělat port forward.
  • Na OpenVPN serveru nastavíš adresní rozsah který nebude s ničím kolidovat, třeba 10.94.157.0/24 a povolíš client-to-client.
  • Do cílové sítě zapojíš počítač (doporučil bych třeba nějaký routřík s OpenWRT - já bych použil třeba https://www.i4wifi.cz/cs/210637-routerboard-mikrotik-hex-lite nebo RB750Gr3 pokud je potřeba vyšší propustnost (ten dá tak 20 Mb/s) a na něj dal OpenWRT) a teď jsou dvě možnosti:
  • 1) na PLC nastavíš routu aby 10.94.157.0/24 šlo přes ten tvůj routřík (vyžaduje mít možnost na PLC nastavovat routu)
  • 2) nebo na routříku zapneš pro jeho ethernetové rozhraní maškarádu (způsobí že na PLC budeš přistupovat přes NAT, což může dělat problémy pokud komunikace vyžaduje aby se toto nedělo)
  • Na ovládací počítač nainstaluješ OpenVPN a pomocí iroute (nikdy jsem nedělal) nebo nastavením routy na počítači a serveru zařídíš aby pakety chodily.
Pokud se na PLC nedá nastavit ta "routa", tak celé to řešení padá, nebo se to dá nějak překonat?

A nebo:
Citace
ale dalo by se to obrátit, že VPN server poběží na kancelářském PC (kde bude možná domluva s ISP o přesměrování portů na to PC) a ve vzdálené síti bude nějaký klient, který nepřipojí do VPN pouze sebe, ale celou tu místní síť? Jde to vůbec takto?
Tohle je mnohem jednodušší, protože si ušetříš to routování na klienta přes server! Takže pokud je toto možné, použij toto.
Ano, to zní skvěle. Ale to je moje otázka - jestli to tak jde - a co k tomu potřebuji. Jaké zařízení funguje jako VPN klient a připojí celou síť ve které se nachází.

// pokud je potřeba vyšší propustnost než 20 Mb/s, je nutné buď pořídit výkonnější HW než ten RB750Gr3 nebo použít Wireguard, který je násobně výkonnější, nastavení má analogické, ale asi to bude trochu větší opruz
To jsem opomněl zmínit, požadavky na datovou propustnost jsou minimální.

_Jenda

  • *****
  • 830
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Orientace jak na VPN
« Odpověď #9 kdy: 11. 04. 2021, 21:44:02 »
Je na PLC možno změnit default route, případně nastavit specifickou routu? Je OK když se na PLC bude přistupovat přes NAT?
Pokud se na PLC nedá nastavit ta "routa", tak celé to řešení padá, nebo se to dá nějak překonat?
Stačí, že se tam dá nastavit gateway. Takže jako gateway nastavíš adresu svého VPN klienta (toho počítače, co do té sítě přípojíš).

Ano, to zní skvěle. Ale to je moje otázka - jestli to tak jde - a co k tomu potřebuji. Jaké zařízení funguje jako VPN klient a připojí celou síť ve které se nachází.
Potřebuješ k tomu libovolný počítač kde běží Linux a půjde tam nainstalovat OpenVPN. Z hlediska bezúdržbovosti, velikosti, spotřeby, ceny… je nejlepší nějaký ten router (Mikrotik, TP-Link… cena typicky kolem 1000 Kč. Kdybys kupoval TP-Link nebo něco jiného, dej si pozor, ať to má alespoň 8, lépe však 16 MB flashky. Odkazované „bílé mikrotiky“ toto splňují.) s dobrou podporou OpenWRT. Další možnosti jsou Raspberry Pi, APU2 nebo normální PC.

Re:Orientace jak na VPN
« Odpověď #10 kdy: 11. 04. 2021, 22:15:40 »
Gateway je zde  to samý co default route.
Asi takhle, velmi zjednodušeně: cílová adresa se vymaskuje, buď je v síti zdroje( PC) nebo ne,
když ne, hledá se specifická route : na cílovou adresu routuj přes nějakou gateway. Když specifická route neexistuje, tudíž nevíš kam stroji, neřeš a hoď to na defaultní gateway, ona to pošle dál. Tak jako tak, kterákoliv gateway má adresu tvojí z tvojí LAN. Když mi bylo obtížné si to představit, koukal jsem na to jako na poslední IP  v mé síti, kterou vidím.
Specifickou route nechme stranou, tu asi nemáš definovanou, když cíl není v tvé LAN, dané maskou, jde to na default gateway/route. Tam jdou všechny veřejné adresy přes route definované na další gateway a tak dále.
P.S. Síťaři nechytejte mne za slovo, je to vysvětlení laika laikovi :-)

Re:Orientace jak na VPN
« Odpověď #11 kdy: 11. 04. 2021, 22:30:45 »
Pardon, prošlo mi okno  editace, tedy oprava:

Specifickou route nechme stranou, tu asi nemáš definovanou. Když  cíl není v tvé LAN, dané maskou, jde to na default gateway/route. Odtud  jdou všechny adresy přes route na ní definované na další gateway atd., atd.

Apropos, ještě jsem neviděl sebejednodušší zařízení s LAN , kde by nešla nastavit default route/gateway.
« Poslední změna: 11. 04. 2021, 22:40:13 od FKoudelka »

5nik

Re:Orientace jak na VPN
« Odpověď #12 kdy: 12. 04. 2021, 09:46:34 »
Myslím, že nejjednodušší řešení by byla zmíněná veřejná IP od mobilního poskytovatele a router s podporou VPN. Ať už Mikrotik, OpenWRT či něco jiného. Navíc, veřejná IP se dá lépe monitorovat, případně diagnostikovat.

Trochu OT, ale dovolím si reagovat.
Blbě koukám, nebo je tyhle zásadní věci „první volby“ udělat na RouterOS mnohem větší pain?
Vše zmíněné v ROS existuje.
tcpdump je v Tools -> Packet Sniffer, ukládá do paměti či .pcap souboru nebo posílá dump na jiný stroj (Streaming)
nmap v tomto smyslu lze nahradit nástrojem Tools -> IP Scan
Jsou tam i další nástroje pro diagnostiku (Torch, Connection Tracking table, volitelné logování provozu a spoustu dalších). Možnosti diagnostiky jsou jeden z důvodů, proč mikrotiky používám.

Apropos, ještě jsem neviděl sebejednodušší zařízení s LAN , kde by nešla nastavit default route/gateway.
Bohužel existují, například switche se SwOS od Mikrotiku:
Citace
SwOS uses a simple algorithm to ensure TCP/IP communication - it just replies to the same IP and MAC address packet came from. This way there is no need for Default Gateway on the device itself.

Re:Orientace jak na VPN
« Odpověď #13 kdy: 12. 04. 2021, 18:10:29 »
Díky, všem, někam se posouvám, mám další dotaz:
Nyní hledám LTE modem.
Dal bych na vás a šel do mikrotiku, ale v jejich nabídce jsem nenašel takový, který by měl externí anténu (modem bude v plechovém rozváděči a venku bude pouze ta anténa).
Našel jsem toto:
Teltonika TRB140 Gateway: https://eshop.sectron.cz/cs/teltonika-trb140-gateway-trb140003000/p-13058/
Pochopil jsem, že to umí OpenVPN v roli server i klient, takže mám otevřené dveře oběma směry. A použitý RutOS je zřejmě odvozený z OpenWrt, takže snad dostačně funkčně bohatý.

Chápu to ale správně, že když někde v internetu poběží OpenVPN server a ten modem se k němu připojí jako OpenVPN klient, tak budou mít do té VPN sítě přístup zařízení připojená po ethernetu do toho modemu (tedy to PLC)?

A ještě jeden dotaz: Je u takovýchto krabiček typu mikrotik běžné, že se jim nastaví role VPN klient nebo server a ony po každém restartu nastartují do té role (tedy že se automaticky spustí server, nebo se klient automaticky snaží připojit k předdefinovanému serveru)? Nerad bych se dočkal nemilého překvapení :-)

Jinak ty důvody, proč (ne)flashovat originální firmware za openwrt, ta diskuze, co tu probíhá, to je  bohužel daleko za mým chápáním.

ja.

  • ***
  • 112
    • Zobrazit profil
    • E-mail
Re:Orientace jak na VPN
« Odpověď #14 kdy: 12. 04. 2021, 18:50:27 »
> Dal bych na vás a šel do mikrotiku, ale v jejich nabídce jsem nenašel takový, který by měl externí anténu (modem bude v plechovém rozváděči a venku bude pouze ta anténa).

Všetky indoorové/mobilné (wap, chateau, ltap) majú u.fl pigtaily na pripojenie vonkajšej antény, v popise modelu to zvyčajne je a je ich vidno na fotkách. Vyššie spomenuté SXT a LHG sú outdoorové modely, určené na montáž vonku a už ide od nich iba ethernet kábel (cez ktorý sú aj napájané).

> A použitý RutOS je zřejmě odvozený z OpenWrt,

Nie, ROS nie je odvodený z OpenWRT. Oba sú však postavené na linuxe, ale s rozdielnou filozofiou.

> Chápu to ale správně, že když někde v internetu poběží OpenVPN server a ten modem se k němu připojí jako OpenVPN klient, tak budou mít do té VPN sítě přístup zařízení připojená po ethernetu do toho modemu (tedy to PLC)?

To je to komplikovanejšie riešenie v prípade, že by ste nemali verejnú IP adresu. Pokiaľ ju mať budete, tak najjednoduchšie riešenie je, keď router je VPN server a nič iné v internete nepotrebujete, cez VPN sa z kancelárie budete pripájať k tomu routeru. PLC nebude tušiť, že cez nejakú VPN ide, pre neho to bude iba default gateway z ktorej na neho chodia pakety.

> Je u takovýchto krabiček typu mikrotik běžné, že se jim nastaví role VPN klient nebo server a ony po každém restartu nastartují do té role (tedy že se automaticky spustí server, nebo se klient automaticky snaží připojit k předdefinovanému serveru)? Nerad bych se dočkal nemilého překvapení :-)

V ROS, ak sa zapne služba, tak zostane zapnutá aj po reštarte. On celkovo ROS má filozofiu, že je niečo zapnuté/vypnuté, ale nie, či je k tomu nejaký bežiaci proces, to je záležitosť OS, aby si to zariadil.

IPSec tunely fungujú on-demand, keď je tunel nevyužitý, tak sa zruší, tak príde prvý paket, ktorý by mal ísť cez neho, tak sa znova obnoví (preto prvý paket môže mať vyššiu latenciu na idle linke). V prípade site-to-site ho obnovuje samozrejme tá strana, z ktorej ide paket. V prípade road-warriora (t.j. používateľ na počítači zapína/vypína vpn) sa pripája klient, pri pripojení vytvorí tunel, pri odpojení zruší tunel, server len počúva, či mu prichádzajú pakety.