www.SAMURAJ-cz.com 

19.04.2024 Rostislav Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

VPN 4 - Konfigurace Cisco Clientless SSL VPN na Cisco ASA

Středa, 11.05.2011 16:51 | Samuraj - Petr Bouška |
SSL VPN se dnes považují za moderní typ VPN připojení. Mají řadu výhod, hlavně oproti tradičnímu IPsec protokolu. U Cisca si ale nejprve musíme zjistit informace o licencování, protože AnyConnect licence jsou dost drahé. Clientless SSL VPN je speciální typ VPN, kdy nepotřebujeme klienta (na to nám poslouží webový prohlížeč). Nemá úplně stejné možnosti jako standardní VPN, ale může být vhodná pro řadu situací. Základní funkce nám bezpečně zprostředkuje interní webové a souborové servery. Na to se podíváme dnes. Dále je možné využít různé pluginy, které například umožní přístup přes SSH či RDP. A objevují se další rozšířené funkce, jako je například Smart Tunnel.

Clientless SSL VPN, dříve WebVPN, je technologie, která nabízí omezený bezpečný přístup na některé firemní zdroje. Protože možnosti jsou omezené, tak se hodí jen k určitému typu nasazení. Na druhou stranu daná omezení mohou být v řadě případů výhodou (můžeme hodně omezit přístup klientů). Dalším pozitivem je, že není třeba žádný klient, administrátorská práva na stanici ani speciální prostupy na FW, protože se přistupuje pomocí webového prohlížeče standardně přes HTTPS port 443 (data proudí skrze SSL tunel).

Protokoly a teorie okolo Clientless SSL VPN je značně jednodušší než u IPsec VPN. Uživatel přistupuje pomocí internetového prohlížeče na webovou stránku - portál. Přístup je přes šifrovaný protokol HTTPS standardně na portu 443. Nejprve je nutné provést form-based autentizaci a pak je přístupný portál s nastavenými možnostmi. Umožňuje přístup k interním webovým aplikacím (http, https), souborovým serverům (CIFS, ftp), konzolím serverů (RDP, SSH, telent, vnc). Cisco ASA pracuje jako bezpečná proxy, takže veškerý provoz od klienta je směrován na toto zařízení a odsud je navazováno nové spojení na cílovou aplikaci. To může způsobit problémy některých aplikací, ale zajišťuje vyšší bezpečnost. Pokud se třeba připojí zavirovaný klient, tak se vir nemůže šířit (běžným způsobem) do firmy.

Pokud jde například o https webové aplikace, tak bychom mohli považovat použití SSL VPN jako zbytečné a duplicitní. Ale není to vždy tak a ASA zvyšuje bezpečnost. Webové aplikace často mají několik stránek, které jsou veřejně přístupné, a na ně může být prováděn útok. Také webové a aplikační servery mají různé chyby, na které se dá zaútočit.

Přes Clientless SSL VPN můžeme nastavit přístup k předem vybrané skupině zdrojů na firemní síti (což je bezpečnější možnost). Nebo můžeme povolit přístup ke všem zdrojům daného protokolu (k dispozici je pole pro zadání adresy). Oficiálně podporovaný klient je Internet Explorer 6, 7, 8 a Firefox 3 z různých verzí Windows, Linux a Mac OS.

Výše popsané jsou základní možnosti Clientless SSL VPN, těm se budeme věnovat v tomto článku. Příště se podíváme na další možnosti, které umožní ještě širší využití tohoto typu VPN. Hlavně se jedná o Smart Tunnel a Cisco Secure Desktop.

Ve starších materiálech Cisco se SSL VPN dělí na tři možnosti:

  • Clientless SSL VPN (WebVPN) - přístup přes webový prohlížeč
  • Thin-Client SSL VPN (Port Forwarding) - využije se Java applet, který namapuje statický serverový port na nějaký lokální, tedy tunelování portu
  • SSL VPN Client (Tunnel Mode) - plný VPN přístup pomocí klienta, buď je standardně instalovaný, nebo se stahuje z webu pouze na dobu spojení

Co budeme nastavovat

Vytvoříme portál, přístupný přes https protokol, který dovolí přístup na interní webový server a firemní fileserver. Uživatelé se budou autentizovat přes RADIUS server (k Active Directory).

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 Clientless SSL VPN na Cisco ASA

Mohli bychom pro nastavení využít průvodce v menu Wizards - VPN Wizards - Clientless SSL VPN Wizard, ale radši budeme postupovat ručně. Základní konfigurace je o dost jednodušší, než u IPsec VPN. Pokud ale chceme vše nastavit pěkně a bezpečně, tak musíme detailně upravit jednotlivé stránky portálu a specifikovat přístupné zdroje ve firemní síti. Dopředu je také dobré připravit SSL certifikát pro portál, pokud nemáme k dispozici žádnou certifikační autoritu, tak můžeme využít self-signed certifikát, který vygeneruje ASA.

Hlavní objekty, které musíme, nastavit jsou:

  • Portal - celá skupina nastavení (portal resources), které definují, jak bude vypadat webový portál, vybíráme zde zdroje, které budou přístupné, a definujeme vzhled (buď modifikací existujících šablon, nebo můžeme provést kompletní úpravu nahráním HTML kódu)
    • Bookmarks - pevně definované odkazy na zdroje
    • Client-Server Plugins - umožní přístup na speciální služby (například RDP, SSH) pomocí pluginu skrze webový prohlížeč (Java)
    • Smart Tunnels - vytvoří tunel pro určitou aplikaci na klientovi, veškerý provoz z aplikace je pak směrován do tunelu a skrze ASA do firemní sítě, můžeme tedy využít i jiné aplikace než jen webový prohlížeč
    • Port Forwarding - přesměruje lokální port uživatele na nějakou aplikaci na serveru (například localhost:9025 směruje na mail.firma.local:25), takže umožní přístup nějaké aplikaci, dnes se doporučuje využít Smart Tunnels
    • Customization - umožňuje konfigurovat vzhled logon, logout a portal stránek
  • Group Policies - politiky řídí přístup uživatelů ke zdrojům (resource control) a chování spojení (session control), tedy co a jak uživatel vidí, přiřazujeme modifikace Portal
  • Connection Profiles (dříve Tunnel Group) - určuje parametry pro vytvoření session, hlavně řídí autentizaci uživatelů, přiřazujeme do ní Group Policy
ASDM - Clientless SSL VPN

Průběh navázání Clientless SSL VPN

  • vybere se Connection Profile
  • přiřadí se Group Policy (případně uživatelské atributy z dalších míst)
  • provede se autentizace uživatele (podle nastavení v Connection Profile) a zobrazí se portálová stránka (podle definovaných parametrů)

Principy jsou zde obdobné jako u IPsec VPN, takže i zde můžeme využít Dynamic Access Policy (DAP), které mají větší váhu než Group Policy. Pro zabezpečení na straně koncové stanice můžeme využít Secure Desktop Manager (SDM).

Opět je důležité, jak se přiřadí určitý Connection Profile. Možností patrně moc není. Buď povolíme uživateli zvolit profil na přihlašovací stránce. Nebo se automaticky použije defaultní profil DefaultWEBVPNGroup. Takže v praxi asi často využijeme defaultní profil a politiky budeme řídit na úrovni přiřazení Group Policy (a podobně).

Group Policy můžeme přiřadit z Connection Profile nebo ji přiřadit uživateli (lokálnímu můžeme podrobně nastavovat všechny parametry Clientless SSL VPN) třeba z RADIUS serveru pomocí atributu 25. Také se v tomto místě využije defaultní Group Policy DfltGrpPolicy a DAP.

Postup konfigurace Clientless SSL VPN prakticky

Budeme vycházet z toho, že základní konfiguraci Cisco ASA již máme hotovou. Byla popsána v odstavci 1. Konfigurace ASA zařízení článku VPN 3 - Konfigurace IPsec Remote Access VPN na Cisco ASA. Nemusíme ale řešit přidělování IP adres z DHCP, protože pro komunikaci používáme svoji adresu. Důležité je nezapomenout na nastavení routování. Oproti IPsec VPN, kde provoz prochází přes Tunnel interface, tak u Clientless VPN je iniciovaný přímo z ASA, takže ta musí mít dostupné všechny zdroje ve firemní síti.

Nakreslíme si stručné schéma zapojení a identifikujeme aplikace, které chceme zpřístupnit.

Schéma Clientless SSL VPN sítě

1. Základní konfigurace Clientless SSL VPN

Configuration > Remote Access VPN > DNS

Abychom mohli přistupovat k interním serverům pomocí DNS jména, tak musí ASA znát odpovídající (interní) DNS server. Ten se nastavuje zde. Configure one DNS server group znamená, že se vytvoří jedna skupina s DNS servery se jménem DefaultDNS.

  • Primary DNS Server: IP adresa hlavního DNS serveru
  • Secondary Servers: IP adresa záložního DNS serveru
  • Domain Name: interní doména

Zároveň zde musíme povolit, na jakém interface jsou DNS dotazy umožněny. V sekci DNS Lookup povolíme DNS pro inside interface.

Configuration > Remote Access VPN > Clientless SSL VPN Access > Group Policies

Můžeme vytvořit jednu nebo více politik pro přístup nebo můžeme pouze upravit defaultní DfltGrpPolicy (tu minimálně zkontrolujeme, protože Iherited hodnoty se použijí z ní). Rozhodneme se vytvořit novou politiku Clientless_policy. Většinu hodnot necháme Iherited, ale v záložce General rozklikneme More Options a v tunneling protocols zaškrtneme Clientless SSL VPN. Tím povolíme uživatelům, kterým se přiřadí tato politika, přístup na Clientless SSL VPN.

Configuration > Remote Access VPN > Clientless SSL VPN Access > Connection Profiles

Nahoře na stránce v sekci Access Interfaces, musíme povolit clientless SSL VPN pro určitý interface. Náš se jmenuje outside. Pomocí tlačítka Device Certificate bychom měli přiřadit SSL certifikát.

Potom můžeme vytvořit nový profil nebo upravit defaultní. Jak jsme si řekli výše u přiřazování Connection Profiles uživateli, tak použijeme defaultní DefaultWEBVPNGroup. Nastavíme pár vlastností:

  • Method: AAA
  • AAA Server Group: naše AAA skupina
  • DNS Server Group: DefaultDNS
  • Default Group Policy: Clientless_policy
  • Enable clientless SSL VPN protocol

Pokud chceme využít jiný než defaultní profil, tak musíme na stránce povolit nastavení, které dovolí profil vybírat. Ve výběru se objeví pouze profily, u kterých je nastavená hodnota Aliases.

Allow user to select connection, identified by alias in the table above, at login page.
Clientless SSL VPN - login portal page

Přes CLI - nastavení parametru pro Connection Profile

Stejně jako u IPsec VPN (protože metoda je shodná) musíme na profilu provést následující nastavení přes příkazovou řádku, pokud na RADIUS serveru chceme používat MS-CHAPv2.

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

Dokud tak neučiníme, tak autentizace na RADIUS půjde přes PAP. A pokud máme na RADIUSu povolený pouze MS-CHAPv2, tak nám neprojde. Na RADIUS serveru se zaloguje, že požadavek přišel přes nepodporovaný PAP. Čekal bych, že se nějaká chyba při přihlašování zapíše do logu na ASA, ale ono se to píše pouze jako Information (6) AAA user authentication Rejected, takže to lehce přehlédneme (pokud si například posíláme chyby na syslog).

2. Rozšířená nastavení Clientless SSL VPN

Po předchozím nastavení bychom se již mohli přihlásit na portál a viděli bychom defaultní položky, takže VPN je funkční. Ale asi budeme chtít zvýšit bezpečnost omezením přístupu a firemně modifikovat vzhled portálových stránek.

Configuration > Remote Access VPN > Clientless SSL VPN Access > Portal > Bookmarks

Bookmark list obsahuje seznam zdrojů, které jsou přístupné z Portal page. Přiřazujeme jej pomocí Group Policy, na uživatele nebo pomocí DAP. Vytvoříme pojmenovaný seznam a do něj umisťujeme odkazy různých protokolů.

Configuration > Remote Access VPN > Clientless SSL VPN Access > Group Policies

Přiřazení Bookmark Listu je nejběžnější přes Group Policy. Otevřeme vybranou politiku a přepneme se na záložku Portal, do položky Bookmark List zadáme náš seznam.

Pro větší bezpečnost se doporučuje provést další nastavení a to je zakázat zadávat adresu serveru ručně a nechat pouze možnost Bookmarků. Nastavení je také (mimo jiné) v Group Policy na záložce Portal, položka URL Entry. V praxi jsem musel nastavit na Disabled i položku File Server Entry, která by se měla týkat pouze souborových serverů.

Configuration > Remote Access VPN > Clientless SSL VPN Access > Advanced > Web ACLs

Pro lepší zabezpečení je dále doporučeno vytvořil Web ACL, kde se vyjmenují povolené adresy (pomocí URL či adresy služby). Vytvoříme ACL a do něj zadáme jednotlivé záznamy ACE. Web ACL pak přiřadíme ke Group Policy na záložce General, rozklikneme More Options a položka Web ACL.

Configuration > Remote Access VPN > Clientless SSL VPN Access > Portal > Web Contents

Na tomto místě můžeme na ASA importovat soubory, které využijeme pro úpravy portálových stránek. Příkladem je logo firmy či stránka v HTML.

Configuration > Remote Access VPN > Clientless SSL VPN Access > Portal > Customization

Opět musíme zvážit, zda budeme upravovat defaultní objekt nebo vytvoříme nový a přiřadíme k určité Group Policy/Connection Profile. Pomocí Customization můžeme relativně jednoduše upravit vzhled portálových stránek. Pokud chceme provést kompletní změnu portálu, tak provedeme tzv. Full Customization, popis třeba v Replacing the Logon Page with your own Fully Customized Page.

Na hlavní stránce také můžeme zapnout použíti OnScreen klávesnice pro přihlašovací stránku (nebo všechny, kde se provádí autentizace). Potom se musí heslo zadávat myší na grafické klávesnici na obrazovce a zabráníme tak jeho odchycení pomocí Keylogger.

Pozn.: Můžeme vytvářet i různé jazykové mutace stránek Configuration > Remote Access VPN > Language Localization.

Configuration > Device Management > Advanced > SSL Settings

Pro bezpečnost SSL VPN je důležité jaká verze SSL/TLS se použije a jaké se využijí šifrovací algoritmy (například nepoužívat RC4-MD5). Nastavení můžeme řídit zde.

3. Různé politiky pro uživatele z RADIUS serveru

Myslím, že často nastane situace, kdy potřebujeme různým uživatelům nastavit různá oprávnění. Společně s tím, že autentizace uživatelů je vůči RADIUS serveru (který využívá nějakou adresářovou službu, pro nás MS Active Directory). Pro řízení máme několik možností, ale jako hlavní mě připadá Group Policy.

U IPsec VPN můžeme přiřazovat Group Policy podle Connection Profile a ten podle údaje v certifikátu, který nainstalujeme uživateli. Případně, při použití PSK, musí znát uživatel jméno profilu a to zadat (tedy něco jako heslo), to již ale tak bezpečné není, protože může zjistit jméno jiného profilu a nic mu nezabrání jeho použití. U Clientless VPN se buď použije defaultní profil (takže nic nerozdělíme) nebo se uživateli zobrazí kombo, kde si může vybrat profil, ale opět mu nic nebrání, aby si vybral libovolný.

Pro řízení je tedy asi jediná možnost a to přiřadit Group Policy napevno uživateli. Pro lokální uživatele by to bylo jednoduché, ale nás zajímá RADIUS server. Samozřejmě tu možnost je a není ani složitá. Další popis uvádí standardní možnost, řada věcí se dá nastavit jinak. Používáme MS Active Directory a RADIUS, který je součástí Windows Server 2008, tedy Network Policy and Access Services (NPS).

  • AD musíme uživatele rozdělit do skupin (Group) tak, jak jim chceme přiřazovat různé politiky
  • na NPS vytvoříme stejný počet Network Policies a jako Conditions nastavíme klienta (Cisco ASA) a Windows Group (pro každou politiku jednu skupinu z AD)
  • v každé Network Policy nastavíme Settings - RADIUS Attributes - Standard nový atribut číslo 25 (jméno Class) jako string s hodnotou OU=Policy_group (vždy název politiky na ASA odpovídající skupině uživatelů, musí existovat)

Potom se stane to, že uživatel při přihlášení použije nějaký Connection Profile, třeba i defaultní, a z něj se mu přiřadí Group Policy. Po autentizaci dostane z RADIUS serveru atribut s jinou Group Policy a ta přepíše dříve přiřazenou hodnotu.

zobrazeno: 14441krát | Komentáře [0]

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

Zatím tento záznam nikdo nekomentoval.

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