Připojení k Access Serveru pomocí Linuxu
Výběr klientského softwaru
Připojení k OpenVPN Access Serveru z Linuxu vyžaduje klientský program. Ten zachytí provoz, který chcete poslat tunelem OpenVPN, zašifruje jej a předá serveru OpenVPN. A samozřejmě i opačně, pro dešifrování zpětného provozu.
Diskutované balíčky pro Linux
Přístupový server OpenVPN | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
Projekt OpenVPN 3 Linux je nový klient postavený nad knihovnou OpenVPN 3 Core. Tento klient je oficiálním programem OpenVPN Linux Client. Přehled funkcí, často kladené otázky a pokyny k instalaci balíčku openvpn3 najdete na našich stránkách OpenVPN 3 pro Linux.
Po instalaci klienta podle tam uvedených pokynů budete potřebovat profil připojení. Jedná se o soubor vygenerovaný instalací přístupového serveru OpenVPN pro váš konkrétní uživatelský účet. Obsahuje požadované certifikáty a nastavení připojení. Přejděte na webové rozhraní klienta vašeho serveru Access Server (hlavní adresa, nikoli část /admin). Přihlaste se pomocí svých uživatelských pověření. Zobrazí se seznam souborů, které jsou k dispozici ke stažení. Vyberte profil uzamčeného uživatele nebo profil automatického přihlášení a bude vám zaslán soubor client.ovpn. Uložte tento soubor do operačního systému Linux.
Po přesunutí souboru do systému Linux jej můžete importovat.
openvpn3 config-import --config ${client.ovpn}
Můžete zahájit novou relaci VPN:
openvpn3 session-start --config ${client.ovpn}
Můžete spravovat běžící relaci VPN:
openvpn3 sessions-list
A tak dále. Další podrobnosti naleznete zde:
OpenVPN open source program OpenVPN CLI
Klientský program open source projektu se také může připojit k serveru Access Server. Balíček je k dispozici ve většině distribucí a je známý jednoduše jako openvpn. Podporuje možnost připojení k více serverům OpenVPN současně a je dodáván se servisní komponentou, která dokáže automaticky a tiše spustit všechny profily automatického přihlášení, které najde ve složce /etc/openvpn, a to i před přihlášením uživatele. Tuto servisní komponentu lze nastavit tak, aby se automaticky spouštěla při startu systému pomocí nástrojů dostupných ve vaší distribuci Linuxu, pokud je podporována. V Ubuntu a Debianu je při instalaci balíčku openvpn automaticky nastaveno jeho spuštění při startu systému.
Pro instalaci klienta OpenVPN v Linuxu je v mnoha případech možné použít pouze verzi, která je v repozitáři softwaru pro samotnou distribuci Linuxu. Pokud při použití zastaralého softwaru narazíte na problémy s připojením, může to být způsobeno možnou nedostatečnou podporou vyšších verzí TLS ve starších verzích OpenVPN. Pokud si přejete nainstalovat klienta OpenVPN do systému Linux, postupujte podle pokynů, které najdete na wiki komunity openvpn.
Po instalaci budete potřebovat profil připojení. Jedná se o soubor vygenerovaný instalací přístupového serveru OpenVPN pro váš konkrétní uživatelský účet. Obsahuje požadované certifikáty a nastavení připojení. Přejděte do klientského webového rozhraní svého přístupového serveru (hlavní adresa, nikoli část /admin). Přihlaste se pomocí svých uživatelských pověření. Zobrazí se seznam souborů, které máte k dispozici ke stažení. Vyberte profil uzamčeného uživatele nebo profil automatického přihlášení a bude vám zaslán soubor client.ovpn. Tento soubor uložte někam do operačního systému Linux. Přístupový server OpenVPN podporuje profily uzamčené serverem, profily uzamčené uživatelem a profily s automatickým přihlášením, ale klient OpenVPN pro příkazový řádek se dokáže připojit pouze s profily připojení uzamčenými uživatelem nebo s profily s automatickým přihlášením.
Předpokládáme, že budete spouštět připojení buď prostřednictvím příkazového řádku jako uživatel root, nebo prostřednictvím démona služby. Pokud chcete, aby neprivilegovaní uživatelé mohli navázat připojení, podívejte se na komunitní wiki, kde najdete další informace o tom, jak to implementovat. Zde se zaměříme na nejjednodušší implementaci; spustit připojení přímo jako uživatel root nebo prostřednictvím démona služby.
Spuštění spojení s profilem automatického přihlášení ručně:
openvpn --config client.ovpn
Spuštění spojení s profilem uzamčeným uživatelem ručně:
openvpn --config client.ovpn --auth-user-pass
Pokud používáte Google Authenticator nebo jiný další faktor ověřování, přidejte parametr auth-retry:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Pro spuštění spojení s automatickým přihlášením prostřednictvím démona služby umístěte klienta.ovpn do souboru /etc/openvpn/ a soubor přejmenujte. Jako přípona souboru musí končit příponou .conf. Ujistěte se, že je povoleno spuštění démona služby po restartu, a poté jednoduše restartujte systém. Profil typu automatického přihlášení bude automaticky vybrán a připojení se spustí samo. To si můžete ověřit kontrolou výstupu příkazu ifconfig; v seznamu byste měli vidět síťový adaptér tun0.
Jednou z hlavních funkcí, která u klienta příkazového řádku chybí, je možnost automaticky implementovat servery DNS, které jsou tlačeny serverem VPN. Je to možné, ale vyžaduje to instalaci programu pro správu DNS, jako je resolvconf nebo openresolv, a může, ale nemusí to kolidovat se stávajícím softwarem pro správu sítě ve vašem operačním systému. Jde však o to, abyste použili skript, který se spustí při navázání připojení a při jeho ukončení a který pomocí resolvconf nebo openresolv implementuje servery DNS za vás. Důvodem, proč to tento klient není schopen zvládnout zcela sám, je především to, že v operačním systému, jako je Windows, Macintosh, Android nebo iOS, již existuje zavedený jednotný způsob správy DNS. Proto je pro nás snadné vytvořit softwarového klienta pro tyto operační systémy, který již umí s DNS zacházet. Systém Linux je však k dispozici v mnoha variantách a podporuje také různé programy a metody implementace serverů DNS, a proto bylo rozumné vynechat integrovanou podporu DNS z programu OpenVPN a místo toho poskytnout, pokud je to možné, skript, který implementaci DNS zvládne. Takový skript byste si dokonce mohli napsat sami a provést všechny úkoly, které jsou pro implementaci serverů DNS ve vaší jedinečné situaci nutné.
Naštěstí například v Ubuntu a Debianu existuje skript /etc/openvpn/update-resolv-conf, který je součástí balíčku openvpn a který se o implementaci DNS v těchto operačních systémech stará. Stačí pouze aktivovat jejich použití podle následujících pokynů:
Otevřete soubor client.ovpn v textovém editoru:
nano client.ovpn
Úplně dole jednoduše přidejte tyto řádky:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
První řádek umožňuje použití externích skriptů pro zpracování úloh implementace DNS. Řádky nahoru a dolů slouží k implementaci serverů DNS tlačených serverem VPN při navázání spojení a následně k jeho zrušení, když spojení spadne.
Program pro správu sítě v Ubuntu
Existuje také možnost připojení přes grafické rozhraní pomocí rozšíření openvpn pro doplněk správce sítě Gnome. To je však v současné době poněkud složité nastavit. Existuje například nesprávný předpoklad, že všechny VPN budou umět přesměrovat internetový provoz, a starší verze nemusí rozumět formátu souboru .ovpn, což vyžaduje rozdělení v něm vloženého certifikátu do samostatného souboru. A pravděpodobně byste se museli hrabat v možnostech, abyste zajistili, že výchozí trasa internetového provozu procházející přes server VPN není vždy ve výchozím nastavení povolena, zejména u serverů, kde poskytujete přístup pouze k některým interním zdrojům, a ne k celému internetu. Výhodou použití komponenty grafického uživatelského rozhraní je však to, že v Linuxu můžete připojení spustit/zastavit z prostředí pracovní plochy.