W poprzednich artykułach poznaliśmy pfSense, darmowy doskonały firewall, który z powodzeniem można wdrożyć w swojej firmie, w swoim domowym labie, a czasem i zastąpić drogie rozwiązania komercyjne, jeśli nie potrzebujemy ich konkretnych funkcji. Dzisiaj przybliżę kolejne z działań pfSense. Tym razem pokażę, jak w prosty sposób uruchomić i skonfigurować własny serwer VPN na bazie OpenVPN. Dzięki temu będziemy mogli wystawić na świat (na przykład do pracy zdalnej) naszą sieć i pozwolić na pracę “jak w biurze”. 

Możliwości jest oczywiście znacznie, znacznie więcej, niż tylko wystawienie serwera OpenVPN. Możemy na przykład spinać naszą sieć z inną siecią za pomocą tuneli L2L, ipsec, L2TP. Zachęcam do śledzenia artykułów w ramach Władców Sieci. 

1. Uruchomienie serwera OpenVPN w pfSense 

Zakładam, że macie już zainstalowany pfSense zgodnie z pierwszym artykułem z cyklu. Logujemy się na konto administratora. Najlepiej, a przy tym i bezpiecznie, jest uruchomić serwer VPN w oparciu o klucze, certyfikaty, a nie przekazywane hasła – choć udostępnienie klucza, certyfikatu skutkuje tym samym co zgubione, wykradzione hasło, dlatego warto mieć to na uwadze przekazując dostęp do sieci lokalnej: firmowej lub domowej. 

Aby uruchomić serwer VPN będziemy potrzebowali własnego CA, czyli centrum certyfikacji. W tym celu przechodzimy na górnym menu do sekcji Certificate Manager. 

Na dole klikamy na “Add” 

Zaznaczamy podobnie jak na rysunku. Pod każdą opcją jest dokładny opis czego dotyczy i co robi. Nie ma sensu tego tłumaczyć, gdyż myślę, że język jest zrozumiały dla większości. 

Nieco niżej znajdziemy konfigurację naszego centrum autoryzującego. 

Tutaj przyda się kilka słów wyjaśnienia. Być może nie każdy będzie rozumiał w czym rzecz. 

Key Type – tu wybieramy jakiego typu kluczem będziemy się posługiwać i do wyboru mamy dwa, obecnie używane i uważane za bezpieczne: RSA i ECDSA.  

RSA jest najbardziej popularnym standardem, ECDSA ma również długą historię, ale nie jest aż tak popularny. RSA będzie bardziej kompatybilny, ECDSA bardziej bezpieczny przy krótszej długości klucza. Co wybrać? Jeśli wybierzemy RSA o długości klucza co najmniej 2048 (choć dziś już zaleca się 4096), to możemy być oczywiście spokojni. Nikt do dziś nie złamał RSA i na pewno jeszcze długo nie złamie. ECDSA powinien być już wszędzie obsługiwany i jest dzisiaj coraz częściej stosowany zamiast RSA. Jest bezpieczny, ale może być mniej kompatybilny z innymi systemami, które go nie używają. Wybór – z rozsądku dziś proponuję RSA o długości klucza 4096. 

Algorytm – min. sha256

Czas życia klucza – tutaj może być i 3650. 

Na dole wypełniamy pola zgodnie z danymi naszej firmy. 

Po zapisaniu pojawi się na liście CA nasze centrum. 

Za jego pomocą będziemy wystawiać i autoryzować certyfikaty i klucze, potrzebne do połączenia się z naszym serwerem VPN. Teraz musimy dodać nasz certyfikat dla serwera VPN. W tym celu przechodzimy na zakładkę “Certificates” i klikamy na “Add”. 

Po zapisaniu – powinien nam się pojawić wystawiony certyfikat dla serwera. 

Możemy uruchomić już serwer VPN. 

Przechodzimy na zakładkę VPN i wybieramy OpenVPN. 

Ustawiamy podobnie jak na obrazku, chyba że chcemy dodać dodatkowo autoryzacje po haśle lub zmienić port. 

W konfiguratorze wybieramy utworzone przez nas CA oraz certyfikat serwera. 

Tak naprawdę od tych ustawień zależy, jakie algorytmy będzie wspierał nasz VPN. Domyślne wartości są uniwersalne, natomiast warto zgłębić temat długości kluczy, algorytmów, aby odpowiednio zabezpieczyć serwer VPN oraz być jednocześnie kompatybilnym. 

W kolejnej sekcji konfigurujemy ustawienia tunelu. 

Pierwszy parametr mówi o tym, jaką sieć wirtualną nadamy dla połączeń. To znaczy, z jakiej podsieci IP będą przyjmowali klienci łączący się do VPN’a i na przykład, wymieniający między sobą informacje. Warto ustawić tu taką sieć, jakiej nie mamy w firmie, w domu i coś, co rzadko jest spotykane, aby zachować możliwość rutowania ruchu i zapobiegać konfliktom z sieciami domowymi. 

Redirect IPv4 Gateway 

Od tego czy ustawimy tutaj checkbox, czy pozostawimy puste okienko, zależy, czy cały ruch będzie szedł przez VPN’a domyślnie. Po połączeniu się klienta/pracownika, cały jego ruch będzie rutowany przez VPN’a, w tym to, co robi poza pracą (kiedy jest podłączony), na przykład słucha muzyki, ogląda filmy, teledyski na YT. Jeśli mamy słabe łącze w biurze, nie warto tego zaznaczać, gdyż może się okazać, że zbyt dużo pracownicy korzystają z łącza poza firmowymi obowiązkami i zbyt mocno jest ono obciążone. Można tu pozostawić puste okienko i w konkretnych przypadkach, dla konkretnych kont, później włączyć rutowanie całości ruchu przez VPN. 

IPv4 Local networks (s) 

Tu podajemy podsieci, do których chcemy mieć dostęp z sieci VPN. Jeśli chcemy z VPN’a mieć dostęp do sieci lokalnej 192.168.1.0/24 –  to taką wpisujemy. 

Resztę w tej sekcji ustawiamy według własnych preferencji. 

VPN został uruchomiony i jest już aktywny. Zostaje dodać klientów/pracowników i utworzyć im konta. 

Przechodzimy w tym celu w głównym menu “System” – na sam dół do “User Manager”. 

Tworzymy nową grupę, na początek w zakładce “Groups” o nazwie np. VPN, aby przydzielić użytkowników do konkretnej grupy osób, które mogą mieć tylko VPN’a, a na przykład nie mogą logować się do routera. Dlatego nie dodajemy tu żadnych uprawnień, zwłaszcza do logowania się do panelu. 

2. Konta użytkowników/pracowników 

Dodajemy nowe konto użytkownika. 

Zaznaczamy checkbox “Click to create a user certificate”. 

Mamy już konto dla pracownika. W sumie to wszystko – serwer gotowy, konto gotowe. Możemy podesłać pracownikowi gotową konfigurację. 

3. Pobieranie konfiguracji 

Serwerem VPN jest OpenVPN, więc konieczna będzie aplikacja klienta OpenVPN, aby można było wrzucić do niej konfigurację i podłączyć klienta. Tutaj znów pfSense pokazuje swoją przydatność – pomyślano o wszystkim – także o tym, aby nie było potrzeby pobierania i instalowania dodatkowych aplikacji. 

Konfiguracja użytkownika jest zapisana i można ją pobrać jako autoinstalator, który zainstaluje aplikację i załaduje wszystkie niezbędne spersonalizowane konfigi danego użytkownika. Serio. 

Musimy doinstalować exporter konfiguracji, w tym celu przechodzimy na zakładkę System i Package Manager. 

Wyszukujemy w Available Packages > openvpn. Powinien podświetlić się pierwszy openvpn-client-export. 

Instalujemy pakiet. 

Wracamy w zakładkę VPN > OpenVPN. 

Przechodzimy na nową zakładkę “Client Export”.

Po przejściu na zakładkę uruchomi się konfigurator. Tutaj skonfigurujemy to, co ma być exportowane. Zależy nam, by był tam instalator oraz niezbędne pliki. Ustawiamy więc jak na schemacie. 

Możemy później zmienić odpowiednie ustawienia. 

Na dole znajduje się lista naszych kont. 

Najlepiej wybrać – więc jeśli mamy system Windows autoinstalator: 

Ten plik .exe z instalatorem przekazujemy pracownikowi, klientowi. Wystarczy, że go zainstaluje w swoim systemie i  będzie miał wszystko co jest niezbędne, wraz z aplikacją i plikami konfiguracyjnymi. 

Kiedy instalator zapyta nas o instalację dodatkowych sterowników, zaznaczamy zgody i kontynuujemy. 

Po instalacji na pulpicie pojawi się ikonka OpenVPN Gui. 

Po uruchomieniu koło Zegara systemowego pojawi się dodatkowa ikonka – komputerka. Klikamy na nią prawym przyciskiem myszy i dajemy ‘Connect’. 

Jeśli w trakcie zapora Windows zapyta nas o pozwolenie – zgadzamy się.

Po podłączeniu ikonka „koło zegara” zmieni kolor na zielony i wyświetli komunikat o poprawnym połączeniu. 

Jesteśmy połączeni i mamy już dostęp do skonfigurowanej przestrzeni, sieci i zasobów naszej firmy, domu lub laba.