Vytvoření šifrovaného tunelu Ipsec na směrovačích Cisco a Mikrotik Žemba Zdeněk, Kozelský Martin Abstrakt: Cílem tohoto semestrálního projektu bylo ověřit možnosti šfrovaného spojení mezi směrovači Cisco a Mikrotik. Projekt je rozdělen na dvě části, teoretickou, která obsahuje shrnutí důležitých pojmů a praktickou. V praktické části je nejprve podrobně vysvětlena možnost nastavení Mikrotiku v grafické nadstavbě Winbox. Dále pak konfigurace směrovače Mikrotik, která je znázorněna jak v příkazové řádce, tak přes grafickou nadstavbu Winbox. Následuje konfigurace směrovače Cisco pomocí příkazové řádky a analýza provozu. Klíčová slova: Cisco, Mikrotik, IPsec, IKE, ISAKMP
1 Teorie...................................................................................................2 2 Vysvětlení některých důležitých pojmů...............................................2 3 Případová studie..................................................................................3 3.1 Možnosti konfigurace Mikrotik (winbox).....................................4 3.2 Nastavení routeru RB - Mikrotik.................................................7 3.3 Nastavení routeru RA - Cisco...................................................11 3.4 Analýza provozu.......................................................................11 4 Závěr..................................................................................................12
prosinec 2008
Technologie počítačových sítí
1/12
1 Teorie IPsec se dá charakterizovat jako kompletní řešení zabezpečení IP provozu na úrovni 3. vrstvy. Je to skupina protokolů obstarávající zabezpečení komunikace. Bohužel souhrn těchto protokolů vytváří velmi komplikovaný celek. Jednotlivé implementace jsou tak náchylnější k chybám, také díky tomu, že jednotlivé platformy podporující IPsec se liší v míře implementace IPsecu. IPsec lze rozdělit podle režimu na: • transportní – zabezpečuje pouze datovou část paketu, z toho vyplívá, že koncové body tunelu musí být schopné vzájemné adresace (žádný NAT apod.). Transportní režim lze nasadit pouze u topologie user-user. V praxi se příliš nevyužívá. • tunelový -
nachází mnohem širší uplatnění, s jeho pomocí lze realizovat topologie typu user-user, user-network, network-network. Encapsulací prochází celý paket a před něj se přidává nová hlavička.
a podle použitého protokolu na: • AH (authentication protocol) – zabezpečuje IP pakety, jejich integritu, provádí autentizaci a dokáže zamezit opakování paketů (tzv. anti-replay attack). AH sice provádí autentizaci, ale nešifruje, proto se dnešní době příliš nepoužívá. • ESP (encapsulating security payload) – na rozdíl od AH provádí šifrování a dokáže, podobně jako AH, autentizovat odesílatele. Obsahuje také ochranu před opakováním.
2 Vysvětlení některých důležitých pojmů SPI (security parameter index) – identifikátor přesně definovaný pro každý tunel zvlášť, definuje použité šifrovací a autentizační protokoly. Každý datagram pak obsahuje SPI. SPI je tak ukazatelem do tabulky, ve které jsou uvedeny použité šifrovací a kontrolní funkce a konkrétní hodnoty klíčů. SA (security association) –
prosinec 2008
SA je jedinečná pro každý tunel. Udává jaké budou použity bezpečnostní protokoly, jaké budou použity šifrovací algoritmy a definuje, jaké se použijí klíče pro komunikaci.
Technologie počítačových sítí
2/12
ISAKMP –
(Internet Association and Key Management Protokol) SA lze konfigurovat manuálně, ale to není příliš vhodné, zvláště pokud spravujeme síť s mnoha klienty, je ruční správa klíčů dost nepohodlná. ISAKMP toto řeší, sám spravuje databázi SA. Zprostředkovává dohodu mezi dvěma peery, tzn. jaké protokoly a jaké šifrovací algoritmy se použijí.
IKE (Internet Key Exchange) -
IKE se stará o vlastní výměnu vygenerovaných klíčů. Jeho základem je tzv. Diffie-Hellmanův algoritmus.
Sestavování spojení se skládá ze dvou fází: •1. fáze – oba konce si vymění své předsdílené klíče v zašifrované podobě, pomocí nich si vytvářejí šifrovací klíče pro 2. fázi. Poté se zřizuje bezpečný kanál pro další komunikaci protokolem ISAKMP. •2. fáze – oba peery se vzájemně autentizují podle autentizační metody na které se dohodli. Po šifrovaném kanálu se vyjednávají parametry pro protokoly AH nebo ESP.
3 Případová studie V praktické části úlohy jsme vytvořili šifrované spojení mezi routery RA a RB. Jedná se o tunelový režim, protože propojujeme dvě sítě. Ze schématu je patrné, že spojení mezi PC1 a RA a mezi PC2 a RB je nešifrované.
PC 1
192.168.3.0/24 3.2
RB
RA 172.16.0.0/30 0.2
0.1
3.1
nešifrovaný provoz
192.168.1.0/24
IPsec tunel
1.1
PC 2
1.2
nešifrovaný provoz
Nejprve pro vysvětlení popíši možnosti nastavení Mikrotiku. Vyzkoušeli jsme dvě možnosti zapojení: Mikrotik – Mikrotik a Cisco - Mikrotik. V další kapitole je popsáno nastavení Mikrotiku v případě topologie Mikrotik – Mikrotik, pro názornost je postačující popis jen jedné strany tunelu – router RB. V další kapitole jsme jako router RA použili Cisco router (topologie Cisco - Mikrotik) Mikrotik jsme konfigurovali grafickou nadstavbou Winbox, Cisco jsme konfigurovali přes terminálový program Teraterm. Jako Mikrotik platformu jsme použili RouterBoard řady 532A a Cisco 2801.
prosinec 2008
Technologie počítačových sítí
3/12
3.1 Možnosti konfigurace Mikrotik (winbox) Nejprve je nutné zadat rozsah zdrojových a cílových IP adres se má šifrovat, je možné šifrovat provoz běžící jen na některých portech, nebo šifrovat provoz určitých protokolů. Je potřeba také určit zacházení s pakety, pro které ještě není vytvořeno žádné SA. Typ použitého IPsec protokolu, typ použitého zabezpečovacího protokolu atd. (záložka Policy). V záložce Peer nastavíme IP adresu druhého konce tunelu a potřebné nastavení ISAKMP/IKE, tzn. předsdílený klíč, použité šifrovací protokoly atd. Posledním důležitým nastavením je určení zabezpečovacích a šifrovacích metod využitých k encapsulaci a autentizaci provozu. Metody je možné kombinovat, přičemž se obě strany dohodnou na metodách, které mají v záložce Proposal povoleny. U každé záložky budou podrobněji rozebrány možnosti nastavení (záložka Proposal).
Policy
Src. Address: zdrojová adresa ve tvaru x.x.x.x/maska:port Dst. Address: cílová adresa ve tvaru: x.x.x.x/maska:port Protocol: protokol který chceme šifrovat Action: určuje pravidlo, které se bude týkat provozu vybraného podle záložky General. discard – zahazuje provoz encrypt – kryptuje provoz none – bez pravidla Level: určuje zacházení s pakety,ke kterým není přiřazená bezpečnostní asociace (SA) use – přeskočí transformaci, nezahazuje pakety ani nezískává SA z IKE daemonu require – zahazuje pakety, snaží se získat SA unique – přeskočí transformaci, získává SA z IKE démonu IPsec Protocols: typ použitého zabezpečovacího protokolu – na výběr je zde AH, ESP, nebo kombinace AH a ESP(AH je aplikováno později než ESP).
prosinec 2008
Technologie počítačových sítí
4/12
Tunnel: aktivace/deaktivace tunelového módu. V tunelovém módu můžeme propojit přes IPsec dvě sítě, nebo klienta, který je za routerem. IP hlavičky nemusí být shodné s SA src. a dst. address. Šifrovaná je komunikace jen mezi SA src. a SA dst. adresami. V netunelovém módu (transportní mód) mohou projít encapsulací jedině pakety, které mají zdrojovou i cílovou IP hlavičku shodnou s SA Src. Address a SA Dst. Address polem IPsec paketu. Transportní mód může pracovat jedině s pakety, jehož příjemcem, nebo odesílatelem je IPsec peer. SA Src Address: zdroj SA - pole využívané SA k vytvoření hlavičky kryptovaného paketu SA Dst. Address: cíl SA - pole využívané SA k vytvoření hlavičky kryptovaného paketu Proposal: název kombinace autentizačních a šifrovacích metod (obdoba transform-setu u platformy Cisco) Manual SA: možnost zadání manuálního SA profilu, podle kterého se budou vytvářet SA pro zadané pravidlo. Zadáváme v případě ručního zadávání klíčů.
Peer V záložce Peer konfigurujeme nastavení, které bude použito k vytvoření spojení mezi IKE daemony. Toto nastavení bude použito k výměně klíčů a algoritmů pro dohadování SA. Toto nastavení neovlivňuje již vytvořené SA.
prosinec 2008
Technologie počítačových sítí
5/12
Address: adresa (rozsah adres) na kterou se bude provoz šifrovat Port: UDP port využívaný protokolem ISAKMP Auth. Method: autentizační metoda - pre-shared key – použití předsdíleného klíče - rsa signature – použití digitálního podpisu Exchange Mode: main – v první fázi se vyjednávají obecné parametry komunikace a druhá fáze již probíhá šifrovaně. aggressive – zprávy první a druhé fáze se přenáší současně. Důsledkem je fakt, že v tomto případě komunikace neprobíhá šifrovaně, protože z důvodu současného průběhu první fáze nejsou ještě známy parametry potřebné pro šifrování přenosu. Send Initial Contact – tímto určíme, která strana bude iniciátorem spojení, tato strana také navrhuje dobu životnosti SA. Nat traversal – zabalení ESP hlavičky do UDP hlavičky. Použití v případě umístění klienta za NATem, kdy se mění zdrojová IP adresa, ale zašifrovaná zdrojová IP adresa pomocí IKE protokolu je privátní IP adresa klienta. V případě nepoužití NATT zjistí stroj na druhé straně IPsec kanálu nesoulad mezi zdrojovými IP adresami a paket zahodí. Proposal Check: životnost SA (týká se jen phase 2) claim exact – obey – strict –
nastavení nejkratší doby životnosti nastavení pevně dané doby životnosti podle položky Lifetime akceptuje jakoukoli životnost navrhnutou iniciátorem pokud iniciátor navrhuje delší dobu životnosti, tak ji odmítá. Jinak přijímá navrhovanou životnost iniciátorem. Doporučená hodnota podle výrobce.
Hash Algorithm: md5 nebo sha (V Ipsecu se používá pro kontrolu, že paket nebyl modifikován. Po vytvoření, zašifrování paketu se číslo jeho velikosti zahashuje a připojí se k paketu. Při přijetí paketu se číslo opět kontroluje, tj. velikost paketu se zahashuje a spočítaná hash se porovná s obdrženou.) Encryption Algorithm: 3des, des, aes (algoritmus šifrování dat, des je zastaralý, lehce rozluštitelný. 3des při použití 3x dvěma klíči je sice bezpečnější, ale náročný na výpočetní výkon. Aes je nejvhodnější k použití, bezpečnější než des a rychlejší než 3des.) DH group: číslo používané pro počítání klíčů, výrobce doporučuje použití modp1024 (1024 určuje kolika bitové číslo se použije k počítání klíčů) DPD Interval: Dead Peer Detection (detekce ztracených spojení, v případě ztráty spojení DPD přeruší posílání dat a smaže SA přiřazené tomuto spojení.)
prosinec 2008
Technologie počítačových sítí
6/12
Proposal
Auth. Algorithms: výběr autentizačních metod, které chceme uplatnit. Encr. Algorithms: výběr šifrovacích metod, které chceme uplatnit. Lifetime: životnost klíče, po skončení životnosti si obě strany předají nové klíče PFS Group: Perfect Forward Secrecy (udává, jestli se v quick módu mají použít čísla vygenerovaná v main módu. Pokud je na yes, čísla se generují znovu. Je to bezpečnější, ale trochu náročnější na výkon a čas při sestavování spojení. Při dnešních výkonech je zdržení nepostřehnutelné)
3.2 Nastavení routeru RB - Mikrotik
Policy Nejprve jsme vytvořili pravidlo, že pakety se zdrojovou IP adresou pocházející ze sítě 192.168.1.0/24 a cílovou adresou sítě 192.168.3.0/24 se mají šifrovat. Nastavili jsme šifrování všech protokolů a šifrování provozu na všech portech. Provoz, který ještě nemá přiřazené žádné SA se bude zahazovat,dokud se příslušné SA nevytvoří. IPsec protokol jsme použili ESP a adresy konce tunelu jsou určeny v SA src. address a SA dst. address. Tím, že jsme vybrali v kolonce Manual SA: none, jsme nastavili vytvoření a výměnu klíčů pomocí ISAKMP/IKE.
prosinec 2008
Technologie počítačových sítí
7/12
zápis v terminálu: ip ipsec policy add src-address=192.168.1.0/24 dst-address=192.168.3.0/24 \ sa-src-address=172.16.0.2 sa-dst-address=172.16.0.1 action=encrypt \ tunnel=yes
Peer Zde je jsme nastavili IP adresu Peera, tzn. IP adresu druhého konce tunelu – router RA. Port přes který si budou jednotlivé strany vyjednávat parametry spojení pomocí ISAKMP protokolu. O výměnu klíčů se stará protokol IKE, protože používáme autentizaci předsdíleným klíčem, je nutné jej zadat do pole Secret. Echange mode jsme nastavili na main, tudíž domlouvání parametrů a klíčů a sestavování šifrovaných tunelů je rozděleno na dvě fáze, viz. kapitola 3.4.
prosinec 2008
Technologie počítačových sítí
8/12
zápis v terminálu: ip ipsec peer add address=172.16.0.1 secret=”abcd” \ dh-group=modp1024 hash-algorithm=md5 enc-algorithm=3des
Proposal Název jsme ponechali default. Určili jsme, že pro autentizaci je možno použít algoritmy md5 a sha1. Pro šifrování pak algoritmy 3des a aes-256. Které algoritmy se použijí záleží na dohodě obou koncových zařízení tunelu (peerů). Pokud označíme více možností, vyberou si vždy takové algoritmy, které mají společné. Životnost SA jsme nastavili na 1 minutu.
prosinec 2008
Technologie počítačových sítí
9/12
zápis v terminálu: ip ipsec proposal add name="default" auth-algorithms=md5,sha1 \ enc-algorithms=3des,aes-256 lifetime=1m lifebytes=0 pfs-group=no \ disabled=no
Kontrola šifrovacích klíčů:
Z obrázku lze vyčíst, že ačkoli jsme zadali v proposal více druhů autorizačních a šifrovacích algoritmů, tak mikrotik vybral podle něj vhodnější md5 a 3des. V dolní části okna lze vidět autorizační a šifrovací klíče.
prosinec 2008
Technologie počítačových sítí
10/12
3.3 Nastavení routeru RA - Cisco
Nejprve nastavíme ACL (access-list), tímto určíme na který provoz se má šifrování IPsec aplikovat. V našem případě šifrujeme všechen provoz mezi sítěmi 192.168.3.0 a 192.168.1.0. (config)# access-list 101 permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255
Dále je potřeba nastavit soubor pravidel, jaké šifrovací protokoly se budou využívat. Zde pro šifrování provozu je použito protokolu esp a šifrovací metody 3des. Pro autentizaci je rovněž použito esp a autentizační metody sha. (config)# crypto ipsec transform-set ts esp-3des esp-sha-hmac
Nyní se jednotlivé konfigurace spojí dohromady v jednu mapu – „mapa”. Mapě jsme přiřadili acces-list s názvem 101, soubor pravidel ts a peer s IP adresou 172.16.0.2. (config)# crypto map (config-crypto-map)# (config-crypto-map)# (config-crypto-map)#
mapa 1 ipsec-isakmp match address 101 set transform-set ts set peer 172.16.0.2
Protože používáme ISAKMP protokol, je potřeba nastavit i pravidla pro něj. Nastavujeme předsdílený klíč: “abcd” a IP adresu druhého konce tunelu. Pomocí Policy 1 je nastavena autentizace pomocí předsdíleného klíče, šifrování 3des, DH grupu 2 (modp 1024 – mikrotik) a hashovací metodu md5. (config)# crypto (config)# crypto (config-isakmp)# (config-isakmp)# (config-isakmp)# (config-isakmp)#
isakmp key 0 abcd address 172.16.0.2 isakmp policy 1 authentication-pre-share encryption 3des group 2 hash md5
Posledním krokem je přidělení vytvořené mapy k interface, na kterém bude končit IPsec tunel. (config)# int fa 0/1 (config-if)# crypto-map mapa
prosinec 2008
Technologie počítačových sítí
11/12
3.4 Analýza provozu Provoz na IPsec tunelu jsme vytvořili zprávami ping request a ping reply. Zprávy request byly posílány z PC2 a odpovědi reply byly odesílány z PC1. Provoz mezi PC a routery není šifrován, proto jsme analyzovali provoz jen na spoji mezi routery RA a RB. K analýze jsme použili program Wireshark.
Z výpisu programu Wireshark lze vyčíst průběh komunikace na IPsec tunelu. • Fáze 1: (main mode)Peer s IP adresou 172.16.0.2 (RB) inicializuje spojení. S použitím
protokolu ISAKMP si s peerem 172.16.0.1 vzájemně vymění 6 zpráv. Výsledkem těchto zpráv je autentizace obou stran a šifrovací klíč pro posílání prvních navazovacích zpráv quick módu.
• Fáze 2: (quick mode) obsahuje tři zprávy, peery se vzájemně autentizují. Quick mode
domlouvá symetrické šifrovací klíče. jednosměrné tunely s různými klíči.
Jsou
vytvořeny
dva
šifrované
Dále už je odchytáván šifrovaný provoz – protokol ESP.
4 Závěr V projektu jsme úspěšně ověřili možnost vytvoření šifrovaného tunelu mezi dvěma platformami Mikrotikem a Ciscem. Oproti očekávání byl největší problém propojit dva Mikrotiky. Ukázalo se, že verze firmwaru 3.16 (beta) a 3.13 (stable) obsahují chybu, kvůli které nebylo možné dokončit 2. fázi navazování spojení. Routery si nebyly schopné vytvořit SA a pokud, tak jen na jedné straně. Vše se vyřešilo až nahráním firmwaru 2.9.51, což je na oficiálních stránkách Mikrotiku uváděná jako historická verze. Podporu IPsecu poskytují obě zařízení dostatečně, každé ale s jinými defaultními hodnotami. Je potřeba dodržet správně nastavení na obou stranách tunelu (předsdílený klíč, autentizační a šifrovací metody atd.). Po správném nastavení se obě zařízení vzájemně autentizovaly, vyměnily klíče a začaly si předávat šifrované pakety. Nárůst zpoždění linky se projevil, hlavně při průchodu paketů větších velikostí. U pingu s délkou paketů 1500B se zpoždění zvýšilo z 2ms na 8ms, při použití metody 3des. Podle mě může za zpoždění z velké části použitý hardware na kterém běží Mikrotik – routerboard 532A, při použití výkonnější náhrady by se zpoždění mohlo snížit.
prosinec 2008
Technologie počítačových sítí
12/12