VPN IPSec IKEv2
Każdy kto ceni prywatność i bezpieczeństwa danych powinien używać połączeń vpn nie tylko na komputerze, ale także i na telefonie, tablecie. Mając router Mikrotika możemy w dość prosty sposób przygotować konfigurację bazującą na protokole IKEv2. Jeżeli nie posiadasz routera Mikrotika, bądź nie chcesz, aby Twój operator podglądał co robisz sprawdź innych dostawców VPN’a
Konfiguracja Mikrotika
Komunikację między routerem a urządzeniem z system iOS dodatkowo zabezpieczymy certyfikatami. Nie wiąże się to z żadnymi dodatkowymi kosztami. Certyfikaty wystawami za pomocą routera. W pierwszej kolejności wygenerujemy certyfikat CA, jeżeli chcemy w przyszłości unieważniać certyfiakty CA-CRL Host podajemy publiczny adres IP routera. Przechodzimy na System->Certificates
- Name: podajemy dowolnie
- Country: PL, ale jest to pole opcjonalne
- Common Name: CA
- Key Usage: zaznaczamy crl sign, key cert. sign
Generowanie certyfikatu serwera
Zostajemy w oknie z certyfikatami i znakiem plusa dodajemy nowy certyfikat. Potrzebujemy certyfiakt serwera i certyfikat dla klienta. Zaczynamy od wygenerowania certyfikatu dla serwera, czyli routera.
- Name: podajemy dowolnie
- Country: PL
- Common Name: jeżeli mamy swoją domenę z przekierowaną na router, to w tym miejscu należy ją podać. W innym przypadku należy wpisać publiczny adres IP routera
- Subject Alt. Name: publiczny adres IP routera
- Key Size: 2048 lub wyższe
- Days Valid: dowolnie, domyślnie jest 365 dni
- Key Usage: tls server
W następnym kroku podpisujemy wygenerowany certyfikat wykorzystując wcześniej przygotowany certyfikat CA. Jako CA CRL Host ponownie podajemy publiczny adres IP routera. Jedną z ostatnich czynności jest zaznaczenie pola Trusted.
Generowanie certyfikatu klienta
Ponownie klikamy na znak plusa i przechodzimy do generowania certyfikatu dla klienta. Każdy klient powinien posiadać swój indywidualny certyfikat.
- Name: podajemy dowolnie
- Common Name: dowolna nazwa
- Key Size: 2048 lub wyższe
- Days Valid: domyślnie 1 rok, możemy dowolnie zmienić
- Key Usage: tls client
Analogicznie jak przy certyfikacie serwera podpisujemy wcześniej wygenerowanym CA. Po zakończeniu podpisywania zaznaczamy pole Trusted
Eksportowanie certyfikatów
Kolejnym etapem jest wyeksportowanie certyfikatów na końcowe urządzenie. Potrzebny jest certyfikat CA oraz certyfikat klienta. Klikając prawym przyciskiem myszy na CA wybieramy opcje eksport. Podobną czynność wykonujemy dla certyfikatu klienta, ale w tym przypadku typ ustawiamy na PKCS12 i podajemy hasło. Dzięki temu w jednym pliku mamy certyfikat i klucz. Najprostszą metodą przesłania certyfikatów na urządzenie jest dodanie ich jako załączniki w poczcie. Jeżeli na telefonie bądź na tablecie macie skonfigurowaną pocztę poprzez domyślną aplikację mail, instalacja zajmuje kilka minut. Wrócimy do tego w dalszej częsci artykułu.
Przygotowanie adresacji dla użytkowników VPN’a
Z menu wybieramy IP->pool i znakiem plusa dodajemy nową pulę. Adresację możemy ustawić dowolną.
Konfigurowanie IPSec
Przechodzimy na IP->IPSec i zaczynamy od zmiany domyślnego wpisu IPsec Proposal
- Auth. Algorithms: sha256
- Encr. Algorithms: aes-256 cbc
- Lifetime: 00:30:00
- PFS Group: none
Następnie tworzymy nowy Peer Profile
- Name: podajemy dowolnie
- Hash Algorithms: sha256
- Encryption Algorithms: aes-192, aes-256
- DH Group: modp2048
- Proposal Check: obey
- Lifetime: 1d
- Nat T : zaznaczamy
Kolejnym krokiem jest utworzenie Peer’a. Zmieniamy zakładkę na Peers i znakiem plusa dodajemy nowy wpis.
- Address: chcemy, aby każdy(kto ma certyfikat) mógł podłączyć się do VPN’a, dlatego zostawiamy 0.0.0.0/0
- Profile: wcześniej utworzony profil
- Auth, Method: rsa signature
- Exchange Mode: IKE2
- Passive: zaznaczamy
- Certificate: wskazujemy certyfikat serwera
- Remote Certificate: wskazujemy certyfikat klienta
- Policy Template Group: default
- Send Initial Contact: odznaczamy
- My ID Type: fqdn
- My ID: wartość jaką podaliśmy w polu common name przy generowaniu certyfikatu serwera
- Mode Configuration: cfg1
- Generate Policy: port strict
Konfiguracja iPhone, iPad
Na urządzeniach końcowych konfiguracja jest dużo prostsza. Tak jak wspomniałem trochę wcześniej najszybszą metodą na zainstalowanie certyfikatów jest wysyłka ich mailem. W przypadku domyślnej aplikacji mail w urządzeniach iOS, można bardzo łatwo zainstalować certyfikaty. Wystarczy otworzyć certyfikaty z załącznika.
Bardzo ważne jest, aby w polu ID zdalny ustawić taką samą nazwę jaką mamy przy Common Name certyfikatu serwera oraz pola My ID w ustawieniach Peer Profile.
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 AC Lite , hAP AC, RB4011, RB260GS, RB2011
LTE: SXT LTE kit, SXT LTE6 kit, LHG 5, LHG LTE kit
Extender/Repeater: mAP lite, mAP
POE: hEX PoE
LAB: hEX lite
Średnia/Duża firma: CCR1036-12G-4S
Hi. Great video… PLEASE HELP ME 😉
1. Should any ports be open?
2. Any rules in firewall or nat?
Cześć,
przebrnąłem przez Twój poradnik konfiguracji L2TP – działa. Zachciało mi się teraz certyfikatów i mam taki problem, że router (RB450G) odczuca połączenie od iOS 12.3.1; w logach można przeczytać: “ipsec,error EAP not configured”.
W internetach nie znalazłem podpowiedzi.
Poradź.
Hehehe, odpowiem sam sobie – w iPhonie w konfiguracji VPN ustawiłem uwierzytelnianie użytkownika certyfikatem, a powinno być “brak”. Teraz działa:)
Dzięki, że udostępniłeś co pomogło:)
Niestety w moim Microtiku nie ma opcji w Auth. Method: “RSA Signature”
Najbardziej podobne to:
“Digital signature” i “RSA Key”
Proszę o pomoc 🙂
Jedynie co wstępnie zadziałało to “Digital Signature” i zaznaczenie w DH Group: “modp1024”.
Wtedy przynajmniej przy połączeniu w logu mam informację:
“Indentity not found for peer: client.ipsec”
Nie wiem w czym problem.
Frazę “client.ipsec” wpisałem w certyfikacie klienta według instrukcji.
Jest szansa to naprawić?
Czy da się to zrobić na zmiennym publicznym IP?
Niestety na zmienny adresie IP nie uda się zestawić tunelu.
1. Czy da się to zrobić na publicznym IP?
2. Moja wersja RouterOS (6.46.2) różni się ustawieniami IPSec.
1. Tak, ale musi być to stały adres IP
2. Przygotowuje nowy materiał w oparciu o najnowszy RouterOS
Ad.1. publicznym i zmiennym IP oczywiście…
A co mam przestawić, żeby po połączeniu z Androida nie pchał mi całego ruchu internetowego przez VPN?
sam sobie odpowiem: bez wstrzykniętych tras działa routing do wszystkich podsieci, do których trasy ma Mikrotik (ale cały ruch idzie przez vpn), z wstrzykniętymi trasami ruch sieciowy nie idzie przez vpn ale działa tylko pierwsza wstrzyknięta trasa. Ot taki mały bug MT.
Dlaczego stosowana jest opcja “Uwierz. użytkownika: Brak”, skoro każdy wg opisu powinien posiadać swój własny certyfikat?
Te 2 opcje ustawienia, który certyfikat ma zostać użyty przez iOS wynikają z IPsec czy jest to jakaś fanaberia Apple?
Czy ta metoda pozwala na połączenie tunelem vpn więcej niż jednego komputera z tej samej lokalizacji (tego samego ip zewnętrznego)?
Przy L2TP z IPsec występuje takie ograniczenie.
Cześć,
mam pytanie dot. certyfikatow dla ikev2
Odwołałem certyfikat jednemu użytkownikowi , a temu nadal tunel się zestawia.
Jako CA CRL host podałem wew. IP serwera.
Czy to może być przyczyną?
Jeżeli jest to wewnętrzny adres, to lista odwołanych certów zostanie zaktualizowana po podłączenia się do tunelu. Użytkownik musi mieć także routing do tego adresu.
Dzieki za fajny tutorial.
Czy moglbys zrobic cos co spowoduje ze iphone 13.3 zadziala z mikrotikiem 6.47 poprzez IPSEC ? Niestety nie potrafie tego ustawic, jest blad w fazie proposal.
Sprawdzę jak ipsec zachowuje się na ios 13.3
Fajny poradnik, dzięki.
Z windowsa łączy się bez problemowo lecz iOS wypluwa mi w logu:
“identity not found for peer: ADDR6: ********************”
co zrobiłem nie tak?
Udalo Tobie sie to ogarnac ?