WireGuard to niezwykle prosty, szybki i nowoczesny VPN. Wykorzystuje najnowocześniejszą kryptografię. W założeniu ma być pod wieloma względami lepszy niż IPSec czy OpenVPN.
Poprzedni artykuł mówił o połączeniu dwóch oddziałów firmy (routerów), teraz omówię prosty przypadek podłączenia zdalnego komputera z systemem Windows do centrali firmy. Topologia jest następująca:
Choć opis jest długi, to całość konfiguracji składa się z czterech prostych kroków.
Krok pierwszy. Na routerze R1
dodajemy interfejs WireGuard. Zwróć uwagę, że w tych komendach ustawiamy tylko numer portu. na którym nasłuchuje router (w tym przypadku 12345
).
/interface wireguard add listen-port=12345 mtu=1420 name=WireGuard-Server
Z gui WinBox jest to zakładka WireGuard/WireGuard
:
Po dodaniu interfejsu klucze (prywatny i publiczny) generowane są automatycznie, można je podejrzeć za pomocą komendy:
/interface/wireguard/print
Krok drugi. Dodajemy teraz na routerze R1
informację na temat jego sąsiada (peer
). W tym przypadku laptopa z systemem Windows. Dla każdego klienta musimy stworzyć osobnego peera. Czyli w konfiguracji routera R1
wpisujemy klucz publiczny (Public Key
) z klienta WireGaurd. Można go pozyskać klikając w Dodaj pusty tunel...
:
Dalej na R1
pole Endpoint
(publiczny adres IP) zostawiamy puste, ponieważ zezwalamy na połączenie z dowolnego adresu. Adresację sieci LAN (Allowed Addresss
) ustawiamy zgodnie z topologią naszej sieci na 192.168.22.0/24
oraz na adresację tunelu 172.16.20.0/24
:
/interface wireguard peers add allowed-address=192.168.22.0/24 endpoint-port=12345 interface=WireGuard-Server name=WireGuard-Client persistent-keepalive=15s public-key="34m0M3Yg+Ui1hd0mwmZ81UBIfcttH7CW2kAJWaUbUyo="
Krok trzeci. Na R1
Ustawiamy adresację utworzonego wcześniej interfejsu WireGuard-Server.
/ip address add address=172.16.20.1/24 interface=WireGuard-Server network=172.16.20.0
Krok czwarty. Konfiguracja klienta Windows. Dodajemy pusty tunel z następującą konfiguracją:
[Interface]
PrivateKey = 8NqLl1L9i1/fmbKjyZiEkqrA72ayVia32ixmCq8VLEw=
Address = 172.16.20.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = OPPJ8Bb6201zgXKVKZ3sjbLZ6QOaZj4u0k54MiQ6Yhg=
AllowedIPs = 0.0.0.0/32
Endpoint = 1.1.1.1:12345
PersistentKeepalive = 15
Pola jakie nas interesują to:
[Interface]Address
– Adres IP interfejsu WireGuard.
[Peer]PublicKey
– Klucz publiczny routera R1
pozyskany za pomocą komendy /interface/wireguard/print
.
[Peer]Endpoint
– Publiczny adres IP routera R1
wraz z numerem skonfigurowanego wcześniej portu.
Po wprowadzeniu konfiguracji klikamy przycisk Zapisz
, a następnie Aktywuj
. Prawidłowo zestawiony tunel wysyła i odbiera pakiety:
Widać to również na routerze R1
:
Koniec 🙂
Jeżeli pomogłem to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.