Mikrotik od zera – VPN Site-to-Site IPSec IKEv2 Certyfikat #09

Mikrotik od zera – VPN Site-to-Site IPSec IKEv2 Certyfikat #09

Tunel VPN Site-to-Site IPSec IKEv2 z Certyfikatami

Konfiguracja jest identyczna jak w przypadku wcześniejszego materiału, dlatego omówię, tylko przygotowanie samych certyfikatów oraz ich instalacje na dwóch routerach. Tunel IPSec z wykorzystaniem certyfikatów czyli autoryzacja metodą X.509 jest uważana za jedną najbezpieczniejszych, dlatego zalecam konfigurację tunelów vpn ipsec właśnie z wykorzystaniem certyfikatów.

Wprowadzenie do aurotyzacji X.509

Zanim zaczniemy konfiguracje routera Mikrotik, zaczniemy od małego wprowadzania jak działa autoryzacja X.509 i skąd wziąć certyfikaty. Najważniejszą rzeczą jaką powinieneś zapamiętać to hierarchia certyfikatów. Na najwyższym poziomie mam Urząd Certyfikacji Root-CA jego jedynym zadaniem jest wystawianie i podpisywanie Urzędów Certyfikacji(CA) niższych poziomów. Infrastrukturę Klucza Publicznego(PKI) możemy zbudować we własnym zakresie w oparciu o serwer z systemem Windows Server bądź zakupić usługę w chmurze, co niestety wiąże się z dużymi kosztami. Możemy także skorzystać z Mikrotika, co zaprezentuje w tym materiale. W skład PKI wchodzi:

  • Urząd Rejestracji(RA)
  • Urząd Certyfikacji(CA)
  • Repozytorium kluczy, certyfikatów i listy odwołanych certyfikatów(CRL)

Generowanie certyfikatu CA

Wykorzystamy router Mikrotika jako serwer certyfikatów. Z bocznego menu wybieramy System->Certificates i znakiem plus dodajemy nowy certyfikat, który posłuży jak CA. Jako Root-CA użyjemy router Mikrotika.

  • Name: podajemy dowolnie
  • Country: PL
  • Common Name: w przypadku certyfikatu CA, możemy zastosować dowolną nazwę
  • Key Size: zostawiamy 2048
  • Days Valid: w przypadku lokalnego CA możemy nawet wybrać 5 lat

Key Usage zostawiamy przy domyślnych ustawieniach. W następnym kroku podpisujemy wystawiony certyfikat CA poprzez wydanie polecenia w terminalu:

 /certificate sign Router1-CA ca-crl-host=publiczny_adres_ip

Mikrotik generowanie certyfikatu CA
Mikrotik generowanie certyfikatu CA
Mikrotik podpisywanie certyfikatu CA

Generowanie certyfikatu serwera

Ponownie klikamy na znak plusa i dodajemy nowy certyfikat. W tym kroku przygotujemy certyfikat dla serwera.

  • Name: podajemy dowolnie
  • Country: PL
  • Common Name: jeżeli posiadamy własną domenę, w której rekord A wskazuje na adres IP routera możemy, to pole uzupełnić nazwą domenową
  • Subject Alt. Name: Niektóre urządzenia weryfikują dodatkowe pola, dlatego warto także je uzupełnić.

Key Usage zmieniamy na tls client oraz tls server.

Ostatnim etapem przygotowania certyfikatu jest jego podpisanie przez wcześniej wystawione CA. Klikamy prawym przyciskiem myszny na certyfikat i wybieramy opcje sign.

  • Certificate: wskazujemy certyfikat, który ma zostać podpisany
  • CA: wybieramy wcześniej przygotowane CA
  • CA CRL Host: adres ip routera. Lista CRL jest bardzo ważna w przypadku unieważnia certyfikatów
Mikrotik generowanie certyfikatu serwera
Mikrotik generowanie certyfikatu serwera
Mikrotik podpisywanie certyfikatu serwera

Generowanie certyfikatu klienta

Klikamy w znak plus i przechodzimy do przygotowania parametrów certyfikatu dla klienta. Parametry ustawiamy podobnie jak dla certyfikatu serwera, jeżeli router posiada publiczny statyczny adres IP, także możemy umieścić go w certyfikacie. W przypadku Key Usage zostawiamy tylko TLS Client

Mikrotik generowanie certyfikatu dla klienta
Mikrotik generowanie certyfikatu dla klienta
Mikrotik podpisywanie certyfikatu klienta

Eksportowanie certyfikatów klienta

Poprawne zestawienie tunelu wymaga prawidłowego certyfikatu klienta. Przygotowany wcześniej certyfikat należy wyeksportować i przekazać do klienta. Klikamy prawym przyciskiem myszy na certyfikat klienta i wybieramy Export.

  • Certificate: wskazujemy certyfikat klienta
  • Type: PKCS12, ponieważ wraz z certyfikatem klienta zostanie wyeksportowany cały chain certyfikatów, włącznie z CA
  • Export Passphare: dowolne hasło
Mikrotik eksportowanie certyfikatu

Konfiguracja Mikrotika

Całość konfiguracji jest praktycznie identyczna jak w przypadku konfigurowania połączenia z wykorzystaniem klucza pre shared key. Zasadniczą różnicą jest zmiana metody autoryzacji przy konfigurowaniu Identities.

  • Auth. Method: digital signature
  • Certificate: wskazujemy certyfikat serwera
  • Remote Certificate: możemy ograniczyć połączenie do konkretnego certyfikatu. Jeżeli zostawimy pole na none, router zaakceptujesz dowolny certyfikat podpisany przez nasze CA.
Mikrotik konfiguracja IPSec Identity

Import certyfikatu klienta na drugim routerze

Wyeksportowane certyfikaty należy dodać do routera klienckiego. Podobnie jak w przypadku eksportu, certyfikat możemy dodać za pomocą drag&drop przenosząc plik do Files w Mikrotiku. Następnie przechodzimy na System->Certificates i klikamy w import. Po poprawnym zaimportowaniu certyfikatów, możemy zmienić ich wyświetlaną nazwę na coś bardziej przyjaznego.

Mikrotik importowanie certyfikatu
Mikrotik widok listy certyfikatów

Konfiguracja drugiego routera

Konfiguracja połączenia ipsec na routerze klienta wygląda praktycznie tak samo jak przy pierwszym routerze. Ustawiamy Phase1 i Phase2 na tych samych parametrach. Jedyna różnica występuje przy Identities, gdzie musimy wskazać certyfikat klienta.

Mikrotik konfiguracja IPSec Identity

Polecany sprzęt

Z własnego doświadczenia mogę wam polecić poniższy sprzęt, z podziałem na ewentualne przeznaczenie routera.

Do domu i małej firmy(SOHO): hAP AX Lite , hAP AC3, RB4011, RB260GS, RB2011
hAP AC3 LTE, hAP AX2, hAP AX3, L009UiGS-2HaxD-IN, RB5009UG+S+IN, Audience

LTE: SXT LTE kit, SXT LTE6 kit, LHG 5, LHG LTE kit, Audience LTE, Chateau LTE6 ax, LTAP LTE6

Access Pointy: mAP lite, mAP, cAP AX, cAP XL AC

POE: hEX PoE

LAB: hEX lite

Średnia/Duża firma: CCR1036-12G-4S, CCR2004-16G-2S+

Materiał Video

12 Comments

  1. Marek

    Mam stworzonego firewalla typu Zone Based Firewall, któremu odpowiadają odpowiednie grupy interfejsów Inside, Outside, DMZ. Stworzyłem na mikrotiku serwer VPN Site-to-Client. Teraz pytanko… W grupie „outside to firewall” stworzyłem reguły przepuszczające protokół ipsec-esp oraz odpowiednie porty. VPN się łączy, internet działa. Nie ma jednak kontaktu z lokalnymi zasobami, oprócz DMZ. Również w grupie „firewall to inside” cały ruch jest puszczony. Generalnie wygląda to tak, że adresacja VPNa nie jest dodana do żadnej z grup (inside, outside, dmz), przez co jest blokowana. Pojawił się jednak problem, bo VPN po IPSecu nie ma żadnego przypisanego interfejsu (np. OpenVPN tworzy po połączeniu widoczny interfejs, który można odpowiednio przypisać). Czy da się to jakoś zrobić?

  2. Robert

    Dzień dobry,
    Przeprowadziłem konfigurację na dwóch swoich mikrotikach, połaczenie jest zestawione jednak z żadnej lokalizacji nie umiem wywołać urządzenia z drugiej :(, jakies sugestie?

  3. Robert

    Dzień dobry,
    Wprowadzenie poniższych rule’i przyniosło ruch w tunelu :), przy czym ostatnia pochodzi z tego artykułu
    /ip firewall filter>
    add chain=input action=accept protocol=ipsec-esp
    add chain=forward action=accept src-address=(Local LAN) dst-address=(Remote LAN)
    add chain=forward action=accept src-address=(Remote LAN) dst-address=(Local LAN)
    add chain=input action=accept protocol=udp in-interface=(WAN Interface) dst-port=500,4500

  4. Marcin

    Witam,

    Czy mógłby Pan przygotować tutorial w jaki sposób przygotować tunel Site2Site IKE2 na Mikrotikach dla scenariusza, gdy po jednej ze stron router jest za NATem z dynamicznie przydzielanym adresem Tunel z opcją SplitTunnel? Taki jakby „roadwarrior”, że niezależnie gdzie wepniemy jeden z Mikrotików to pomiędzy nimi zestawimy tunel typu Site2Site.

    Byłbym wdzięczny, w sieci można znaleźć kilka przykładów, ale w większości są to stare opracowania na starsze wersje ROS, a z doświadczenia wiem, że każdy scenariusz zrealizowany na Pańskich tutorialach po prostu działa.

  5. Marcin

    A można wiedzieć w jakim okresie czasowym można się spodziewać?

  6. Marcin

    Super. Już czekam z niecierpliwością. Proszę w tutorialu uwzględnić, ze takich Warriorów za NATem może być kilka łączących się do centrali, i że za każdym razem serwery w centrali będą widzieć to co jest na drugich końcach tuneli

  7. Julian

    A propos regul firewalla, dodałbym jeszcze, że w moim przypadku, mimo wykonania wszystkiego wg powyzszego poradnika, ruch w tunelu się nie odbywał. Koniecznym okazało się dodatnie następujących wpisów w Firewallu:

    add action=accept chain=forward ipsec-policy=in,ipsec
    add action=accept chain=forward ipsec-policy=out,ipsec

    Powyższą informację wykopałem w tym wątku: https://forum.mikrotik.com/viewtopic.php?t=154072

  8. Julian

    I może jeszcze jedna uwaga: testujcie dzialanie tunelu (ping/traceroute) z HOSTÓW, nie z Mikrotików… Pingi z routerów nie lecą (TTL exceeded), a z hostów – jak najbardziej tak.

  9. Dariusz

    Witam. Czy jest możliwość żeby bezpośrednio z poziomu routera, przypisać adres dynamiczny (nie mam stałego i włączę od po roku o stały i nic) do domeny ? Np przez clodflare albo coś podobnego ?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *