it:software:softether

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
it:software:softether [2022/11/13 13:35] Petr Nosekit:software:softether [2023/12/10 14:35] (aktuální) Petr Nosek
Řádek 1: Řádek 1:
-====== SofEtherVPN ======+====== SoftEtherVPN ======
  
 Popis instalace mám uvedený na [[https://petrnosek.cz/softether-vpn-instalace-kompilace-a-udrzovani-aktualizaci/|blogu]]. Tady uvedu kratší a aktualizovanou verzi čerpající ze zdroje: https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/BUILD_UNIX.md Popis instalace mám uvedený na [[https://petrnosek.cz/softether-vpn-instalace-kompilace-a-udrzovani-aktualizaci/|blogu]]. Tady uvedu kratší a aktualizovanou verzi čerpající ze zdroje: https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/BUILD_UNIX.md
  
-Před kompilací jsem musel zajistit, že mám nainstalované všechny potřebné knihovny - jinak při kompilaci dojde k chybě.+Před kompilací jsem musel zajistit, že mám nainstalované všechny potřebné knihovny - jinak při kompilaci dojde k chybě. 
  
 <code bash> <code bash>
Řádek 9: Řádek 9:
 </code> </code>
  
-Dále jsem pokračoval ke stažení zdrojového kódu.+Dále jsem pokračoval ke stažení a kompilací zdrojového kódu. Později jsem zjistil, že takto jsem nainstaloval nestabilní (developerskou) verzi.
 <code bash> <code bash>
 git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git
Řádek 17: Řádek 17:
 make -C build make -C build
 make -C build install make -C build install
 +</code>
 +
 +Instalace stabilní verze je přes tento postup:
 +<code bash>
 +git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git
 +cd SoftEtherVPN_Stable
 +./configure
 +make
 +make install
 </code> </code>
  
Řádek 37: Řádek 46:
  
 SoftEther VPN je nainstalovaný v adresáři /usr. Je tam klient i server. Konfigurační soubor serveru /usr/vpnserver/vpn_server.config není aktualizací nijak dotčen – byly aktualizovány binární soubory. A pro jistotu ještě zmíním, že konfigurační soubor serveru se needituje ručně, ale skrze vpn klienta /usr/vpncmd/vpncmd. SoftEther VPN je nainstalovaný v adresáři /usr. Je tam klient i server. Konfigurační soubor serveru /usr/vpnserver/vpn_server.config není aktualizací nijak dotčen – byly aktualizovány binární soubory. A pro jistotu ještě zmíním, že konfigurační soubor serveru se needituje ručně, ale skrze vpn klienta /usr/vpncmd/vpncmd.
 +
 +
 +Konfigurace server se po instalaci nachází ve složce **/usr/local/libexec/softether/vpnserver**.
 +
 +Spustitelné soubory ve složce **/usr/local/bin**.
 +
 +
 +===== Konfigurace Ubuntu pro připojení VPN přes L2TP =====
 +
 +Nejprve je potřeba nainstalovat tyto balíčky:
 +
 +<code bash>
 +sudo apt install network-manager-l2tp network-manager-l2tp-gnome
 +</code>
 +
 +V nastavení si vyhledám síť a dám přidání nového VPN připojení a volím možnost **Layer 2 Tunneling Protocol (L2TP) - Kompatibilní s L2TP VPN servery od Microsoftu a ostatních.**
 +
 +{{:it:software:pasted:20221205-135215.png}}
 +
 +==== Nastavení privátní sítě ====
 +
 +A poté se v síťovém nastavení desktopu objeví možnost konfigurace VPN. Přidám nové připojení a nejprve budu konfigurovat VPN síť, na které servisuji počítače. Počítače se k ní připojují, ovšem internet jedou ze své sítě. Jsou tedy v oddělené virtuální síti.
 +
 +{{:it:software:pasted:20221205-134252.png}}
 +
 +Takto vypadá nastavení pod tlačítkem IPsec Settings:
 +
 +{{:it:software:pasted:20221205-120809.png}}
 +
 +A takto nastavení pod PPP Settings:
 +
 +{{:it:software:pasted:20221205-120707.png}}
 +
 +Ještě jsem ručně nastavil bránu a směřování v rámci interní servisní sítě:
 +
 +{{:it:software:pasted:20221205-120957.png}}
 +
 +
 +==== Nastavení bridge ====
 +
 +Toto nastavení využívám ve chvíli, kdy se chci připojit do domácí sítě. Počítač se pak chová tak, jako by fyzicky byl v domácí síti. 
 +
 +
 +{{:it:software:pasted:20221205-133333.png}}
 +
 +Tlačítko IPsec Settings
 +
 +{{:it:software:pasted:20221205-133357.png}}
 +
 +Tlačítko PPP Settings
 +
 +{{:it:software:pasted:20221205-133849.png}}
 +
 +Nastavení IPv4:
 +
 +{{:it:software:pasted:20221205-133442.png}}
 +
 +
 +===== Konfigurace Androidu pro připojení VPN přes L2TP =====
 +
 +U Androidu není potřeba root telefonu, aby bylo možné se připojit do VPN. Zejména tedy pokud jde o bridge.
 +
 +Vše jsem řešil v nastavení sítě: **Síť a internet -> Síť VPN**.
 +
 +==== Nastavení privátní sítě ====
 +
 +{{:it:software:pasted:20221205-164935.png?400}}
 +
 +{{:it:software:pasted:20221205-164952.png?400}}
 +
 +
 +==== Nastavení bridge ====
 +
 +{{:it:software:pasted:20221205-165011.png?400}}
 +
 +{{:it:software:pasted:20221205-165026.png?400}}
 +
 +
 +===== Problém s Androidem 14 =====
 +
 +Při pokusu o přidání VPN sítě v Android 14 jsem narazil na problém. Je možné přidat pouze tyto typy VPN:
 + 
 +  * IKEv2/IPSec MSCHAPv2
 +  * IKEv2/IPSec PSK
 +  * IKEv2/IPSec RS
 +
 +Takže výše uvedený postup nebude pro Android 14 fungovat. Zdá se, že tento problém už je od Android 13 a podle diskusí to vypadá, že podpora L2TP/IPSec PSK byla odstraněna.
 +
 +Bohužel k datu 10.12.2023 nemá SoftEtherVPN implementovánu podporu pro IKEv2. Už vznikly první pokus o [[https://github.com/NovaVPN/SoftEtherVPN|implementaci IKEv2]]. V [[https://github.com/NovaVPN/SoftEtherVPN/issues/1|diskusi]] jsem objevil, že se někdo ptá na licenci. To navazuje na [[https://github.com/SoftEtherVPN/SoftEtherVPN/issues/13|žádost o implementaci IKEv2 do SoftEther]]. Vývojář ke konci k datu 31.října 2023 píše, že sice nemá moc času, ale začíná postupně se začleněním kódu.
 +
 +Tak je zde reálná šance, že se podpora do IKEv2 do SoftEhter dostane, zůstává však otázkou, kdy to bude.
 +
 +Hledal jsem možnosti, jak dostat VPN do nového telefonu. [[https://www.abclinuxu.cz/blog/Max_Devaine/2020/6/zapomente-na-openvpn-pouzivame-ikev2-uvod|Tento článek]] dává slušný přehled o možnostech. Autor píše o projektu [[https://strongswan.org/|strongSwan]], který by měl podporu IKEv2 mít implementovanou.
 +
 +Protože mám starší jádro, tak mě bohužel patrně čeká kompilace jádra kvůli [[https://docs.strongswan.org/docs/5.9/install/kernelModules.html|potřebným modulům]].
 +
 +[[https://github.com/hwdsl2/setup-ipsec-vpn/tree/master|Tady je projekt]], který by měl pomoct s konfigurací, nicméně používá se s forkem Libreswan.
 +
 +
 +Další možnou alternativou na prozkoumání je [[https://www.wireguard.com/|WireGuard]]. To by znamenalo nainstalovat si aplikace [[https://play.google.com/store/apps/details?id=com.wireguard.android|WireGuard]] do telefonu a obejít tak problém s IKEv2.
 +
 +
 +==== WireGuard ====
 +
 +U WireGuardu mám zase problém, že nelze nastavit VPN v režimu bridge, ale jako oddělená síť. WireGuard umí pouze Layer3. Aby bylo možné se připojit do sítě skrz Layer2, je potřeba použít GRETAP. 
 +
 +O tom píšou tyto články:
 +
 +* https://notes.superlogical.ch/pages/note_wg/nolayer2/
 +* https://gist.github.com/zOrg1331/a2a7ffb3cfe3b3b821d45d6af00cb8f6 
 +* https://www.abclinuxu.cz/poradna/linux/show/468903
 +* https://www.root.cz/clanky/tunelujeme-ethernet-pres-wireguard-pomoci-protokolu-geneve/
 +
 +Zdá se, že tento přístup má své limity. První limit je v tom, že tak propojím pouze 2 zařízení a nějaký management více zařízení bude komplikovaný. A druhý - hlavní problém - že toto propojení se patrně nepodaří provést skrz Android aplikaci. 
 +
 +
 +==== Problematika s L2TP a Android 14 ====
 +
 +Postupně jsem došel k závěru, že nemá smysl se snažit implementovat L2TP - tedy VPN přes Network Layer 2. Podpora byla vyřazena z Androidu a už se nevrátí. 
 +
 +Mít VPN v režimu bridge už není cesta. Cesta je implementace VPN skrze Network Layer 3 a použít například VPN Wireshark. Bude to fungovat tak, že po připojení do sítě VPN, budu mít jiný rozsah IP adres než v lokální síti. Abych se dostal do lokální sítě, mám tyto možnosti:
 +
 +1. Routované VPN (s použitím Statických nebo Dynamických Rout):
 +
 +  * V tomto případě, když se připojíte přes VPN, získáte IP adresu z rozsahu, který je určen pro VPN klienty (např. 192.168.235.0/24).
 +  * Na VPN serveru pak musíte nastavit routovací pravidla, která umožní komunikaci mezi sítí VPN klientů a vaší interní sítí (192.168.234.0/24).
 +  * To znamená, že VPN server bude fungovat jako router mezi dvěma sítěmi.
 +
 +2. NAT (Network Address Translation):
 +
 +  * Nečíslovaný seznamTato metoda spočívá v tom, že VPN server bude překládat IP adresy mezi VPN klienty a interní sítí.
 +  * Při použití NAT, mohou být všechna zařízení v interní síti viditelná pro VPN klienty, ale komunikace bude vypadat, jako by pocházela od VPN serveru.
 +  * Provedete NAT konfiguraci na serveru tak, aby překládal adresy z VPN rozsahu (192.168.235.0/24) na adresy interní sítě (192.168.234.0/24).
 +  * Toto se obvykle provádí pomocí iptables v Linuxu. Příklad pravidla by mohl být: **iptables -t nat -A POSTROUTING -s 192.168.235.0/24 -o eth0 -j MASQUERADE**, kde eth0 je síťové rozhraní připojené k interní síti.
 +
 +3. Split Tunneling:
 +  * Split tunneling umožňuje, aby část provozu šla přes VPN a část mimo ni.
 +  * Můžete nastavit, aby veškerý provoz směřující do vaší interní sítě šel přes VPN, zatímco veškerý ostatní internetový provoz šel mimo VPN.
 +  * To umožňuje přístup k interním zdrojům bez zbytečného zatěžování VPN spojení.
 +
 +4. Přístup k Specifickým Službám nebo Zařízením:
 +  * Pokud potřebujete přistupovat pouze k některým konkrétním službám nebo zařízením v interní síti, můžete použít port forwarding nebo podobné techniky na VPN serveru.
 +  * Tímto způsobem můžete umožnit přístup k určitým službám (např. webový server, FTP, atd.) prostřednictvím VPN.
 +
 +
 +V mém případě jdu cestou číslo 2 - NAT konfigurace VPN serveru.
 +
 +Jak to funguje?
 +
 +  * Když se VPN klient připojí, získá IP adresu z rozsahu 192.168.235.0/24.
 +  * Když klient pošle požadavek na zařízení v interní síti (192.168.234.0/24), požadavek projde přes VPN server.
 +  * VPN server použije NAT k překladu adresy z VPN rozsahu na adresu v interní síti, takže požadavek vypadá, jako by pocházel z VPN serveru.
 +  * Odpověď od interního zařízení je poslána zpět na VPN server, který pak překládá adresu zpět a odesílá odpověď VPN klientovi.
 +
 +
  • it/software/softether.1668346555.txt.gz
  • Poslední úprava: 2022/11/13 13:35
  • autor: Petr Nosek