Implementácia konceptu vysoko bezpečného vzdialeného prístupu
Pokračovanie série článkov na tému organizácie Vzdialený prístup VPN prístup Nemôžem si pomôcť, ale podeliť sa o svoje zaujímavé skúsenosti s nasadením vysoko bezpečná konfigurácia VPN. Jeden zákazník predložil netriviálnu úlohu (v ruských dedinách sú vynálezcovia), ale výzva bola prijatá a kreatívne zrealizovaná. Výsledkom je zaujímavý koncept s nasledujúcimi charakteristikami:
Niekoľko faktorov ochrany pred zámenou koncového zariadenia (s prísnou väzbou na používateľa);
Posúdenie súladu PC užívateľa s prideleným UDID povoleného PC v autentifikačnej databáze;
S MFA pomocou PC UDID z certifikátu na sekundárnu autentifikáciu cez Cisco DUO (Môžete pripojiť akýkoľvek kompatibilný so SAML/Radius);
Viacfaktorové overenie:
Užívateľský certifikát s overením v teréne a sekundárnou autentizáciou voči jednému z nich;
Prihlasovacie meno (nezmeniteľné, prevzaté z certifikátu) a heslo;
Odhad stavu pripájajúceho sa hostiteľa (Pozícia)
Použité komponenty riešenia:
Cisco ASA (VPN brána);
Cisco ISE (Autentifikácia / Autorizácia / Účtovníctvo, Hodnotenie stavu, CA);
Cisco DUO (viacfaktorové overenie) (Môžete pripojiť akýkoľvek kompatibilný so SAML/Radius);
Cisco AnyConnect (Viacúčelový agent pre pracovné stanice a mobilné OS);
Začnime požiadavkami zákazníka:
Používateľ musí mať prostredníctvom svojej autentifikácie Login/Password možnosť stiahnuť si klienta AnyConnect z brány VPN; všetky potrebné moduly AnyConnect musia byť nainštalované automaticky v súlade so zásadami používateľa;
Používateľ by mal byť schopný automaticky vydať certifikát (pre jeden zo scenárov je hlavným scenárom manuálne vydanie a nahranie na PC), ale na ukážku som implementoval automatické vydanie (nikdy nie je neskoro na jeho odstránenie).
Základná autentifikácia musí prebehnúť v niekoľkých fázach, najprv je autentifikácia certifikátom s analýzou potrebných polí a ich hodnôt, potom login/heslo, len tentokrát je potrebné do prihlasovacieho okna vložiť užívateľské meno uvedené v poli certifikátu Názov predmetu (CN) bez možnosti úpravy.
Musíte sa uistiť, že zariadenie, z ktorého sa prihlasujete, je firemný notebook vydaný používateľovi na vzdialený prístup, a nie niečo iné. (Na splnenie tejto požiadavky bolo urobených niekoľko možností)
Stav pripojovacieho zariadenia (v tomto štádiu PC) by sa mal posúdiť kontrolou celej rozsiahlej tabuľky požiadaviek zákazníka (súhrnnej):
Súbory a ich vlastnosti;
záznamy v registri;
záplaty OS z poskytnutého zoznamu (neskôr integrácia SCCM);
Dostupnosť Anti-Virus od konkrétneho výrobcu a relevantnosť podpisov;
Činnosť určitých služieb;
Dostupnosť určitých nainštalovaných programov;
Na začiatok navrhujem, aby ste si určite pozreli video ukážku výslednej implementácie na Youtube (5 minút).
Teraz navrhujem zvážiť detaily implementácie, ktoré nie sú zahrnuté vo videoklipe.
Pripravíme profil AnyConnect:
Predtým som uviedol príklad vytvorenia profilu (v zmysle položky ponuky v ASDM) v mojom článku o nastavení Cluster vyrovnávania záťaže VPN. Teraz by som chcel osobitne poznamenať možnosti, ktoré budeme potrebovať:
V profile uvedieme bránu VPN a názov profilu pre pripojenie ku koncovému klientovi:
Nakonfigurujme automatické vydávanie certifikátu zo strany profilu s uvedením najmä parametrov certifikátu a charakteristicky venujte pozornosť poli Iniciály (I), kde sa ručne zadáva konkrétna hodnota SPRAVIL SI testovací stroj (jedinečný identifikátor zariadenia, ktorý generuje klient Cisco AnyConnect).
Tu chcem urobiť lyrickú odbočku, pretože tento článok popisuje koncept; na demonštračné účely sa UDID na vydanie certifikátu zadáva do poľa Iniciály profilu AnyConnect. Samozrejme, v reálnom živote, ak to urobíte, potom všetci klienti dostanú certifikát s rovnakým UDID v tejto oblasti a nič im nebude fungovať, pretože potrebujú UDID svojho konkrétneho PC. AnyConnect, žiaľ, zatiaľ neimplementuje nahradenie poľa UDID do profilu žiadosti o certifikát prostredníctvom premennej prostredia, ako to robí napríklad s premennou %USER%.
Stojí za zmienku, že zákazník (tohto scenára) spočiatku plánuje takýmto chráneným počítačom samostatne vydávať certifikáty s daným UDID v manuálnom režime, čo pre neho nie je problém. Pre väčšinu z nás však chceme automatizáciu (no, pre mňa je to pravda =)).
A to je to, čo môžem ponúknuť z hľadiska automatizácie. Ak AnyConnect ešte nedokáže vystaviť certifikát automaticky dynamickým nahradením UDID, potom je tu ďalší spôsob, ktorý si bude vyžadovať trochu kreatívneho myslenia a šikovné ruky – poviem vám koncept. Najprv sa pozrime na to, ako agent AnyConnect generuje UDID v rôznych operačných systémoch:
Windows — SHA-256 hash kombinácie DigitalProductID a Machine SID kľúča databázy Registry
Podľa toho vytvoríme skript pre náš firemný OS Windows, pomocou tohto skriptu lokálne vypočítame UDID pomocou známych vstupov a vytvoríme žiadosť o vydanie certifikátu zadaním tohto UDID do požadovaného poľa, mimochodom, môžete použiť aj stroj certifikát vydaný AD (pridaním dvojitého overenia pomocou certifikátu do schémy Viacnásobný certifikát).
Pripravme nastavenia na strane Cisco ASA:
Vytvorme TrustPoint pre ISE CA server, bude to ten, ktorý bude vydávať certifikáty klientom. Nebudem uvažovať o postupe importu Key-Chain; príklad je opísaný v mojom článku o nastavení Cluster vyrovnávania záťaže VPN.
crypto ca trustpoint ISE-CA
enrollment terminal
crl configure
Distribúciu podľa Tunnel-Group konfigurujeme na základe pravidiel v súlade s poľami v certifikáte, ktorý sa používa na autentifikáciu. Tu je tiež nakonfigurovaný profil AnyConnect, ktorý sme vytvorili v predchádzajúcej fáze. Upozorňujeme, že používam hodnotu SECUREBANK-RA, na prenos používateľov s vydaným certifikátom do tunelovej skupiny SECURE-BANK-VPN, uvedomte si, že toto pole mám v stĺpci Žiadosť o certifikát profilu AnyConnect.
Nastavenie autentifikačných serverov. V mojom prípade ide o ISE pre prvú fázu autentifikácie a DUO (Radius Proxy) ako MFA.
! CISCO ISE
aaa-server ISE protocol radius
authorize-only
interim-accounting-update periodic 24
dynamic-authorization
aaa-server ISE (inside) host 192.168.99.134
key *****
!
! DUO RADIUS PROXY
aaa-server DUO protocol radius
aaa-server DUO (inside) host 192.168.99.136
timeout 60
key *****
authentication-port 1812
accounting-port 1813
no mschapv2-capable
!
Vytvárame skupinové politiky a skupiny tunelov a ich pomocné komponenty:
Skupina tunelov Predvolená skupina WEBVPNG bude slúžiť predovšetkým na stiahnutie klienta AnyConnect VPN a vydanie užívateľského certifikátu pomocou funkcie SCEP-Proxy ASA; na to máme aktivované zodpovedajúce možnosti ako na samotnej tunelovej skupine, tak aj na pridruženej skupinovej politike AC-Stiahnutiea na načítanom profile AnyConnect (polia na vydanie certifikátu atď.). Aj v tejto skupinovej politike uvádzame potrebu sťahovania ISE modul držania tela.
Skupina tunelov SECURE-BANK-VPN budú automaticky použité klientom pri autentifikácii vydaným certifikátom v predchádzajúcej fáze, keďže v súlade s Mapou certifikátov bude spojenie spadať práve na túto skupinu tunelov. Tu vám poviem o zaujímavých možnostiach:
sekundárny-autentizačný-server-skupina DUO # Nastavte sekundárne overenie na serveri DUO (Radius Proxy)
username-from-certificateCN # Pre primárnu autentifikáciu používame pole CN certifikátu na zdedenie prihlásenia používateľa
sekundárne-užívateľské meno-z-certifikátu I # Na sekundárnu autentifikáciu na serveri DUO používame extrahované používateľské meno a polia Iniciály (I) certifikátu.
pre-fill-username client # urobte užívateľské meno predvyplnené v autentifikačnom okne bez možnosti zmeny
second-pre-fill-username client hide use-common-password push # Okno na zadanie prihlasovacieho mena/hesla pre sekundárnu autentifikáciu DUO skryjeme a namiesto poľa hesla použijeme metódu notifikácie (sms/push/telefón) - dock na vyžiadanie autentifikácie tu
!
access-list posture-redirect extended permit tcp any host 72.163.1.80
access-list posture-redirect extended deny ip any any
!
access-list VPN-Filter extended permit ip any any
!
ip local pool vpn-pool 192.168.100.33-192.168.100.63 mask 255.255.255.224
!
group-policy SECURE-BANK-VPN internal
group-policy SECURE-BANK-VPN attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
group-policy AC-DOWNLOAD internal
group-policy AC-DOWNLOAD attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
scep-forwarding-url value http://ise.ashes.cc:9090/auth/caservice/pkiclient.exe
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
tunnel-group DefaultWEBVPNGroup general-attributes
address-pool vpn-pool
authentication-server-group ISE
accounting-server-group ISE
default-group-policy AC-DOWNLOAD
scep-enrollment enable
tunnel-group DefaultWEBVPNGroup webvpn-attributes
authentication aaa certificate
!
tunnel-group SECURE-BANK-VPN type remote-access
tunnel-group SECURE-BANK-VPN general-attributes
address-pool vpn-pool
authentication-server-group ISE
secondary-authentication-server-group DUO
accounting-server-group ISE
default-group-policy SECURE-BANK-VPN
username-from-certificate CN
secondary-username-from-certificate I
tunnel-group SECURE-BANK-VPN webvpn-attributes
authentication aaa certificate
pre-fill-username client
secondary-pre-fill-username client hide use-common-password push
group-alias SECURE-BANK-VPN enable
dns-group ASHES-DNS
!
Ďalej prejdeme k ISE:
Nakonfigurujeme lokálneho používateľa (môžete použiť AD/LDAP/ODBC a pod.), pre jednoduchosť som v samotnom ISE vytvoril lokálneho používateľa a priradil som ho v poli opisUDID PC z ktorej má povolené prihlásiť sa cez VPN. Ak použijem lokálnu autentifikáciu na ISE, budem obmedzený len na jedno zariadenie, keďže polí nie je veľa, ale v autentifikačných databázach tretích strán takéto obmedzenia mať nebudem.
Pozrime sa na autorizačnú politiku, je rozdelená do štyroch fáz pripojenia:
Krok 1 — Zásady sťahovania agenta AnyConnect a vydávania certifikátu
Krok 2 — Primárna autentizačná politika Prihlásenie (z certifikátu)/Heslo + Certifikát s overením UDID
Krok 3 — Sekundárna autentifikácia cez Cisco DUO (MFA) s použitím UDID ako používateľského mena + posúdenie stavu
Krok 4 — Konečné povolenie je v stave:
Vyhovujúce;
validácia UDID (z certifikátu + väzba prihlásenia),
Cisco DUO MFA;
Autentifikácia prihlásením;
Overenie certifikátu;
Pozrime sa na zaujímavý stav UUID_VALIDATED, len to vyzerá, že overujúci používateľ skutočne prišiel z počítača s povoleným UDID priradeným v poli Popis účtu, podmienky vyzerajú takto:
Autorizačný profil použitý v etapách 1,2,3 je takýto:
Môžete presne skontrolovať, ako sa k nám dostane UDID z klienta AnyConnect, keď sa pozriete na podrobnosti relácie klienta v ISE. Podrobne uvidíme, že AnyConnect cez mechanizmus ACIDEX odosiela nielen informácie o platforme, ale aj UDID zariadenia ako Cisco-AV-PAIR:
Venujme pozornosť certifikátu vydanému používateľovi a poli Iniciály (I), ktorý sa používa ako prihlasovacie meno pre sekundárnu MFA autentifikáciu na Cisco DUO:
Na strane DUO Radius Proxy v protokole jasne vidíme, ako sa vykonáva žiadosť o autentifikáciu, prichádza s použitím UDID ako používateľského mena:
Z portálu DUO vidíme úspešnú autentifikačnú udalosť:
A vo vlastnostiach užívateľa to mám nastavené ALIAS, ktorý som použil na prihlásenie, toto je UDID počítača povoleného na prihlásenie:
V dôsledku toho sme dostali:
Viacfaktorová autentifikácia používateľa a zariadenia;
Ochrana pred spoofingom zariadenia používateľa;
Posúdenie stavu zariadenia;
Potenciál zvýšenej kontroly s certifikátom doménového stroja atď.;
Komplexná ochrana vzdialeného pracoviska s automaticky nasadenými bezpečnostnými modulmi;