IPSec na platformě Juniper (CLI+GUI), kompatibilita s prvky Cisco Marek Kotraš, Peter Habčák Abstrakt: Cílem tohoto projektu je ověření funkčnosti protokolu IPSec na platformě JUNIPER a kompatibility s prvky Cisco. Součástí projektu je popis konfigurace jak v textovém rozhraní, tak v grafickém rozhraní JWeb a zároveň potřebnou konfiguraci systému IOS, potřebnou pro funkčnost GRE tunelu zabezpečeného pomocí IPSec. Klíčová slova: Juniper, JUNOS, IPSec, tunel, Cisco 1 Teorie...2 1.1 JUNOS...2 1.2 IPSec...2 2 Konfigurace...2 2.1 Testovací topologie...3 2.2 1. fáze konfigurace IKE...3 2.3 2. fáze konfigurace IKE (IPSec)...6 2.4 Vytvoření GRE tunelu nad IPSec...8 2.5 Kompatibilita s prvky Cisco...9 3 Závěr...10 4 Použitá literatura...10 listopad 2011 1/10
1 Teorie 1.1 JUNOS JUNOS je síťový operační systém společnosti Juniper Networks určený pro směrovače, přepínače a firewally. JUNOS nabízí bezpečné rozhraní pro programování a Junos SDK pro vývoj aplikací. JUNOS je založen na jádře operačního systému FreeBSD, co poskytuje uživateli možnost spouštět Unixové příkazy. Konfigurace systému probíhá dvěma způsoby. První z možností je použít textové rozhraní, které běží na sériové konzole (případně přes telnet). Toto rozhraní má dva režimy: Operational Mode - poskytuje informace o hardwaru, nastavení rozhraní a informace o protékajících datech a Configuration Mode - slouží ke změnám v konfiguraci zařízení pomocí zadávání textových příkazů. Druhým způsobem je konfigurace pomocí webového rozhraní JWeb. Toto rozhraní se instaluje jako samostatná aplikace do systému a umožňuje konfiguraci systému pomocí grafického rozhraní ve webovém prohlížeči. Kromě základní verze systému existuje ještě JUNOS with Enhanced services, který podporuje navíc IPsec VPN, zabezpečení sítě (Screening) a NAT. Tento systém však funguje jen na některých verzích směrovačů. 1.2 IPSec IPSec poskytuje silné zabezpečení na bázi šifrování pro IPv4 a IPv6, byl původně navržen pouze pro IPv4. IPSec podporuje autentizaci, integritu a důvěryhodnost na úrovni datagramů a skládá se z několika protokolů pro posílání autentizovaných nebo zašifrovaných dat po sítích s architekturou TCP/IP. IPSec se odehrává pod transportní vrstvou, takže je transparentní pro aplikační protokoly. IPSec není řešením v případech, kdy specifické aplikace používají ochranné mechanizmy na jiné vrstvě (např. SSL). IPSec specifikuje mechanizmy pro poskytování bezpečnostních služeb. Tyto služby poskytují dva bezpečnostní protokoly, Authentication Header a Encapsulating Security Payload, a mechanizmy pro správu šifrovacích klíčů, IP Security Association Key Management Protokol (ISAKMP) a Internet Key Exchange (IKE). Šifrování a zapouzdřování použité pro zajištění autentizace a bezpečnosti komunikace má dopad na zvýšenou režii protokolu, zejména v případě krátkých datagramů. 2 Konfigurace V této části se budeme věnovat jednotlivým krokům konfigurace protokolu IPSec a následnému vytvoření zabezpečeného GRE tunelu na platformě Juniper. V poslední podkapitole bude uvedena i potřebná konfigurace prvků Cisco. Uvedena konfigurace by měla vést ke správnému výsledku. Neměli jsme možnost ji prakticky ověřit z důvodu nedostupnosti hardwaru a nefunkčnosti emulace. listopad 2011 2/10
2.1 Testovací topologie 2.2 1. fáze konfigurace IKE V první fázi se nastavují parametry pro zabezpečený přenosový kanál, kterým se přenese klíč pro šifrování další IKE komunikace. Jako první krok je potřebné nastavit algoritmus pro autentizaci a šifrování při vytváření zabezpečeného spojení. V tomto případě používáme metodu pre-shared keys (klíč zadává uživatel), hashovací algoritmus MD5 a šifrování pomocí 3DES. Výběrem dh-group (Diffie-Hellman group) ovlivňujeme kryptografickou sílu klíče. Pomocí parametru lifetime-seconds ovlivňujeme dobu platnosti vytvořené security association. user@host# set security ike proposal ike_prop_1 authentication-method pre-shared-keys user@host# set security ike proposal ike_prop_1 dh-group group2 user@host# set security ike proposal ike_prop_1 authentication-algorithm md5 user@host# set security ike proposal ike_prop_1 encryption-algorithm 3des-cbc user@host# set security ike proposal ike_prop_1 lifetime-seconds 300 listopad 2011 3/10
Dalším krokem je nastavení politiky. V tomto kroku zadáváme odkaz na proposal vytvořený v předchozím kroku. Dále zadáváme heslo (v našem případě juniper ). Nastavením módu na aggressive se zredukuje počet výměn informací, potřebných pro navázání SA. user@host# set security ike policy ike_pol_1 mode aggressive user@host# set security ike policy ike_pol_1 proposals ike_prop_1 user@host# set security ike policy ike_pol_1 pre-shared-key ascii-text juniper Posledním krokem je vytvoření gateway. Odkazujeme na vytvořenou politiku, zadáváme adresu druhého konce tunelu. Pokud neprochází žádný provoz po dobu 10 sekund, pošle se paket DPD (dead peer detection) pro ověření dostupnosti, po 5 neúspěšných pokusech se druhá strana označí jako nedostupná. Nakonec se nastaví rozhraní, na které chceme posílat provoz (ge-0/0/0 je gigabitové ethernetové rozhraní). user@host# set security ike gateway ike_gateway_1 ike-policy ike_pol_1 user@host# set security ike gateway ike_gateway_1 address 172.20.1.2 user@host# set security ike gateway ike_gateway_1 dead-peer-detection interval 10 user@host# set security ike gateway ike_gateway_1 dead-peer-detection threshold 5 user@host# set security ike gateway ike_gateway_1 external-interface ge- 0/0/0 V grafickém rozhraní se 1. fáze nastavuje v menu Configuration > Quick Configuration > VPN > IKE Proposal se nastavuje v záložce Phase 1 Proposal. Obrázek 1: Nastavení IKE - 1. krok (obrázek převzaný z http://www.juniper.net/techpubs/images/qc_ike_p1prop.gif) Politika se nastavuje v záložce IKE Policy. Gateway se nastavuje v záložce IKE Gateway. listopad 2011 4/10
Obrázek 2: Nastavení IKE 2.krok (obrázek převzaný z http://www.juniper.net/techpubs/images/qc_ike_pol.gif) Obrázek 3: Nastavení IKE - 3. krok (obrázek převzaný z listopad 2011 http://www.juniper.net/techpubs/images/qc_ike_gw.gif) 5/10
2.3 2. fáze konfigurace IKE (IPSec) Druhou fází je konfigurace parametrů samotného IPSec, který zabezpečuje šifrování a autentizaci přenášených dat. Přitom se využívá zabezpečeného spojení, vytvořeného v první fázi. Prvním krokem je znovu vytvoření proposal, kde je potřebné nastavit algoritmus pro autentizaci a šifrování. Pomocí parametru lifetime-seconds ovlivňujeme dobu platnosti vytvořené security association. user@host# set security ipsec proposal ipsec_prop_1 protocol esp user@host# set security ipsec proposal ipsec_prop_1 authenticationalgorithm hmac-md5-96 user@host# set security ipsec proposal ipsec_prop_1 encryption-algorithm 3des-cbc user@host# set security ipsec proposal ipsec_prop_1 lifetime-seconds 1800 Dalším krokem je nastavení politiky. V tomto kroku zadáváme odkaz na vytvořený proposal. Nastavením Perfect Forward Secrecy zvýšíme bezpečnost v případě, že je kompromitován jeden klíč, neovlivňuje to žádné následující klíče, protože jsou na něm nezávislé. user@host# set security ipsec policy ipsec_pol_1 perfect-forward-secrecy keys group2 user@host# set security ipsec policy ipsec_pol_1 proposals ipsec_prop_1 V posledním kroku vytvoříme VPN tunel, který navážeme na rozhraní. Musí to být rozhraní st (Secure Tunnel), v našem případě st0. Odkazujeme se na vytvořenou IKE gateway a IPSec politiku. user@host# set security ipsec vpn vpn_1 bind-interface st0.0 user@host# set security ipsec vpn vpn_1 ike gateway ike_gateway_1 user@host# set security ipsec vpn vpn_1 ike ipsec-policy ipsec_pol_1 Obrázek 4: Nastavení IPSec 1.krok (obrázek převzaný z http://www.juniper.net/techpubs/images/qc_ipsec_p2_add.gif) V grafickém rozhraní se druhá fáze konfiguruje v menu Configuration > Quick Configuration > VPN > IPSec AutoKey. Proposal se nastavuje v záložce Phase 2 proposal. Tunel se nastavuje v záložce IPsec AutoKey. Politika se nastavuje v menu Configuration > Quick Configuration > VPN > IPSec AutoKey v záložce IPsec Policy. listopad 2011 6/10
Obrázek 5: Nastavení IPSec 2.krok (obrázek převzaný z http://www.juniper.net/techpubs/images/qc_ipsec_pol_add.gif) Tím je konfigurace IPSec ukončena, následuje konfigurace tunelu. listopad 2011 7/10
Obrázek 6: Nastavení IPSec 3.krok (obrázek převzaný z http://www.juniper.net/techpubs/images/qc_ipsec_auto_add.gif) 2.4 Vytvoření GRE tunelu nad IPSec Pro vytvoření tunelu se používá rozhraní gr-0/0/0, kde se zadává výchozí a cílová adresa tunelu (pro tyto účely adresy IKE gateway) a adresa pro tunel. user@host# set interfaces gr-0/0/0.0 tunnel source 172.20.1.1 destination 172.20.1.2 user@host# set interfaces gr-0/0/0.0 family inet address 192.168.1.1/24 Dále je potřebné vytvořit statické cesty pro síť na druhém konci tunelu (přes rozhraní gr-0/0/0) a pro druhý konec GRE tunelu (přes rozhraní st0). Tím se zabezpečí, že provoz do sítě na druhém konci tunelu se nejdříve enkapsuluje pomocí GRE a následně se odešle zabezpečený pomocí IPSec. user@host# set routing-options static route 10.10.10.0/24 next-hop gr-0/0/0.0 user@host# set routing-options static route 172.20.1.2 next-hop st0.0 listopad 2011 8/10
Nakonec je potřebné tyto rozhraní přidat do bezpečnostní zóny. Tímto určíme, že chceme přijímat provoz přicházející z těchto rozhraní. user@host# set security zones security-zone trust host-inbound traffic system-services all user@host# set security zones security-zone trust host-inbound traffic protocols all user@host# set security zones security-zone trust host-inbound traffic interfaces gr-0/0/0.0 st0.0 Při řešení problémů je potřebné ověřit, zda jsou spuštěny rozhraní gr-0/0/0, funguje IPSec tunel a zda jsou správně nastaveny cesty. user@host# show interfaces gr-0/0/0 terse user@host# show security ike security-associations Pokud rozhraní nefunguje, je možné ho ručně spustit příkazem user@host# set interfaces gr-0/0/0 enable 2.5 Kompatibilita s prvky Cisco Nastavení operačního systému IOS pro vytvoření IPSec tunelu. Nejdřív je potřeba nastavit isakmp politiku (algoritmy a heslo). crypto isakmp policy 15 encr 3des authentication pre-share group 2 lifetime 28800 crypto isakmp key juniper address 172.20.1.1 Následně se nastaví transform-set který slouží k nastavení parametrů pro šifrování dat. crypto ipsec transform-set aes-sha esp-aes esp-md5-hmac Vytvoříme crypto map, která definuje transform set a access list, pomocí kterého budeme filtrovat data. crypto map ipsec-remoteoffice 11 ipsec-isakmp set peer 172.20.1.1 set transform-set aes-sha set pfs group2 match address 101 access-list 101 permit ip 10.10.11.0 0.0.0.255 10.10.10.0 0.0.0.255 Nakonec tuto crypto map přiradíme na rozhraní. interface FastEthernet0/1 ip address 172.20.1.2 255.255.255.0 crypto map ipsec-remoteoffice Při řešení problémů si můžeme nechat vypsat seznam navázaných security associations, crypto map show crypto isakmp sa show crypto ipsec sa show crypto map listopad 2011 9/10
3 Závěr Uvedený postup nebylo možné ověřit, protože jsme neměli dostupný hardware s operačním systémem JUNOS. Proto jsme byli odkázání na použití prostředí Olive (operační systém JUNOS běžící ve FreeBSD na PC), v tomto prostředí však nefunguje JUNIPER Enhanced services potřebný pro funkčnost IPSec VPN. I když jsme při instalaci postupovali podle návodu od společnosti JUNIPER, po instalaci do FreeBSD po požadovaném restartu systém přestal reagovat na vstupy od uživatele zadané přes sériovou konzolu (přesměrovanou na standardní vstup a výstup). Zde uvedený postup by však měl vést k požadované funkčnosti. 4 Použitá literatura [1] Junos Network Operating System - Consistent Operating Environment - Juniper Networks. Features and Benefits[online]. 1999-2011, [cit. 2011-11-29]. Dostupný z WWW: <http://www.juniper.net/us/en/products-services/nos/junos/#features-benefits> [2] Katalog - popis producenta. Juniper Networks[online]. 2005-2011, [cit. 2011-11-29]. Dostupný z WWW: <http://www.arrowecs.cz/web/katalog.nsf/lkpproducers/109? Open&webid=&grp=Produkty&sgrp=Juniper%20Networks> [3] Juniper Networks [online]. c1999-2010 [cit. 2011-11-30]. Configuring an IPsec Tunnel Overview. Dostupné z WWW: <http://www.juniper.net/techpubs/software/junos-security/junossecurity95/junos-security-swconfig-security/ipsec-vpn-config-overview.html>. [4] Juniper Knowledge Base [online]. c1999-2010 [cit. 2011-11-30]. GRE over IPSEC Configuration Example. Dostupné z WWW: <http://kb.juniper.net/infocenter/index? page=content&id=kb19372>. [5] IETF Tools [online]. December 2005 [cit. 2011-11-30]. RFC 4301 - Security Architecture for the Internet Protocol. Dostupné z WWW: <http://tools.ietf.org/html/rfc4301>. listopad 2011 10/10