_____ _   _ _    _    ___      _
 / ____| \ | | |  | |  / / |    (_)
| |  __|  \| | |  | | / /| |     _ _ __  _   ___  __
| | |_ | . ` | |  | |/ / | |    | | '_ \| | | \ \/ /
| |__| | |\  | |__| / /  | |____| | | | | |_| |>  <
 \_____|_| \_|\____/_/   |______|_|_| |_|\__,_/_/\_\

Profil sieci VPN w środowisku XFCE (NetworkManager, OpenVPN)

Korzystanie z sieci VPN w dystrybucjach Linuksa często wymaga wydania jednego lub serii poleceń w powłoce. Ta sesja powłoki zostaje zablokowana na czas działania procesu, oczywiście możemy uruchomić proces oprogramowania VPN w tle, z przekierowaniem wyjścia. Inną możliwością jest skorzystanie oprogramowania pozwalającego na zwielkrotnienie sesji powłoki w jednej zewnętrznej, takie programy zwane multiplekserami pozwalają również na odłączenie swojego procesu od tej zewnętrznej sesji. Mimo to dalej trzymamy się powłoki uruchomionej w terminalu.

W taki razie, dlaczego w ogóle instalujemy środowiska graficzne? W dystrybucjach Linuksa, o wiele więcej konfiguracji systemu oraz zadań związanych z administracją tymi systemami możemy przeprowadzić za pomocą powłoki i to jest fakt, z którym cieżko jest wchodzić w polemikę. Same środowiska graficzne, pozostają dość daleko w tyle jeśli chodzi o dostępność apletów przygotowanych do tych że zadań. Rozwiązaniem stosowanym przez wielu użytkowników jest instalacja dodatkowego oprogramowania pozwalającego na kontrolowanie wielu aspektów administracyjnych za pomocą wygodnego okna, przycisków oraz pól wyborów.

Jednym z takich udogodnień jest aplet NetworkManager. NetworkManager jest to zbiór programów kontrolujących ustawienia sieciowe w systemie. Jako osobny pakiet dostępny jest aplet, pozwalający na zarządzanie połączeniami sieciowymi naszego komputera. Za jego pomocą możemy na przykład połączyć się wybraną siecią bezprzewodową. Aplet ten pozwala również na utworzenie profilu (połączenia) sieci VPN. W tym artykule skupimy się na tworzeniu profilu sieci VPN opartej o rozwiązanie - OpenVPN oraz zakładam, że posiadamy dostęp do sieci VPN, opartej na OpenVPN, łączyliśmy się już z nią za pomocą powłoki. Jeśli nie, to tutaj możemy dowiedzieć się jak taką sieć skonfigurować. Zakładam również, że na naszych dystrybucjach korzystamy z środowiska XFCE wraz z zainstalowanym apletem NetworkManager, jeśli nie posiadamy zainstalowanego pakietu musimy go doinstalować. Możemy to zrobić przy użyciu pakietów oprogramowania naszej dystrybucji. Ja na potrzeby tego artykułu wykorzystam dystrybucje GNU/Linux Debian wraz ze środowiskiem XFCE instalowanym podczas instalacji systemu.

Aby moc tworzyć profile sieci OpenVPN musimy doinstalować dwa pakiety:

$ sudo apt install -y network-manager-openvpn network-manager-openvpn-gnome

Pierwszy pakiet odpowiedzialny jest za wytyczkę obsługującą OpenVPN dla NetworkManager. Drugi natomiast pozwoli nam na ewentualną zmianę konfiguracji z poziomu okna apletu.

Po zainstalowaniu wymaganych pakietów, możemy przejść do dodawania profilu i tutaj mamy dwie możliwości. Możemy dodawać ręcznie konfigurację po kolei każdy parametr. Jednak jest na to szybszy sposób wiedząc, że korzystaliśmy już OpenVPN w tym systemie, ale uruchamialiśmy go przez powłokę. Posiadamy już plik konfiguracyjny więc nie ma sensu przepisywać informacji w nim zawartych w do profilu. Program zrobi to za nas. Na początek kopiujemy plik konfiguracyjny, na przykład do naszego katalogu domowego (kopiowanie pliku, może wymagać uprawnień root oraz lub zmiany uprawnień, tak aby można było go modyfikować).

$ sudo cp /etc/openvpn/client.conf ~
$ sudo chown xf0r3m:xf0r3m ~/client.conf

Następnie zmieniamy ścieżki wskazujące na pliki certyfiktów na ścieżki bezwzględne - w ten sposób pliki te będą osiągalne z dowolnego miejsca w systemie.

...
ca /etc/ssl/certs/cacert.pem
cert /etc/ssl/certs/crt.pem
key /etc/ssl/private/key.pem
...

Tak zmodyfikowany plik zapisujemy z rozszerzeniem .ovpn. Teraz możemy zaimportować nasz plik. Możemy to również zrobić na dwa sposoby. Pierwszym z nich jest dodanie go przez aplet. Klikamy LPM na aplet, następnie Połaczenie VPN i Skonfiguruj VPN.... Pojawi się okno zawierające wszystkie dotych czas skonfigurowane profile na dole okna klikamy +, a z listy wybieramy Zaimportuj zapisaną konfigurację VPN... wówczas pojawi się okno wyboru pliku i tutaj wskazujemy na nasz plik .ovpn. Po wybraniu pliku, przejdziemy od razu do modyfikacji naszego profilu. Tutaj możemy zapisać hasło klucza prywatnego (niezalecane). Ważne, aby skonfigurować trasy zgodnie z konfiguracją naszej sieci VPN. Domyślnie NetworkManager będzie wymuszać trasowanie całego ruchu przez VPN, co może nie być pożądane we wszystkich konfiguracjach. Aby uzyskać dostęp wyłącznie do zasobów oferowanych przez tę sieć należy w zakładce Ustawienia IPv4, kliknąć przycisk Trasy... i zaznaczyć dwie opcje opcje pod tabelą Ignorowanie automatycznie uzyskanych tras oraz Używanie tego połączenia tylko dla zasobów tej sieci

Drugim sposobem jest skorzystanie - a jakże - z powłoki, a dokładnie z polecenia nmcli. Aby dodać profil dla sieci VPN wydajemy poniższe polecenia.

$ nmcli connection import type openvpn file /ic0/vpn/morketsmerke.ovpn 
Pomyślnie dodano połączenie „morketsmerke” (79223210-1ce8-4316-a11d-1f0a9a1fe3a5).
$ nmcli connection modify morketsmerke ipv4.ignore-auto-routes true
$ nmcli connection modify morketsmerke ipv4.never-default true

Pierwsze polecenie tworzy nam profil OpenVPN i morketsmerke. Co zostaje nam zasygnalizowane przez samo polecenie nmcli Drugie polecenie polecenie zaznacza opcje Ignorowanie automatycznie uzyskanych tras, natomiast trzecie zaznacza opcje Używanie tego połączenia tylko dla zasobów tej sieci.

Utworzone w ten sposób, czy zaimportowane ręcznie - profile będą dostępne w aplecie NetworkManager na liście Połączenia VPN. W sposób ręczny możemy zaimportować wyłącznie pliki konfiguracyjne OpenVPN. Natomiast wykorzystując polecenia, możemy zaimportować pliki innego rodzaju połączeń niż tylko OpenVPN, takie jak np. WireGuard.

Źródła:

  1. WireGuard in NetworkManager [ang.]

~xf0r3m