Podłączanie do Access Servera za pomocą Linuksa
Wybór oprogramowania klienckiego
Podłączenie do OpenVPN Access Server z Linuksa wymaga programu klienckiego. Przechwyci on ruch, który chcesz przesłać przez tunel OpenVPN, zaszyfruje go i przekaże do serwera OpenVPN. I oczywiście w odwrotnej kolejności, aby odszyfrować ruch powrotny.
Pakiety linuksowe omówione
Serwer dostępowy OpenVPN | openvpn-.as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
Projekt OpenVPN 3 Linux jest nowym klientem zbudowanym na bazie OpenVPN 3 Core Library. Ten klient jest oficjalnym programem klienckim OpenVPN Linux. Możesz znaleźć przegląd funkcji, często zadawane pytania i instrukcje dotyczące instalacji pakietu openvpn3 na naszej stronie OpenVPN 3 for Linux.
Po wykonaniu instrukcji instalacji klienta, będziesz potrzebował profilu połączenia. Jest to plik wygenerowany przez instalację serwera dostępowego OpenVPN dla konkretnego konta użytkownika. Zawiera on wymagane certyfikaty i ustawienia połączenia. Przejdź do interfejsu internetowego Client serwera Access Server (adres główny, a nie część /admin). Zaloguj się, podając swoje dane uwierzytelniające. Zostanie wyświetlona lista plików dostępnych do pobrania. Wybierz profil zablokowany przez użytkownika lub profil automatycznego logowania, a zostanie wysłany plik client.ovpn. Zapisz ten plik w swoim systemie operacyjnym Linux.
Po przeniesieniu pliku do systemu Linux możesz go zaimportować.
openvpn3 config-import --config ${client.ovpn}
Możesz rozpocząć nową sesję VPN:
openvpn3 session-start --config ${client.ovpn}
Możesz zarządzać działającą sesją VPN:
openvpn3 sessions-list
I tak dalej. Więcej szczegółów można znaleźć tutaj: OpenVPN3Linux.
OpenVPN open source OpenVPN CLI program
Program kliencki projektu open source może również łączyć się z Access Serverem. Pakiet jest dostępny w większości dystrybucji i jest znany po prostu jako openvpn. Obsługuje on opcję łączenia się z wieloma serwerami OpenVPN jednocześnie i jest dostarczany z komponentem usługi, który może automatycznie i cicho uruchamiać wszelkie profile auto-logowania, które znajdzie w folderze /etc/openvpn, nawet zanim użytkownik się zaloguje. Ten komponent usługi może być ustawiony na automatyczne uruchamianie podczas startu systemu za pomocą narzędzi dostępnych w dystrybucji Linuksa, jeśli są one obsługiwane. W Ubuntu i Debianie, kiedy instalujesz pakiet openvpn, jest on automatycznie konfigurowany do uruchamiania w czasie startu systemu.
Aby zainstalować klienta OpenVPN w Linuksie, w wielu przypadkach można po prostu użyć wersji, która znajduje się w repozytorium oprogramowania dla samej dystrybucji Linuksa. Jeśli napotkasz jakiekolwiek problemy z połączeniem używając przestarzałego oprogramowania, może to być spowodowane brakiem wsparcia dla wyższych wersji TLS w starszych wersjach OpenVPN. Postępuj zgodnie z instrukcjami znalezionymi na wiki społeczności openvpn, jeśli chcesz zainstalować klienta OpenVPN na swoim systemie Linux.
Po instalacji, będziesz potrzebował profilu połączenia. Jest to plik wygenerowany przez instalację serwera dostępowego OpenVPN dla konkretnego konta użytkownika. Zawiera on wymagane certyfikaty i ustawienia połączenia. Przejdź do interfejsu Client Web serwera Access Server (adres główny, a nie część /admin). Zaloguj się, podając swoje dane uwierzytelniające. Zostanie wyświetlona lista plików dostępnych do pobrania. Wybierz profil blokady użytkownika lub profil automatycznego logowania, a zostanie wysłany plik client.ovpn. Zapisz ten plik gdzieś w swoim systemie operacyjnym Linux. OpenVPN Access Server obsługuje profile server-locked, user-locked i auto-login, ale klient wiersza poleceń OpenVPN jest w stanie połączyć się tylko z profilami user-locked lub auto-login.
Zakładamy, że zamierzasz rozpocząć połączenie poprzez wiersz poleceń jako użytkownik root lub poprzez demona serwisowego. Jeśli chcesz, aby nieuprzywilejowani użytkownicy mogli nawiązać połączenie, spójrz na wiki społeczności, aby uzyskać więcej informacji na temat tego, jak to zaimplementować. Tutaj skupimy się na najprostszej implementacji; uruchom połączenie jako użytkownik root bezpośrednio, lub poprzez demona serwisowego.
Ręczne uruchomienie połączenia z profilem auto-login:
openvpn --config client.ovpn
Ręczne uruchomienie połączenia z profilem zablokowanym przez użytkownika:
openvpn --config client.ovpn --auth-user-pass
Jeśli używasz Google Authenticator lub innego dodatkowego czynnika uwierzytelniania, dodaj parametr auth-retry:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Aby uruchomić połączenie auto-login przez demona usługowego, umieść client.ovpn w pliku /etc/openvpn/ i zmień jego nazwę. Jego rozszerzenie musi kończyć się na .conf. Upewnij się, że demon serwisowy jest włączony do uruchamiania po restarcie, a następnie po prostu zrestartuj system. Profil typu auto-login zostanie pobrany automatycznie i połączenie rozpocznie się samo. Możesz to zweryfikować, sprawdzając wyjście polecenia ifconfig; powinieneś zobaczyć kartę sieciową tun0 na liście.
Jedną z głównych funkcji, której brakuje w kliencie wiersza poleceń, jest możliwość automatycznego wdrożenia serwerów DNS, które są popychane przez serwer VPN. Jest to możliwe, ale wymaga zainstalowania programu do zarządzania DNS, takiego jak resolvconf lub openresolv, i może lub nie może kolidować z istniejącym oprogramowaniem do zarządzania siecią w systemie operacyjnym. Pomysł polega jednak na tym, że używasz skryptu, który uruchamia się, gdy połączenie się nawiązuje, a gdy się kończy, który używa resolvconf lub openresolv do implementacji serwerów DNS dla Ciebie. Powodem, dla którego ten klient nie jest w stanie poradzić sobie z tym całkowicie sam jest głównie to, że w systemie operacyjnym takim jak Windows, Macintosh, Android, czy iOS, istnieje już ustalona pojedyncza metoda zarządzania DNS. Dlatego łatwo jest nam stworzyć oprogramowanie klienckie dla tych systemów operacyjnych, które już wie jak obsługiwać DNS. Jednak Linux jest dostępny w tak wielu odmianach, a także obsługuje różne programy i metody implementacji serwerów DNS, dlatego też rozsądnym posunięciem było pozostawienie wbudowanej obsługi DNS poza programem OpenVPN, a zamiast tego dostarczenie, tam gdzie to możliwe, skryptu, który zajmie się implementacją DNS. Taki skrypt mógłby być nawet napisany przez ciebie, aby wykonać wszystkie zadania niezbędne do implementacji serwerów DNS w twojej unikalnej sytuacji.
Na szczęście w Ubuntu i Debianie, na przykład, istnieje skrypt /etc/openvpn/update-resolv-conf, który jest dostarczany z pakietem openvpn, który obsługuje implementację DNS dla tych systemów operacyjnych. Musisz tylko aktywować ich użycie, postępując zgodnie z instrukcjami:
Otwórz swój plik client.ovpn w edytorze tekstu:
nano client.ovpn
Na samym dole po prostu dodaj te linie:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
Pierwsza linia umożliwia użycie zewnętrznych skryptów do obsługi zadań implementacji DNS. Linie „w górę” i „w dół” służą do implementacji serwerów DNS wypychanych przez serwer VPN, gdy połączenie zostanie nawiązane, a następnie do cofnięcia tego, gdy połączenie zostanie przerwane.
Program do zarządzania siecią w systemie Ubuntu
Istnieje również możliwość łączenia się przez GUI przy użyciu rozszerzenia openvpn dla wtyczki menedżera sieci Gnome. Ale to jest obecnie trochę skomplikowane do skonfigurowania. Istnieje na przykład błędne założenie, że wszystkie sieci VPN będą w stanie przekierować ruch internetowy, a starsze wersje mogą nie rozumieć formatu pliku .ovpn, wymagając podzielenia certyfikatu w nim osadzonego na osobny plik. I prawdopodobnie trzeba by się zagłębić w opcje, aby upewnić się, że domyślna trasa ruchu internetowego przechodząca przez serwer VPN nie jest zawsze domyślnie włączona, zwłaszcza w przypadku serwerów, gdzie dajesz dostęp tylko do niektórych zasobów wewnętrznych, a nie do całego Internetu. Jednak zaletą korzystania z komponentu GUI jest to, że możesz rozpocząć/zatrzymać połączenie z poziomu środowiska graficznego w systemie Linux.