www.SAMURAJ-cz.com 

24.04.2024 Jiří Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

VPN 3 - Konfigurace IPsec Remote Access VPN na Cisco ASA

Pátek, 22.04.2011 22:40 | Samuraj - Petr Bouška |
Máme za sebou teoretický popis celé problematiky IPsec Remote Access VPN i základní úvod (řekněme úvodní konfiguraci) Cisco ASA. Dnes se budeme věnovat praktické konfiguraci zmíněného rozšířeného typu VPN pro přístup uživatelů do firemního prostředí. V první části článku si popíšeme jednotlivé stavební bloky, které budeme na Cisco ASA konfigurovat, a jejich vzájemné vazby. V druhé části jsou již odkazy na jednotlivé položky v ASDM, které musíme nastavit.

Co budeme nastavovat

Naším cílem je vytvořit IPsec over UDP (NAT-T) Remote Access VPN Tunnel Mode s šifrováním AES-256, hash SHA, D-H group 5, IKE autentizaci certifikátem počítače a uživatelskou autentizaci pomocí RADIUS serveru. Jako klient se bude používat Cisco VPN Client verze 5.0. Tedy relativně nejvyšší možné nastavení bezpečnosti pro IPsec VPN. To je náš primární cíl.

Zároveň si ale uvedeme informace, co je třeba změnit nebo nastavit dvakrát, aby bylo možno se do IPsec VPN připojit ze zařízení s OS Google Android a jeho nativním klientem, nebo integrovaným klientem od Microsoftu z Winows XP/Vista/7. To znamená vytvoření L2TP over IPsec over UDP (NAT-T) Remote Access VPN Transport Mode s šifrováním 3DES, hash SHA, D-H group 2, IKE autentizaci certifikátem počítače a uživatelskou autentizaci pomocí RADIUS serveru. Tito klienti nepodporují Perfect Forwarding Secrecy, Peer ID Validation a IKE keepalives.

Síťovou topologii budeme uvažovat tak, že Cisco ASA je zapojena přímo do internetu, má veřejnou IP adresu (takže není za NATem). Klienti se mohou připojovat z veřejných i privátních adres (za NATem). Více o topologii řekneme dále.

Pro autentizaci uživatelů budeme využívat RADIUS server, ale jeho nastavení zde nebudeme probírat. Jedna možnost je využít Microsoft Network Policy and Access Services (NPS), který je součástí Windows Serveru 2008. Na něm nastavíme klienta (Cisco ASA) a vytvoříme Network Policy. Klienty můžeme v AD zařadit do skupiny a tuto skupinu zvolit jako parametr pro politiku NPS. Jako Authentication Method zvolíme pouze MS-CHAP-V2, Encryption nastavíme na Strong Encryption 128 bit.

Téměř celou konfiguraci budeme provádět pomocí Java aplikace Cisco Adaptive Security Device Manager (ASDM).

Pozn.: Důležité je, že popis vychází z Cisco ASA verze 8.4(1) a ASDM verze 6.4(1). Konfigurace ve starších verzích může být výrazně odlišná.

Z čeho se skládá konfigurace IPsec VPN na Cisco ASA

Pro základní nastavení VPN můžeme využít průvodce menu Wizards - VPN Wizards - IPsec (IKEv1) Remote Access VPN Wizard. Ale nemusíme. Průvodce nenastaví vše podle našich představ, takže různé položky budeme muset upravit. A také používá svoje jména pro některé položky, já mám rád pořádek, takže si je pojmenovávám podle sebe. Změna jména jde většinou pouze smazáním a novým vytvořením daného nastavení.

Pokud rozumíme teorii IPsec VPN a zvolíme si, jaké protokoly a algoritmy chceme použít, tak již není příliš složité vše nastavit. Je ale potřeba pochopit, jak Cisco označuje jednotlivé oblasti a jak jsou na sobě závislé. Hlavní body pro IPsec VPN jsou následující (samozřejmě musíme řešit i další pomocné nastavení, jako DHCP Pool, uživatelé lokálně či na AAA serveru, apod.):

  • IKE Parameters - globální parametry pro IKE, povolujeme NAT-T
  • IKE Policies - v politice nastavujeme parametry, které se nabízí při vyjednávání IKE fáze 1 pro zabezpečení (IKE SA), můžeme jich mít více a podle priority se upřednostňují, kombinace jako {pre-share, 3desc, sha, D-H group 5} a {rsa-sig, aes-256, D-H group 5, sha}, takže jaké zabezpečení se použije pro úvodní IKE část - vyjednání SA
  • IPsec Proposals (dříve Transform Sets) - skupina operací, která se provádí na datovém toku k zajištění autentizace, šifrování a komprese, například ESP protokol Tunel Mode s AES šifrováním a HMAC-SHA-1 autentizací (ESP-AES-SHA), tedy jaké zabezpečení se použije pro IPsec ESP - vlastní VPN
  • Crypto Maps - vybírá provoz, který chceme zabezpečit, a definuje politiku, jak jej zabezpečíme, pokud máme pouze jednu, tak je to jednoduché, hodnoty se použijí pro vyjednání IKE fáze 2 (IPsec SA), přiřadíme připravené IPsec Proposals
  • Group Policies - určuje vlastnosti síťového přístupu po připojení do VPN, volíme typ VPN (IPsec, L2TP/IPsec, SSL, apod.), politiky pro klienta (použití FW, filtry, omezení přístupu do VLAN, času, DNS server), split tunneling, tedy omezujeme a řídíme přístup klienta
  • IPsec(IKEv1) Connection Profiles (dříve Tunnel Group a ještě dříve VPN group) - definuje klíčové hodnoty pro vytvoření session, jako je autentizace, přiřazení IP adres, nastavujeme použitou Group Policy
ASDM - IPsec Remote Access VPN

Průběh navázání IPsec VPN

  • vyjedná se IKE fáze 1 podle nastavení IKE Policies
  • v rámci fáze jedna se provede autentizace buď certifikátem počítače (rsa-sig) nebo pomocí Pre-Shared Key (pre-share)
  • z údajů v certifikátu (podle nastavení na ASA) nebo dvojice jméno a PSK se určí jméno Connection Profile, který se použije
  • pokud je povolený XAUTH, tak se provede autentizace uživatele (lokální uživatel nebo na RADIUS)
  • přiřadí se uživatelské atributy - Group Policy (a další)
  • podle Crypto Map se naváže IPsec tunel (ESP)

Přiřazení profilu

Velice důležité je jméno Connection Profile (tunnel group), protože se podle tohoto jména přiřazuje profil (politika) a tím se uživateli nastavuje většina parametrů spojení.

Pokud máme IKE Peer Authentication nastavenu na Pre-shared Key (PSK), tak v Cisco VPN Client volíme Group Authentication, jako name je právě název Connection Profile a password je PSK.

Pokud nastavíme Identity Certificate, tak volíme Certificate Authentication a vybereme patřičný certifikát. Jméno Connection Profile se hledá podle nastaveného způsobu, například podle OU certifikátu.

Cisco VPN Client konfigurace

Přiřazení politiky a jejich aplikace

Uživatelské atributy, správně řečeno user authorization attributes (dvojice atribut a hodnota), můžeme konfigurovat na několika místech. Hlavní je Group Policy, tu ale můžeme k uživateli přiřazovat několika způsoby. Pomocí Connection Profile nebo nastavením na uživatele (lokálně či z RADIUS nebo LDAP serveru). Velkou roli také hraje defaultní Group Policy, z které ostatní politiky dědí. Většinou záleží na tom, na jako velkou skupinu je chceme nastavit. Pak samozřejmě záleží na tom, v jakém pořadí se uplatňují. Hodnoty z jednotlivých míst se spojí, a pokud je konflikt, tak se přepisují v pořadí uplatňování.

Je zde také oblast nastavení, o které jsme ještě nemluvili a ani ji v tomto článku nebudeme používat. Dynamic Access Policy (DAP) nastavuje přístupové parametry v dynamickém prostředí, můžeme řídit přístup na úrovni jednotlivých session - porovnávají se kritéria během vytváření session.

Pořadí vyhodnocování (Policy Enforcement):

  1. defaultní Group Policy (DfltGrpPolicy) - globální nastavení pro všechny
  2. Group Policy přiřazená z Connection Profile - nejčastější použití, podle profilu připojení
  3. Group Policy přiřazená uživateli - například na RADIUS serveru
  4. uživatelské atributy z AAA serveru - po autentizaci uživatele se mohou přijmout hodnoty z RADIUS či LDAP serveru
  5. Dynamic Access Policy - má nejvyšší prioritu, co se nastaví zde, vyhrává

Pokud chceme přiřadit Group Policy uživateli podle atributu z RADIUS serveru, tak musíme nastavit RADIUS Standard Attribute 25 (Class) a do něj OU=jméno group policy a tuto hodnotu předávat při přihlášení uživatele (více tuto možnost popíšeme příště). Pozor: pokud předáme neexistující jméno politiky, tak se nastavení neuplatní! Pokud využíváme LDAP server, tak můžeme nastavit mapování libovolného atributu na nastavení Group Policy. Lokálním uživatelům na Cisco ASA můžeme přímo nastavit přiřazenou Group Policy.

Postup konfigurace IPsec VPN prakticky

První připojení a spuštění ASA jsme provedli minule, nyní budeme pokračovat v další konfiguraci. Nastavíme konfiguraci sítě, přístupu, uživatele pro VPN pomocí AAA serveru (RADIUS), IP adresy budou klienti dostávat od DHCP na ASA. A potom vlastní konfigurace VPN podle parametrů uvedených v úvodu.

Na začátku je dobré (řekl bych přímo potřeba) si nakreslit schéma zapojení (topologii), nemusí být složité, ale je důležité probrat použité adresy, subnety a směrování. Stranou nechávám globální otázku zapojení, jako je umístění ASA za další firewall, apod.

Schéma IPsec VPN sítě

1. Konfigurace ASA zařízení

Configuration > Device Setup > Device Name/Password

Hostname, domain, heslo do privilegovaného módu.

Configuration > Device Setup > Interfaces

Security level - 0 (nejnižší) až 100 (vnitřní síť), rozděluje sítě, standardně nelze komunikovat z nižšího do vyššího, ale naopak ano. Interfacům přiřadíme názvy, které se budou dále používat.

Ethernet0/0, jméno outside, security level 0, IP 86.55.13.15/24
Ethernet0/1, jméno inside, security level 100, IP 10.240.0.1/24
Management0/0, jméno management, IP 192.168.1.1/24

Můžeme zvážit povolení dvou položek dole na stránce:

Enable traffic between two or more interfaces which are configured with same security levels
Enable traffic between two or more hosts connected to the same interface

Configuration > Device Management > DHCP > DHCP Server

Defaultně je na management interface zapnutý DHCP, pokud jej nepotřebujeme tak vypneme.

Configuration > Device Management > Users/AAA > AAA Server Groups

Konfigurace AAA skupiny, do které zařadíme jeden nebo více RADIUS serverů.

Configuration > Device Setup > System Time > NTP a Clock

Nastavení NTP serveru a time zone.

Configuration > Device Setup > Routing > Static Routes

Přidáme default GW pro klienty (jak se VPN klienti připojují z internetu, aby se jim mohla vrátit odpověď).

outside, any, 86.55.13.254, 1

Přidáme default GW pro klienty uvnitř VPN (když mají IP z tohoto rozsahu, aby se dostali do interní sítě).

inside, any, 10.240.0.254, 255, Tunneled

Případně ještě musíme přidat routu pro přístup na RADIUS servery (a další jako Syslog, NTP).

Configuration > Firewall > Access Rules

Pouze pro informaci, nemusíme zde nic měnit. Dole na stránce zvolíme IPv4 Only. V sekci Global jsou pravidla, která platí všude, defaultně je zde poslední deny any any. Na inside interface máme implicitní pravidlo povolující komunikaci do sítí s nižším zabezpečením (security level).

Configuration > Firewall > NAT Rules

Možná jsou tu nějaké zbytečné položky, ale takto je konfigurace funkční.

  • z adresy VPN_subnet do VPN_subnet, oba směry, static NAT - nenatovat mezi klienty ve VPN
  • z adresy VPN_subnet do local_subnet, oba směry, static NAT - nenatovat mezi klienty VPN a local
  • z adresy VPN_subnet do interface outside, dynamic PAT (Hide), translate source outside - ostatní natovat

Network Objects - při nastavování NATu vytvoříme objekty:

  • local_subnet - 10.0.0.0/8
  • VPN_subnet - 10.240.0.0/24

Pozn.: Nahoře v menu můžeme využít tlačítko Diagram, které hrubě naznačí schéma určitého pravidla, nebo Packet Trace, který simuluje komunikaci.

Configuration > Device Management > Certificate Management > CA Certificates

Nainstalujeme certifikát certifikační autority (CA), od které má ASA a klienti certifikát (.cer).

Configuration > Device Management > Certificate Management > Identity Certificates

Nainstalujeme certifikát pro ASA (s privátním klíčem, bude se používat pro navázání IKE fáze 1, .pfx)

Configuration > Remote Access VPN > Network (Client) Access > Address Assignment > Address Pools

Připravíme si rozsah adres pro DHCP VPN_Pool - 10.240.0.100 až 10.240.0.200.

2. Konfigurace IPsec VPN

Configuration > Remote Access VPN > Introduction

Zde začneme s konfigurací vlastní VPNky. Buď můžeme použít průvodce, který nám předpřipraví některé hodnoty nebo budeme rovnou nastavovat ručně.

Wizards - VPN Wizards - IPsec (IKEv1) Remote Access VPN Wizard

  • VPN Tunnel Interface = outside
  • Cisco VPN client
  • Authentication Method = certificate
  • Tunnel Group Name = Firma_policy
  • Authenticate using an AAA
  • Pool Name = VPN_Pool
  • Encryption = AES-256, Authentication = SHA, Diffie-Hellman Group: 5

Configuration > Remote Access VPN > Network (Client) Access > Advanced > IPsec > IKE Parameters

Zkontrolujeme povolené Enable IPsec over NAT-T

Configuration > Remote Access VPN > Network (Client) Access > Advanced > IPsec > IKE Policies

IKEv1 Policies, potřebujeme politiku s prioritou 1 a hodnotami authentication rsa-sig (to znamená certifikát, pre-share by bylo PSK), encryption: aes-256, hash: SHA, D-H Group: 5.

Pro MS/Android musíme přidat druhou možnost IKEv1 policy  encryption: 3DES, hash: SHA, authentication: rsa-sig, D-H Group: 2.

Pokud máme více politik, tak nejvyšší priorita je 1, pokud se peers nedohodnou na této, tak se zkusí další.

Configuration > Remote Access VPN > Network (Client) Access > Advanced > IPsec > IPsec Proposals (Transform Sets)

Pro Cisco nám stačí nejbezpečnější možnost, Transform Set v módu Tunnel s ESP Encryption AES-256 a ESP Authentication SHA.

Pro MS/Android můžeme použít pouze slabší zabezpečení, Transform Set v módu Transport s ESP Encryption 3DES a ESP Authentication SHA.

Opět můžeme nastavit obě možnosti.

Configuration > Remote Access VPN > Network (Client) Access > Advanced > IPsec > Crypto Maps

Máme zde defaultní dynamickou Crypto Mapu s prioritou 65535, v IKE v1 IPsec Proposal bychom měli mít ty skupiny (jednu nebo dvě), které jsme vytvořili v minulém kroku. Pokud budeme používat pouze Cisco VPN klienta, tak můžeme mít na této stránce zaškrtnuté Enable Perfect Forwarding Secrecy (PFS). Na záložce Tunnel Policy (Crypto Map) - Advanced zkontrolujeme zaškrtnuté Enable NAT-T.

Configuration > Remote Access VPN > Network (Client) Access > Group Policies

Group Policy můžeme používat jednu nebo více, pokud chceme některým klientům poskytnout jiné parametry, případně pouze editovat defaultní politiku DfltGrpPolicy. Řekněme, že mám politiku Firma_policy. Většinu hodnot necháme Iherited, ale v záložce General rozklikneme More Options a v tunneling protocols zaškrtneme IPsec IKEv1, pokud má tato politika fungovat i pro MS/Android, tak musíme zaškrtnout i L2TP/IPsec. Do Servers zadáme adresy DNS serverů, případně WINS serverů.

Hodnoty, které jsou Iherited, se přebírají z defaultní politiky DfltGrpPolicy. V každé politice můžeme volitelně nastavit řadu parametrů, které se jinak nastavují na jiném místě, ale takto se uplatní pouze na vybranou skupinu uživatelů. Příkladem je v položce Advanced > IPsec Client možnost zapnutí/vypnutí Perfect Forwarding Secrecy (PFS). Také můžeme projít defaultní nastavení politiky DfltGrpPolicy, abychom měli přehled, co se nastavuje a případně upravit.

Configuration > Remote Access VPN > Network (Client) Access > IPsec(IKEv1) Connection Profiles

Dříve se tato část nazývala Tunnel Groups (a takový je stále i příkaz). Na horní části stránky vybíráme, na jakém interface povolíme IPsec přístup, musíme povolit Access Interfaces - outside. Podle Group Policy vytvoříme jeden nebo více profilů, například Firma. Také se zde nachází defaultní profil DefaultRAGroup, který můžeme v určitých situacích použít. Hodnoty, které nastavíme:

  • IKE Peer Authentication - Identity Certificate - vybereme certifikát ASA
  • User Authetication - Server Group - naše AAA skupina
  • Client Address Assigment - Client Address Pools - VPN_Pool
  • Group Policy - Firma_policy
  • povolit Enable IPsec protocol
  • Advanced > IPsec - IKE Peer ID Validation - Required
  • Advanced > IPsec - IKE keepalive - Monitor keepalives - confidence 300s, retry 2s
  • Advanced > IPsec > IKE Authentication Mode - XAUTH
  • Advanced > PPP - vybereme jen MS-CHAP-V2

Pro MS/Android musíme změnit některé hodnoty:

  • povolit také Enable IPsec protocol a Enable L2TP over IPsec protocol
  • Advanced > IPsec - IKE Peer ID Validation - Do not check
  • Advanced > IPsec - IKE keepalives - Disable keepalives

Pozn.: IKE keepalives nemusíme vypínat, slouží k posílání a hlídání zpráv, pokud zprávy nechodí, tak ASA odstraní spojení. Pokud klient nepodporuje tuto funkci, tak se pouze zaloguje informace a nic se neděje.

Přes CLI - nastavení parametru pro Connection Profile

Musíme na profilu povolit měnit hesla přes VPN, až tímto se zapne MS-CHAP-V2, do té doby se používá PAP a nefungovalo by nám přihlášení (pokud máme na RADIUS serveru povolený pouze MS-CHAP-V2). Toto je docela zajímavá finta, kterou objevil můj kolega. Jinak se ve většině návodů na internetu píše, že se na RADIUS serveru musí využít PAP, což není vůbec bezpečná možnost.

ASA(config)#tunnel-group Firma general-attributes
ASA(config-tunnel-general)#password-management

Configuration > Remote Access VPN > Network (Client) Access > Advanced > IPsec > Certificate to Connection Profile Maps > Policy

Když používáme certifikáty v první fázi IKE, tak zde nastavíme podle čeho se určuje přiřazený Connection Profile. Defaultně se použije přednastavený profil DefaultRAGroup. Pro zjednodušení můžeme nastavit Default to Connection Profile na Firma. Pokud ale máme více profilů nebo chceme větší bezpečnost, tak zvolíme jiné nastavení a určujeme jméno profilu podle nějaké hodnoty.

Monitoring VPN

Základní informace o monitorování a řešení problémů s VPN na ASA. První nastavení provedeme na úvodní stránce Home dole, kde zapneme logování.

Monitoring > Logging > Log Buffer

Zde můžeme prohlížet poslední logy uložené v paměti.

Monitoring > VPN > VPN Statistics > Sessions

Aktivní připojení do VPN.

Configuration > Device Management > Logging

Konfigurace logování.

Configuration > Device Management > Logging > Syslog Servers

Nastavení Syslog serveru přes jaký interface je připojen. Defaultní syslog port je UDP 514.

Configuration > Device Management > Logging > Logging Filters

Nastavujeme úrovně a typy zpráv, které chceme zasílat na určité zařízení.  Třeba pro ASDM All event severity Notification a pro Syslog Servers definujeme seznam vybraných událostí, které chceme posílat Use event list.

Configuration > Device Management > Logging > Event Lists

Seznam odesílaných událostí. VPN All Event Class Errors + Message ID Filters 113019, 713120, 713123, 713228 (události o přihlášení a odhlášení uživatele z VPN).

zobrazeno: 26071krát | Komentáře [2]

Autor:

Související články:

Cisco VPN - Virtual Private Network

Série článků, která začíná obecným popisem technologie VPN a rozebírá jednotlivé typy VPN. Dále se řeší různé konfigurace VPN na zařízeních Cisco, primárně na Cisco ASA.

VPN - Virtual Private Network

Série článků, která obsahuje obecný popis technologie VPN. Rozebírá jednotlivé typy VPN, jako je Site to Site VPN a Remote Access VPN. A popisuje konfigurace na různých zařízeních.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] ZAJDAN

    Ahojte,

    k čemu se prosím vyplatí VPN site to site? nebude potřeba použít VPN klienta..nic víc?díky

    Čtvrtek, 10.05.2012 13:40 | odpovědět
  2. [2] Samuraj

    odpověď na [1]ZAJDAN: Site to Site vs. Client Access VPN mají úplně jiný význam. Site to Site je propojení dvou sítí dohromady přes internet, takže tak připojíme třeba pobočku a všechna komunikace všech uživatelů funguje. Kdežto Remote Access pouze připojí jednoho klienta do cílové sítě.

    Čtvrtek, 10.05.2012 17:00 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách