Pozn.: Důležité je, že popis vychází z Cisco ASA verze 8.4(1) a ASDM verze 6.4(1), v průběhu testovaní jsem upgradoval na 6.4(3). Konfigurace ve starších verzích může být výrazně odlišná.
Port Forwarding
Pomocí Port Forwarding můžeme dovolit přístup některým aplikacím na servery ve firemní síti a to přes navázanou Clientless VPN. Princip je takový, že se vytvoří lokální listener na klientovi, který poslouchá na zadaném portu a vše co přijme, posílá tunelem na cílový server a port.
Tato metoda zařídí přesměrování portů z lokální stanice skrze ASA (a Clientless VPN) do interní sítě. Tím umožní provoz některých aplikací, které používají statické TCP porty, aniž bychom potřebovali plnohodnotnou VPN. Jedná se o starší metodu a Cisco dnes doporučuje využívat Smart Tunnels. Princip obou metod je rozdílný, ale výhody Smart Tunnels převládají.
Pro provoz potřebujeme oprávnění administrátora na stanici a protože se jedná o Java Applet, tak instalovanou Javu (Sun JRE minimálně 1.4). Tento applet začne poslouchat na definovaném portu na localhostu (tedy 127.0.0.1). Takže v konfiguraci na ASA jako lokální port musíme nastavit takový, který není na klientech používaný. A přijatá data se přeposílají skrze SSL tunel na cílovou IP adresu a port.
Configuration > Remote Access VPN > Clientless SSL VPN Access > Portal > Port Forwarding
Vytvoříme Port Forwarding List s popisným názvem a do něj přidáme Port Forwarding Entry, tedy jednotlivá pravidla, kde zadáváme lokální a vzdálený TCP port a IP adresu vzdáleného serveru. Teoreticky mohou být oba porty stejné, ale pokud chceme například použít RDP, tedy port 3389, tak většinou musíme použít lokální port jiný (protože RDP běží i na klientovi).
Configuration > Remote Access VPN > Clientless SSL VPN Access > Group Policies
Vytvořený Port Forwarding List pak přiřazujeme k určité Group Policy (další možností je Dynamic Access Policy nebo přímo uživateli). Editujeme politiku, kde chceme přiřadit Port Forwarding List a na záložce Portal pod Port Forwarding Control vybereme náš seznam.
Můžeme také zaškrtnout položku Auto Applet Download, potom se hned po přihlášení na portál, otevře okno, které spustí Port Forwarding applet. Manuální spuštění se nachází na záložce Application Access pod tlačítkem Start Applications (můžeme mít přiřazen pouze jeden seznam a ten se celý aplikuje). Při použití musíme komunikaci z aplikace směrovat ne na IP adresu serveru, ale na lokální adresu a určený port.
Smart Tunnels
Pomocí Smart Tunnels zajistíme, že veškerý provoz ze specifikované aplikace (procesu) na klientovi, je posílán skrze SSL tunel do interní sítě. Mluví se o dvou typech, o Smart Tunnel Application Access (viz. předchozí popis) a Smart Tunnel Enabled Bookmark (v podstatě se nastaví pro prohlížeč, více dále).
Jak jsme řekli, po zapnutí Smart Tunnelu, je provoz určeného procesu přesměrován do tunelu na Cisco ASA. Aplikace pak nemůže komunikovat do lokální sítě (potažmo napřímo do internetu). Také je důležité, že aplikace získá přístup do firemní sítě všude, kam má přístup ASA (neurčujeme cílový server). Pokud chceme komunikaci omezit, tak musíme použít Web ACL.
Můžeme tak například zajistit přístup z aplikace MS Outlook Express na interní POP3 server. Nebo přístup přes Remote Desktop Protocol (aplikace mstsc.exe) na nějaký server.
Dobrá vlastnost Smart Tunnelu je, že nemusíme mít práva administrátora. Pro funkčnost se nejprve zkusí použít ActiveX a potom Java. Smart Tunnel funguje pro hodně aplikací, ale ne pro všechny (například aplikace napsané v .NET). Výkonově se jedná o nejlepší možnost, například oproti pluginům.
Configuration > Remote Access VPN > Clientless SSL VPN Access > Portal > Smart Tunnels
Konfigurace Smart Tunnelu je velice jednoduchá a stejně tak i jeho použití (po zapnutí můžeme využívat aplikaci stejně, jako bychom byli ve firmě, není třeba žádná změna konfigurace). Vytvoříme Smart Tunnel Application List s nějakým názvem a do něj přidáváme jednotlivé položky Smart Tunnel Entry, kde je hlavní jméno procesu podle kterého se na klientovi hledá. Můžeme zadat i hash (kontrolní součet), podle kterého se přesně určí aplikace.
Configuration > Remote Access VPN > Clientless SSL VPN Access > Group Policies
Abychom Smart Tunnel Application List přiřadili uživateli, tak jej opět můžeme nastavit na určitou Group Policy, Dynamic Access Policy nebo přímo uživateli. Ve vybrané politice nalezneme nastavení na záložce Portal pod Smart Tunnel Application.
Můžeme zde také zaškrtnout položku Auto Start, pak se Smart Tunnel automaticky spustí po přihlášení. Nebo Smart Tunnel All Applications, potom jsou do tunelu posílána data všech procesů přihlášeného uživatele.
Configuration > Remote Access VPN > Clientless SSL VPN Access > Portal > Bookmarks
Trochu specifickou částí jsou Smart Tunnel Enabled Bookmark. Přes Smart Tunnel můžeme přistupovat i na webové stránky. Když u vytvořeného Bookmarku zaškrtneme Enable Smart Tunnel. Tak vlastně vytvoříme Smart Tunnel pro libovolný webový prohlížeč. Po kliknutí na takový odkaz na portálu se otevře nové okno prohlížeče a přistupujeme přímo na webovou stránku interního serveru. Je to rozdíl oproti přístupu přes proxy u klasické možnosti Clientless SSL VPN. Do tunelu je ale posílán veškerý provoz z instance webového prohlížeče, takže pokud to neošetříme pomocí Web ACL, tak může uživatel zadat různé interní webové adresy.
Configuration > Remote Access VPN > Clientless SSL VPN Access > Advanced > Web ACLs
Zde můžeme vytvářet Access Control Listy, které omezí provoz. Následně je pak přiřadíme ke Group Policy, Dynamic Access Policy nebo přímo uživateli. Vytváříme seznamy ACL a do nich jednotlivé záznamy ACE (Access Control Entry). Do pravidel můžeme vybírat protokol a adresy, ty zadáváme buď pomocí DNS jména nebo IP adresy. Forma zápisu je důležitá, protože tak se musí dále používat (DNS se nepřevádí na IP adresu). V adrese můžeme používat i zástupné znaky, jako * a ?.
Cisco Secure Desktop (CSD)
CSD je vlastnost, kterou můžeme využít u Clientless SSL VPN nebo s AnyConnect klientem. Nabízí několik funkcí, které se všechny týkají bezpečnosti na straně klienta. Většina funkcí CSD je dostupná i bez administrátorských oprávnění. Jsou vhodné na použití při přístupu z nezabezpečených počítačů. Komponenty jsou:
- Host Scan - na klientovi, který se chce připojit do VPN, kontroluje několik parametrů a připojení se povolí pouze, pokud jsou splněny. Může kontrolovat hodnoty v registrech, soubory, procesy, ověřit antivir a stáří definic (pro velké množství výrobců), firewall apod. Výsledek kontroly se posílá na ASA a pomocí DAP na něj můžeme reagovat (například připojení do karanténní sítě).
- Secure Desktop (Vault) - vytvoří virtuální desktop a šifrovaný oddíl, kam ukládá veškerá data během VPN spojení, po skočení session se celý obsah smaže
- Cache Cleaner - malá alternativa k Secure Desktop, po skončení session se pokusí smazat veškerá data prohlížeče, která se během spojení vytvořila (cache, hesla, autocomplete, apod.)
- Keystroke logger detection - detekuje přítomnost podezřelých aplikací, které by mohli provádět zachytávání kláves nebo emulaci klienta, v tom případě nepovolí přístup do VPN
U CSD je problém s podporovanými operačními systémy. Podpora je různá u jednotlivých komponent. Donedávna poslední verze byla 3.5.841.0 a ta nepodporovala Vault a Keystroke logger detection vůbec na Windows 7 (podporuje pouze 32bit verzi Windows XP a Windows Vista). Nyní nová verze 3.6.181.0 již podporuje Windows 7, ale pouze 32 bitové verze. Jako bezpečnostní chyba mi připadá, že když zapneme Vault na spojení, uživatel má nepodporovaný OS, tak se normálně připojí do Clientless VPN (krok s použitím Vaultu se prostě přeskočí a jde se dál).
Co se týče ostatních komponent, tak Host Scan a Cache Cleaner je podporovaný na všemožných Windows, Mac OS X a několika distribucích Linuxu.
Pozn.: Testy jsem prováděl nejprve s verzí 3.5.841 a potom jsem provedl upgrade na 3.6.181. CSD není vázáno na verzi ASA a je možno instalovat samostatně.
Configuration > Remote Access VPN > Secure Desktop Manager > Setup
Dokud nevybereme obraz CSD z flash paměti ASA, který se má používat, tak máme k dispozici pouze tuto volbu. Stránka nám dovolí vybrat image nahraný ve flash paměti nebo upload nové verze z počítače na ASA.
Dále je zde důležitá položka Enable Secure Desktop. Pokud ji zaškrtneme, tak se nám v ASDM zobrazí další položky pro konfiguraci jednotlivých funkcí. A hlavně se hned po aplikování zapne CSD. To znamená, že když nyní otevřeme portálovou stránku Clientless SSL VPN, tak se nejprve spustí CSD WebLaunch. Ten detekuje, jestli je k dispozici ActiveX nebo Java, nainstaluje komponenty a provede kontrolu (podle toho, co máme nakonfigurované). Teprve potom, pokud jsou kontroly v pořádku, tak se zobrazí přihlašovací stránka.
Configuration > Remote Access VPN > Secure Desktop Manager > Prelogin Policy > Default
V minulém kroku jsme zapnuli CSD, nyní musíme zapnout/konfigurovat jednotlivé funkce. Na tomto místě nastavujeme, jestli se má používat Secure Desktop (Vault) nebo Cache Cleaner nebo ani jedna možnost (použije se pouze Host Scan). Pokud zaškrtneme Vault, tak funguje přepad, pokud nelze použít Vault, tak se použije alespoň Cache Cleaner.
Configuration > Remote Access VPN > Secure Desktop Manager > Prelogin Policy
Na tomto místě můžeme pohodlně vytvořit strom rozhodnutí (decision tree), tedy různé kontroly před přihlášením, a nastavit, za jakých podmínek je možno se přihlásit. Kontrolovat můžeme záznam v registrech, soubor, certifikát, verzi OS či IP adresu.
Můžeme tedy jednoduše nastavit, že se uživatel může připojit pouze z Windows a z daného rozsahu adres. Pokud nejsou podmínky splněny, tak se ani nezobrazí přihlašovací stránka.
Configuration > Remote Access VPN > Secure Desktop Manager > Prelogin Policy > Default > Secure Desktop (Vault) General
Abychom se dostali do těchto nastavení, tak musíme mít zapnuto Secure Desktop (Vault), pak můžeme detailně nastavovat jeho možnosti. Zde jsou globální nastavení, třeba jestli se můžeme z bezpečného desktopu přepínat do standardního nebo povolení opakovaného použití desktopu.
Následující obrázek ukazuje, jak vypadá standardní Vault na klientovi, zde je téměř vše povoleno. Při restriktivním nastavení neuvidíme žádné ikony na ploše, ani lištu Start a k dispozici bude pouze webový prohlížeč.
Configuration > Remote Access VPN > Secure Desktop Manager > Prelogin Policy > Default > Secure Desktop (Vault) Settings
Zde se nachází bezpečnostní nastavení, můžeme omezit přístup k síťovým a usb diskům, zakázat tisk, úpravu registrů apod. Obrázek zobrazuje dialog při zavírání Vaultu.
Configuration > Remote Access VPN > Secure Desktop Manager > Host Scan
Host Scan nám dovolí získat nějaké informace z klientské stanice a při přihlašování podle nich rozhodnout, zda je přístup povolen. Testovat můžeme existenci souboru, klíče v registrech nebo běžící proces. Dále máme standardně k dispozici Host Scan Extension, která se jmenuje Endpoint Assessment. Ta nám dovolí testovat některý z desítek Antivirů, Firewallů či Antispywarů. Můžeme testovat, jestli běží proces dané aplikace (testovat můžeme podle výrobce, produktu i verze) a jak staré jsou definice.
Použití je takové, že v Host Scan si definujeme testy, které chceme využít. Ty na klientovi proběhnou v úvodní fázi WebLaunch Secure Desktop. Na rozdíl od Prelogin Policy se podle nich ještě nerozhoduje a v každém případě se zobrazí přihlašovací dialog. A teprve při autentizaci je můžeme využít. Abychom s výsledkem Host Scan mohli pracovat, tak musíme využít Dynamic Access Policy (DAP).
Configuration > Remote Access VPN > Clientless SSL VPN Access > Dynamic Access Policies
Defaultní politiku DfltAccessPolicy přepneme (Action) na Terminate (odmítnutí přístupu) nebo Quarantine (karanténa - uplatní se speciální definované přístupy), protože při nesplnění podmínek ostatních politik by se použila tato a my chceme, aby výsledkem bylo nepřihlášení se.
Vytvoříme novou politiku a nastavíme podmínky, na koho se má aplikovat (podle jména uživatele, group policy, apod.). Vedle nastavíme jaké endpoint attributes musí klient splňovat, zde můžeme vybírat předpřipravené položky z Host Scan. Pokud chceme, aby někteří uživatelé mohli přistupovat bez splnění těchto podmínek, tak musíme vytvořit další politiku, kde vybereme tyto uživatele a již nezadáváme jiné podmínky.
Následně, když se klient autentizuje, tak se hledá DAP, která splňuje zadané podmínky. Pokud se nalezne, tak jsme přihlášeni. Pokud se žádná nenalezne, tak se použije DfltAccessPolicy, kde jsme zakázali přístup.
Configuration > Remote Access VPN > Secure Desktop Manager > Prelogin Policy > Default > Cache Cleaner
Pokud zapneme Cache Cleaner, tak zde se dají nastavit nějaké parametry. Teoreticky by měl fungovat jednoduše bez nějakého nastavování. Mě se ale funkci Cache Cleaner nepodařilo zprovoznit. Pokud s ní máte zkušenosti, tak uvítám vaše rady v komentářích.
K endpoint atributum dluzno dodat, ze kontrola certifikatu se v tomto pripadu omezuje na pouhe porovnavani retezcu v nem obsazenych .
Jinymi slovy, muzu zadat podminku ze "cn=xyz" a "ou=123", ale zda-li ten je ten certifikat vubec platny nikoho nezajima. Proste neco na urovni, srovnatelne s vyse zminovanou kontrolou pritomnosti urciteho souboru ve filesystemu ci klice v registrech.