semestrální projekt do předmětu Směrované a přepínané sítě
autoři: Pavel Nejedlý (nej024) a Jan Kocmánek (koc256)
20. června 2007
Prakticky odzkoušejte možnosti připojení VPN klienta integrovaného ve Windows na Cisco Advanced Security Appliance.
Cílem tohoto projektu je nastavit firewall Cisco ASA tak, aby se na něj dalo připojit pomocí VPN klienta, který je integrován v systému Microsoft Windows XP.
Pro vzdálený přístup do privátní sítě ze systému Windows XP si poté vystačíme pouze s tímto integrovaným klientem bez nutnosti instalovat další software (např. Cisco VPN klient).
Poznámka:
Uvedená nastavení byla testována pro VPN klienta v systému Windows XP SP2 a měla by také fungovat pro VPN klienty ve Windows 2000 a Windows Vista, nicméně to nebylo ověřeno.
Podle uvedených vlastností na stránce společnosti Microsoft, by měl klient pracovat pouze v transportním módu bez podpory AH (Authentication Header – část IPSec, která podepisuje celý paket včetně IP hlavičky a slouží k zajištění důvěryhodnosti zdroje a cíle). Nicméně tyto informace se vztahují na verze systému Windows, které byly vydány před Windows XP a jsou proto informativní, protože se mi nepodařilo zjistit, jestli se v systému Windows XP a vyšších něco změnilo.
Pokud se ovšem podíváme do výchozích metod zabezpečení protokolu IP v systému Windows XP SP2, zjistíme alespoň pořadí použitých parametrů pro IKE a pořadí vyjednávání metody zabezpečení.
šifrování | integrita | skupina Diffie-Hellman |
---|---|---|
3DES | SHA1 | Střední(2) |
3DES | MD5 | Střední(2) |
DES | SHA1 | Malá(1) |
DES | MD5 | Malá(1) |
integrita AH | důvěrnost ESP | integrita ESP | generování klíče |
---|---|---|---|
žádná | 3DES | SHA1 | 10000kB/900s |
žádná | 3DES | MD5 | 10000kB/900s |
žádná | DES | SHA1 | 10000kB/900s |
žádná | DES | MD5 | 10000kB/900s |
V první fázi spojení IKE (Internet Key Exchange) se vytvoří šifrované spojení, který nám umožní bezpečnou výměnu klíčů a dalších parametrů pro navázání zabezpečeného spojení, tzv. Security Association (SA). SA představují jednosměrná spojení, která zabezpečující datový přenos autentizací nebo šifrováním. V rámci SA jsou definovány metody k ochraně dat, doba platnosti SA (měřená časem nebo objemem přenesených dat) a některé další parametry (viz. tabulka 2.).
Přehled portů a protokolů využívaných pro L2TP/IPSec u VPN Klienta (Pro detailnější popis čísel protokolů doporučuji RFC1700.)
L2TP se chová jako spojová vrstva, ale je to protokol 5. vrstvy, který je schopen tunelovat síťový provoz přes Internet. Celý L2TP paket včetně užitečných dat (payload) a hlavičky se posílá uvnitř UDP datagramu. Celá specifikace je v RFC2661.
IPsec je rozšíření protokolu IP, které poskytuje zabezpečení pro tento protokol i protokoly vyšších vrstev. Vyvinul se jako nový standard pro IPv6 a poté byl zpětně implementován pro IPv4. IPsec architektura je popsaná v RFC2401.
IPsec užívá dva rozdílné protokoly - AH a ESP - aby zajistil autentizaci a šifrování komunikace. Může chránit buď celý IP datagram nebo pouze protokoly vyšší vrstvy, podle módu ve kterém pracuje.
Existuje tunelový mód (tunnel mode) a transportní mód (transport mode). V tunelovém módu je IP datagram plně zapouzdřen do nového IP datagramu, který je pak zpracován pomocí IPSec. V transportním módu je v IP datagramu zpracována pomocí IPSec pouze užitečná část (payload) a IPsec hlavička se pak vloží mezi IP hlavičku a hlavičku protokolu vyšší vrstvy.
Transportní mód s ESP (případ VPN klienta ve Windows XP)
V transportním módu je ESP umístěno hned za IP hlavičku, před protokol vyšší vrstvy, např. TCP, UDP, ICMP, atd.(obrázek 1.)
Použití překladu adres NAT proto neporuší ESP protokol, nicméně ve většině případů stále ještě není NAT možný ve spojení s IPsec resp. ESP v transportním módu. Vychází to z toho, že NAT pracuje se zdrojovými porty a ESP šifruje hlavičky protokolů vyšších vrstev (TCP, UDP, ...), které obsahují čísla portů. To má za následek neschopnost NATu změnit číslo zdrojového portu (více v RFC3715). V tomto případě se dá použít řešení pomocí NAT-Traversal, které zapouzdřuje ESP pakety do UDP paketů (celé je to popsáno v RFC3948).
Poznámka:
Podpora NAT-T u VPN klienta pro Windows XP je součástí Service Pack 2. Více o Aktualizace protokolů L2TP a IPSec a překládání adres (NAT-T) pro systém Windows XP a Windows 2000
Cisco Advanced Security Appliance je především firewall a na to bychom měli pamatovat.
Zde si ukážeme konfigurace nastavení VPN klienta a Cisco ASA 5510 tak, aby vše fungovalo.
Nejrychlejší konfigurace VPN je pomocí, předsdíleného klíče.
Tato konfigurace používá k ověřování uživatelů předsdílený klíč (Pre-shared Key). Uživatelé jsou uloženi v lokální databázi Security Appliance. VPN klient používá výchozí nastavení systému. Konfigurace simuluje i případ, kdy je uživatel schován za NAT, resp. na trase je používán překlad zdrojových adres (viz. obrázek 2.). Použity jsou tři počítače. Dva simulují uživatele, kteří se nacházejí mimo privátní síť a připojují se k vpn serveru pomocí klienta ve Windows, z toho jeden je schován za NAT. Poslední simuluje počítač uvnitř privátní sítě.
K realizaci ukázkového zapojení budeme potřebovat pár věcí:
Router RA zde slouží k překladu zdrojové adresy uživatele s NAT(IP 30.0.0.100) na adresu svého výstupního rozhraní.
config t interface FastEthernet 0 ip address 30.0.0.1 255.255.255.0 ip nat inside no shutdown exit interface FastEthernet 1 ip address 20.0.0.2 255.255.255.0 ip nat outside no shutdown exit ip nat inside source static 30.0.0.100 interface FastEthernet 1
Konfigurace bez komentářů (Copy & Paste) config t //vstoupíme do globálního konfiguračního režimu hostname ciscoasa //nastavíme hostname (má smysl až při práci s certifikáty) interface eth0/0 nameif inside //pojmenování rozhraní security-level 100 //viz. co je dobré vědět ip address 10.0.0.1 255.255.255.0 no shutdown exit interface eth0/1 nameif outside security-level 0 ip address 20.0.0.1 255.255.255.0 no shutdown exit username test password test mschap //vytvoření uživatelského účtu v lokální databázi, mschap způsobí převedení hesla do unicode a následný hash pomocí MD4 tak, aby jej bylo možné ověřit proti MS-CHAPv1 nebo MS-CHAPv2 ip local pool vpn-pool 10.0.1.2-10.0.1.254 mask 255.255.255.0 //nastaveni adres které se budou přidělovat vpn klientům crypto isakmp policy 10 //nastavení parametrů pro IKE authentication pre-share encryption 3des hash sha group 2 lifetime 86400 exit crypto isakmp enable outside //zapnutí IKE na vnějším rozhraní crypto ipsec transform-set vpn-ts esp-3des esp-sha-hmac //nastavení metody zabezpečení crypto ipsec transform-set vpn-ts mode transport //zapnutí transport módu crypto dynamic-map vpn-map 10 set transform-set vpn-ts //definování šablony přijímající spojení založené na vpn-ts crypto map mymap 65535 ipsec-isakmp dynamic vpn-map //přilepení šablony vpn-map na IKE vyjednávání crypto map mymap interface outside //zapnutí mymap, která přijímá IKE připojení same-security-traffic permit intra-interface //povolení komunikace mezi vpn klienty tunnel-group DefaultRAGroup type ipsec-ra //tunnel group by měl mít tento název, případně IP připojujícího se klienta tunnel-group DefaultRAGroup general-attributes address-pool vpn-pool //přiřazení rozsahu poskytovaných adres authentication-server-group LOCAL //ověřování uživatelů z lokální databáze exit tunnel-group DefaultRAGroup ipsec-attributes pre-shared-key cisco //nastavení hodnoty předsdíleného klíče exit tunnel-group DefaultRAGroup ppp-attributes //nastavení protokolů pro autentizaci no authentication chap authentication ms-chap-v1 authentication ms-chap-v2 exit isakmp nat-traversal //povolení NAT-T pro klienty za NAT
Nastavení které by tam podle cisco ukázkové konfigurace mělo být, protože určuje L2TP/IPSec jako platný protokol pro skupinu, nicméně to funguje i default. Je to nejspíš proto, že je tato cisco ukázková konfigurace pro PIX 7.2 a pro ASA je L2TP/IPSec implicitně nastaven v default skupině
group-policy DefaultRAGroup internal group-policy DefaultRAGroup attributes vpn-tunnel-protocol l2tp-ipsec exit tunnel-group DefaultRAGroup general-attributes default-group-policy DefaultRAGroup exit
Vytvoření VPN připojení
Ovládací panely -> Síťová připojení -> Vytvořit nové připojení
Spustí se průvodce novým připojením (Další), u typu připojení vybereme připojit k firemní síti (Další), vybereme připojení k virtuální privátní síti (Další), jako název společnosti vyplníme jméno připojení (např. ASA) a stiskneme tlačítko Další.
Pokud máme v počítači nainstalované nějaké telefonní adaptéry (např. přes Bluetooth), zobrazí se dotaz jestli chceme před navázáním spojení k VPN nejdřív vytočit připojení k internetu. Pokud nejsme k internetu připojeni pořád, ale musíme vytáčet, vybereme název připojení z nabídky, v ostatních připadech vybereme nevytáčet počáteční připojení, stiskneme Další.
Zobrazí se požadavek na zadání IP adresy VPN serveru, kde zadáme 20.0.0.1 (Další).
Průvodce je nyní v poslední fázi, kde můžeme zaškrtnout Přidat zástupce tohoto připojeni na plochu pro snadnější spouštění a stiskneme tlačítko Dokončit.
Po dokončení se rovnou zobrazí nabídka Připojit k virtuální privátní síti, kde nejdřív vybereme Vlastnosti. Na kartě zabezpečení klikneme na Nastavení protokolu IPSec..., kde zaškrtneme Použít pro autorizaci předsdílený klíč
a do textového pole napíšeme cisco (hodnota pre-shared key nastavená na Cisco ASA), zvolíme ok. Poté zvolíme kartu Sítě a typ vpn serveru pro jistotu nastavíme na L2TP IPSec VPN a stiskneme ok.
Uživatelské jméno: test
Heslo: test
(Jedná se o uživatelské jméno a heslo nastavené příkazem username na Cisco ASA)
Testování konfigurace s předsdíleným klíčem dopadla i přes počáteční problémy nakonec úspěšně.
Vypadá to, že pokud se použije jiná group-policy a tunnel-group než default u ověřování pomocí předsdíleného klíče, ASA odmítá příchozí spojení.
Výpis show vpn-sessiondb detail remote