Więcej miejsc do posłuchania:
Link do artykułu.
0:00 Wprowadzenie
1:06 Konfiguracja kluczy
1:34 Generator i konfiguracja Peer’ów
10:41 Reguły na Firewallu
13:07 Konfiguracja Firewalla
15:24 Podsumowanie
Transkrypcja
Cześć. Opowiem tym razem o konfiguracji WireGuard VPN na OPNsense. WireGuard zdobył uznanie za szybkość i bezpieczeństwo. To może oznaczać, że będzie lepszą opcją niż Open VPN lub IPsec. Od wersji 24.1 OPNsense WireGuard nie musi być już instalowany jako plugin. Jest już wbudowany w jądro systemu. OPNsense posiada bardzo wygodny konfigurator dla punktów końcowych Wireguarda. Zapraszam zatem do oglądania.
Zaczynamy. Jesteśmy na stronie konfiguracyjnej naszego OPNsense. Będziemy potrzebować adresu OPNsense od strony WANu. W moim przypadku jest to taki adres. Jest to adres niepubliczny, używam go tutaj tylko do celów testowych. Więc przechodzę na VPN. WireGuard, Instances Dodaje plusikiem nową instancję, niech to będzie WG01.
W kolejnym kroku wygenerujmy sobie parę kluczy: prywatny i publiczny i ustalmy port na jakim będzie działać ta nasza instancja. Niech to będzie 55100 przykładowo i adres tunelu z maską 24 bitową i jedynka w czwartym oktecie, że nasz serwer, nasza instancja będzie na jedynce. Save. W kolejnym kroku przechodzimy do generatora peerów czyli punktów końcowych WireGuarda. Od tej wersji 24.1 w późniejszych bardzo fajnie jest zrobiony ten generator. Bardzo to ułatwia pracę. I tu nam się przyda ten adres uprzednio skopiowany. Tu bardzo ważne żebyśmy po dwukropku od razu wpisali port na jakim pracuje ta instancja.
Tu jak widzicie jest lista rozwijana jeżeli tych instancji będzie więcej to oczywiście generowanie peeru dla każdej instancji można robić osobno. Robię nazwę Peer 01 przykładowo. Tu już przypisany został adres kolejny z dwójką na końcu i dla poprawy bezpieczeństwa możemy sobie jeszcze wygenerować klucz publiczny, klucz PSK. Tu z kolei możemy ustawić po jakim czasie tunel jest podtrzymywany żeby nie występowała opcja, że tunel jest jakby wygaszany i potem od nowa zestawiany. Ja sobie ustawiam na 120 sekund. Tu możemy wstawić serwery DNS. Mogą to być serwery DNS publiczne. W tym momencie jakby wymusimy pracę przez te serwery publiczne. Może ich być kilka, mogą być oddzielone przecinkami. Ja sobie wpiszę serwer DNS w sieci lokalnej i oprócz tego cztery dziewiątki czyli Quad9. Tu z kolei ważna rzecz Allowed IPs. Domyślnie są podstawiane 4 zera z maską zero.
Czyli w tym momencie jeżeli taką konfigurację z czterema zerami i maską zero wstawimy do klienta WireGuardowego to będzie cały ruch kierowany danego hosta poprzez tunel WireGuardowy. Jeżeli chcecie żeby to była tylko sieć lokalna czyli wpisujemy sobie adresację sieci lokalnej z maską 24 bity przykładowo. W tym momencie powinniśmy już mieć kompletną konfigurację jednego Peera i tu jak widzicie została wygenerowana konfiguracja, którą należy skopiować i potem można ją wstawić do klienta WireGuardowego albo wkleić do edytora tekstowego i zapisać jako plik konfiguracyjny z rozszerzeniem conf i zaimportować do klienta WireGuardowego. oprócz tego został wygenerowany kod QR, który może być użyty do konfiguracji klienta WireGuardowego w smartfonie.
Nie ma konieczności przepisywania tych ciągów kluczy dajmy na to.. Wystarczy aparatem zrobić zdjęcie z poziomu aplikacji WireGuardowej. Mamy gotowe połączenie wtedy VPNowego na smartfona. Żeby ta konfiguracja się zapisała trzeba kliknąć Store and Generate, Next. Można tu już generować kolejne konfigurację dla kolejnego peera. Tu jak widzicie już endpoint, wartości typu endpoint pozostają. Na razie ta jedna konfiguracja peera nam wystarczy, zrobię apply żeby ta konfiguracja się zapisała. Aby pobrać klienta WireGuardowego wystarczy przejść na stronę wireguard.com/install Można tutaj pobrać instalator dla różnych systemów operacyjnych. Mamy zainstalowanego klienta i pierwszą konfigurację w schowku.
Przechodzimy tutaj… Dodaj tunel, dodaj pusty tunel i wklejamy tą konfigurację ze schowka. Tu jakąś nazwę możemy nadać. Zapisz i już mamy gotową. Zróbmy może jeszcze jednego przykładowego peera. Nadam mu nazwę WG02. Tu również wygenerujmy sobie klucz PSK i niech to będzie taka konfiguracja w której będziemy właśnie przepuszczali sobie ruch internetu przez tunel WireGuardowy i na przykład w tym momencie użyjemy tylko serwera publicznego DNS. To dodajmy jeszcze dla pewności cztery ósemki, serwer DNS Google. Naciskam Store and Generate Next.
Zróbmy jeszcze kolejną konfigurację. To będzie WG03, generujemy PSK i tu z kolei będziemy przykładowo chcieli mieć tylko dostęp do jednego hosta w sieci – niech to będzie jakiś serwer czyli daje przykładowy adres 192.168.100.100 z maską 32 bity i załóżmy nie potrzebuję w ogóle serwera DNS. Ale tu skrócę ten czas do 10 sekund. Bo chodzi mi o połączenie z jakimś na przykład serwerem bazodanowym żeby ono nie wygasało. Store and Generate Next. No i mamy to już z kolei zniknęły te serwery DNS. Trzeba będzie je ewentualnie wpisać jeszcze raz jeżeli będziemy chcieli wygenerować inną konfigurację. I teraz robię Apply. Przechodzimy na zakładkę peers i widzimy trzy peer’y które zostały wcześniej przez nas utworzone Peer 01, 02 i 03. One mają kolejne adresy i w momencie kiedy byście chcieli utworzyć konfigurację taką statyczną, że zestawiacie tunel statyczny między załóżmy dwoma Open Sense i znacie adres drugiego Open Sense. To w bardzo łatwy sposób można tu jeszcze to wyedytować klikając na ten ołóweczek i na przykład wpisując adres IP tamtego end pointa czy tamtego Open Sense.
Może to być oczywiście inne urządzenie które obsługuje WireGuarda plus port jaki tam został ustawiony. Wróćmy na chwilę do klienta WireGuardowego. Tu możemy jak najbardziej jeszcze edytować tą konfigurację bezpośrednio na kliencie. Zróbmy sobie tutaj także cały ruch przepuścimy przez ten tunel WireGuardowy. Jak widzicie pojawia nam się taka opcja zablokuj niezabezpieczony ruch, wyłącznik awaryjny czyli Kill Switch. Jeżeli to jest zaznaczone to w tym momencie cały ruch jest przesyłany oczywiście do internetu z danego hosta do… poprzez ten tunel WireGuardowy i oprócz tego komputer przestaje być widoczny właściwie w sieci lokalnej w której się znajduje oczywiście po zestawieniu tego tunelu. Jest to szczególnie przydatne gdy jesteśmy w jakimś hotelu czy łączymy się z jakimś nieznanym hotspotem.
W tym momencie możemy się zabezpieczyć bo ten komputer przestanie być widoczny w tej sieci lokalnej tego hotspota czy ogólnie w tej sieci WiFi w której się znajduje nasz komputer. Ale można też również zrobić tak, że odkliknąć to i wtedy oprócz tego że ten ruch będzie przesyłany przez przez tunel WireGuardowy ale komputer będzie widoczny w sieci lokalnej w której się aktualnie znajduje. W kolejnym kroku musimy przejść do interfejsów do Assignments i tu poszukać interfejsu, który nam się utworzył. W tym momencie jest to interfejs WG0 powiązany instancją WireGuarda WG01 tu mu nadajmy nazwę dla nas dodajemy ten interfejs, Save. Kolejno trzeba kliknąć na niego i go włączyć i włączyć opcję Prevent Interface Removal. Czyli żeby nie został usunięty. Save, Apply. Chwilkę to potrwa i już interfejs został utworzony. Czyli mamy wygenerowane instancje oraz peery do naszego WireGuarda.
Przechodzimy zatem do interfejsów sieciowych i tu do Assignments żeby powołać nowy interfejs WireGuardowy. Jak widzicie pojawił się tutaj jeden nowy interfejs. Nadajmy mu nazwę. Ja zaczynam od WG dla łatwego odróżnienia. Następnie podkreślenie. net… Został dodany. Następnie Save. Kolejno przechodzę do tego interfejsu I go włączam i zaznaczam opcję Prevent interface removal. Save. Apply. To chwilkę trwa, dobrze – jest interfejs. Pozostało zatem utworzyć odpowiednie reguły na Firewallu.
Czyli przechodzimy do reguł i tu jak widzicie pojawiły się… Nowy Interfejs WG i oprócz tego grupa interfejsów WireGuard. Czyli grupa ma wyższy priorytet jeżeli tu ustawimy jakąś regułę to będzie ona miała wyższy priorytet nad regułami dla poszczególnych interfejsów WireGuardowych. Ja ustawię sobie tutaj dla tej instancji regułę przepuszczającą ruch i niech to będzie reguła, która nam przepuści tylko ruch z tej sieci Wireguardowej czyli WG_netadminpro_pl net do sieci LAN czyli LAN net. No i oczywiście Save. Tak wygląda ta reguła i Apply. No i już mamy tą regułę. Trzeba jeszcze o jednej ważnej rzeczy pamiętać czyli przejść do reguły dla interfejsu WAN żeby otworzyć odpowiedni port. Tu już mamy na przykład otwarty port 55100 dla UGP i też dla WireGuarda ale musimy zrobić jeszcze jedną regułę bo nasza instancja działa na porcie 55 100
więc dodaję nową regułę czyli reguła przepuszczająca protokół IP wersja czwarta. Następnie UDP dla WireGuarda.
Puszczamy wszystko z Internetu Destination robimy adres od strony WANu i tu ustawiamy 55100 AD 55100 do 55100 Tu opiszmy, że jest to WireGuard WG01 No i mamy regułę. Pozostało nam skonfigurowanie Firewalla od strony WANu czyli udostępnienie portu na którym działa ta nasza nowo powstała instancja. Czyli utworzymy nową regułę Pass dla interfejsu WAN. Protokół UDP i tutaj Destynation dajemy adres portu WAN. No i musimy wpisać te standardowe porty 55100 w tym przypadku do 55100. Opisujemy, że jest to WireGuard WG01. I Save i robimy Apply. Regułę dla portu WAN mamy gotową.
Przejdźmy zatem do ustawień jeszcze Firewalla. Zrobimy tutaj normalizację wielkości pakietów dla WireGuarda. W tym momencie bardzo nam się przyda grupa interfejsów WireGuardowych. Czyli wybierzemy ją z tej listy rozwijanej – WireGuard Group. I ustawimy maksymalny mss czyli wielkość przesyłanego pakietu przez WireGuard i tak dla standardowego łącza internetowego gdzie nie jest wykorzystywany protokół PPPoE ustawcie 1380 jeżeli korzystacie z PPPoE ustawcie mniej 1372. Natomiast jeżeli korzystacie z protokołu IP wersja 6 to odpowiednio 1360 i 1352 dla PPPoE czyli 1360 dla mnie Przepraszam 1380 dla protokołu IP wersji 4. Save i Apply.
Dziękuję za uwagę. Jeżeli interesują Cię te tematy zasubskrybuj nasz kanał. Jeżeli masz jakieś sugestie i uwagi to napisz w komentarzu. Cześć!