Konfiguracja serwera
Protokół IKEv2 do działania nie wymaga włączonej paczki PPP w systemie.
Konfigurację w RouterOS rozpoczynamy od utworzenia nowej puli adresowej na potrzeby VPN (adresy z tej puli będą przydzielane klientom). Robimy to w menu IP->Pool dodając nowy wpis.
Właściwą konfigurację zaczynamy w menu IP->IPsec.
Najpierw przechodzimy do zakładki „Mode Configs” gdzie dodajemy nową konfigurację:
- Name – nazwa konfiguracji
- Responder – zaznaczamy (po zaznaczeniu okno zmieni wygląd pokazując poniższe opcje).
- Address Pool – wybieramy wcześniej utworzoną pulę adresów
- Address Prefix Length – 32
- Split Include – tutaj podajemy adresy lub sieci które mają być podane klientowi jako dostępne przez tunel (IKEv2 jako jeden z nielicznych posiada możliwość wstrzykiwania klientowi tras routing’u). Jednak ze względu na różne działanie klientów wpisy te należy dopasować do klienta i przeznaczenia tunelu (więcej info poniżej przy opisie poszczególnych klientów).
- System DNS – jeżeli zaznaczymy klient otrzyma adresy serwerów DNS takie jak RouterOS ma zdefiniowane w menu IP->DNS.
- Static DNS (dostępne przy odznaczonej opcji „System DNS”) – definiuje wprost adresy serwerów DNS jakie otrzyma klient.
Jeżeli stosujemy konfigurację z przekazywanymi trasami (a nie wysyłaniem całego ruchu przez tunel) i chcemy aby klient korzystał z serwera DNS podanego w konfiguracji musimy również przekazać jego adres jako „Split Include” (może być jako część większej sieci).
Następnie przechodzimy do zakładki Profiles gdzie dodajemy nowy profil:
- Name – nazwa profilu
- Hash Algorithm – sha256
- Encrytpion Algorithm – aes-256
- DH Group – modp1024, modp2048
- Proposal Check – strict
Kolejną zakładką do której przechodzimy jest zakładka Peers. Tworzymy tam nowego Peer’a:
- Name – nazwa peer’a
- Address – ze względu że chcemy mieć możliwość podłączenia się do serwera z dowolnego miejsca na świecie aktywujemy pole i pozostawiamy wartość 0.0.0.0/0 (::/0).
- Profile – wybieramy wcześniej utworzony profil.
- Exchange Mode – IKE2
- Passive – zaznaczamy
- Send INITIAL_CONTACT – odznaczamy
Następnie przechodzimy do zakładki Groups gdzie dodajemy nową grupę. Ogranicza się to tylko do podania jej nazwy.
Następnie przechodzimy do zakładki Proposals gdzie dodajemy nowy wpis:
- Name – nazwa
- Auth. Algorithms – sha1, sha256
- Encr. Algorithms – „aes-256 cbc”
- PFS Group – można spóbować wykorzystać modp2048 natomiast nie wszyscy klienci obsługują PFS także może się okazać konieczne jej wyłączenie (none).
Kolejnym krokiem jest dodanie polityki w zakładce Policies:
Zakładka General:
- Template – zaznaczamy ponieważ ta polityka będzie tylko szablonem do dynamicznie tworzonych polityk po podłączeniu każdego klienta (po zaznaczeniu okno zmieni wygląd).
- Dst. Address – podajemy zakres adresowy (jako sieć) w którym będą pracować klienci. Co prawda przy naszej puli (11 adresów) moglibyśmy wpisać siec 192.168.77.96/28 i było by to jak najbardziej poprawne jednak ja założyłem przyszłościowo całą sieć /24.
- Group – wybieramy wcześniej utworzoną grupę.
Zakładka Action:
- Proposal – wybieramy utworzone wcześniej reguły w zakładce Proposals
Na koniec wracamy do zakładki Identities w głównym oknie IPsec:
- Peer – wybieramy utworzonego wcześniej peer’a.
- Auth. Method – digital signature (czyli uwierzytelnienie za pomocą certyfikatów).
- Certificate – wybieramy certyfikat używany po stronie serwera.
- Remote Certificate – wybieramy certyfikat którym ma się przedstawić klient.
- Policy Template Group – wybieramy utworzoną wcześniej grupę
- Match By – certificate (uwierzytelnienie odbywać się będzie poprzez certyfikat klienta).
- Mode Configuration – wybieramy wcześniej utworzoną konfigurację.
- Generate Policy – wybieramy „port strict”.
Firewall i NAT
Protokół IKEv2 wymaga otwartego:
- portu UDP 500
- portu UDP 4500
- protokołu 50 (ipsec-esp)
add action=accept chain=input protocol=ipsec-esp add action=accept chain=input dst-port=500 protocol=udp add action=accept chain=input dst-port=4500 protocol=udp
Dodatkowo konieczne jest utworzenie src-nat dla adresów prywatnych z tunelu wychodzących do Internetu.