Zaczynamy od zalogowania się do naszego urządzenia MikroTik. Następnie aktywujemy serwer WireGuard, wybierając z menu „WireGuard” i przycisk „Add New”:
Następnie powinien pojawić się nam formularz dodawania nowego serwera, gdzie musimy kliknąć tylko „OK”:
Po tej operacji mamy aktywny serwer WireGuard na naszym Mikrotiku w domyślnej konfiguracji. Dodatkowo w systemie pojawi się nowy interface, do którego będziemy mogli przypisać adres IP. Robimy to w zakładce IP -> Addresses, a następnie wybieramy „Add New”:
Otwiera nam się nowy formularz dodawania adresu IP, w Address wpisujemy przykładowo 10.66.77.1/24, co spowoduje, że na interface wireguarda Mikrotik będzie dostępny pod tym adresem, w network wpisujemy 10.66.77.0. Bardzo ważne jest wybranie odpowiedniego Interface, w naszym wypadku wireguard1. Po wpisaniu danych dodajemy przyciskiem „OK”.
W następnym kroku musimy wygenerować konfigurację dla klienta. Klienta WireGuard możemy ściągnąć pod adresem: https://www.wireguard.com/install/, wybieramy oczywiście wersję odpowiednią dla naszego systemu, z którego chcemy połączyć się do VPNa.
Po instalacji klienta przechodzimy na stronę https://www.wireguardconfig.com/, gdzie możemy wygenerować w prosty sposób konfigurację dla klienta. Konfigurację po stronie serwera mamy już zrobioną z powyższych kroków, więc interesuje nas jedynie konfiguracja klienta. Wypełniamy dane na stronie w następujący sposób:
- Listen Port: 13231 (lub taki jaki ustawiliśmy podczas dodawania WireGuarda)
- Number of Clients: ustawiamy w zależności, ile potrzebujemy dodać osób, które mają móc się połączyć do VPNa
- CIDR: 10.66.77.0/24
- Client Allowed IPs: 10.66.77.0/24
- Endpoint (Optional): 194.110.5.15:13231 (194.110.5.15 zamieniamy na IP naszego serwera VPS z Mikrotikiem)
- Post-Up rule: puste
- Post-Down rule: puste
- Use Pre-Shared Keys (Enhanced Security): zaznaczone
Powinniśmy teraz zobaczyć na dole konfigurację zarówno serwera, jak i klienta. To, co nas interesuje to konfiguracja klienta.
Pierwsze co musimy zrobić to dodać po stronie Mikrotika konfiguracje klientów WireGuarda. Robimy to, przechodząc w menu do zakładki „WireGuard”, a następnie wybierając na górze kartę „Peers” i klikając „Add New”:
Formularz uzupełniamy danymi z generatora, dla przykładu bierzemy informację oznaczone jako „Client 1” (potem możemy dodać w taki sam sposób następnych Peerów):
- Interface wybieramy „wireguard1”, jeżeli dodaliśmy tylko jeden serwer WireGuard
- PresharedKey (oznaczony na zielono) kopiujemy z generatora do pola „PresharedKey” w formularzu. PublicKey (oznaczony na niebiesko)
- Public Key (oznaczony na niebiesko) kopiujemy z generatora do pola „Public Key” w formularzu. PublicKey (oznaczony na niebiesko)
- Endpoint ustawiamy jako IP naszego serwera (jeżeli mamy kilka adresów IP możemy tutaj wybrać, do którego ma łączyć się klient)
- Endpoint Port ustawiamy jako port, który wpisaliśmy na początku w konfiguracji serwera WireGuard, domyślnie jest to 13231
- Allowed Address jest to adres IP z jakim może połączyć się klient, ustawiamy zgodnie z tym co w generatorze, czyli „10.66.77.2/32” dla pierwszego klienta. Zazwyczaj jest to po prostu następny dostępny adres IP (UWAGA, adresy nie powinny się powtarzać, ponieważ będzie to prowadziło do konfliktów i problemów z działaniem sieci)
Po wpisaniu danych dodajemy przyciskiem „OK”
Następnie musimy skompletować komplet ustawień dla klienta. Zaczynamy od klucza publicznego serwera, który będzie wspólny dla wszystkich. Znajdziemy go po stronie Mikrotika w menu „WireGuard” klikając na nazwę serwera na liście. Zaznaczony on jest czerwoną ramką:
Tworzymy przykładowy plik konfiguracji używając templatki:
[Interface] PrivateKey = NIEBIESKI_KLUCZ_GENERATOR ListenPort = 13231 Address = 10.66.77.X/24 [Peer] PublicKey = CZERWONY_KLUCZ_SERWER PresharedKey = ZIELONY_KLUCZ_GENERATOR AllowedIPs = 10.66.77.0/24 Endpoint = IP_VPS:13231
W naszym przykładzie z generatora będzie to:
[Interface] PrivateKey = QN3t4jq3hOZl/Q25wOZ1beOwtRKEidVrQDvpY2uMIEE= ListenPort = 13231 Address = 10.66.77.2/24 [Peer] PublicKey = 3qtBm4/zSM1w59mQLBzdVPxz9nzFMsGttZ1Fr4cNlhg= PresharedKey = O4QPJfgmoEVG+NBcnAaIK1XtxMEkjYlXhMXvqvBhl7o= AllowedIPs = 10.66.77.0/24 Endpoint = 194.110.5.15:13231
Tak utworzony plik zapisujemy z rozszerzeniem .conf np. vpn.conf i importujemy w oknie klienta WireGuard. Robimy to wybierając na dole „Dodaj Tunel” -> „Importuj Tunel z Pliku” i wskazując nasz plik vpn.conf:
Jeżeli poprawnie stworzyliśmy plik to tunel powinen pojawić się na liście, pozostaje kliknąc tylko „Aktywuj”:
Powinniśmy otrzymać informację, że tunel został aktywowany:
Na koniec sprawdzamy czy możemy pingować bramę sieciową na Mikrotiku (pingujemy adres IP przypisany do interface WireGuarda):
ping 10.66.77.1 Pinging 10.66.77.1 with 32 bytes of data: Reply from 10.66.77.1: bytes=32 time=14ms TTL=64 Reply from 10.66.77.1: bytes=32 time=13ms TTL=64 Reply from 10.66.77.1: bytes=32 time=14ms TTL=64 Reply from 10.66.77.1: bytes=32 time=14ms TTL=64 Ping statistics for 10.66.77.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 13ms, Maximum = 14ms, Average = 13ms
Jeżeli ping przechodzi to działa wszystko poprawnie. Tak skonfigurowany tunel będzie dostarczał bezpieczny dostęp do serwera albo inftrastruktury, jednak zanim będziemy mogli przeglądać internet z poziomu VPN musimy dodać obsługę NAT do Mikrotika oraz zmienić lekko konfigurację WireGuarda. Informacje o tym znajdziemy w innych wpisach w bazie wiedzy.