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:

  1. 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);
  2. 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;
  3. 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:

  1. 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;
  2. 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).
  3. 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.
  4. 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í)
  5. 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:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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).

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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
  • OSX — SHA-256 hash PlatformUUID
  • Linux — SHA-256 hash UUID koreňového oddielu.
  • Apple iOS — SHA-256 hash PlatformUUID
  • Android – Pozri dokument na odkaz

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.

tunnel-group-map enable rules
!
crypto ca certificate map OU-Map 6
 subject-name attr ou eq securebank-ra
!
webvpn
 anyconnect profiles SECUREBANK disk0:/securebank.xml
 certificate-group-map OU-Map 6 SECURE-BANK-VPN
!

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 opis UDID 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.

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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;

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

Autorizačný profil použitý v etapách 1,2,3 je takýto:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

Z portálu DUO vidíme úspešnú autentifikačnú udalosť:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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:

Implementácia konceptu vysoko bezpečného vzdialeného prístupu

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;

Odkazy na články série Cisco VPN:

Zdroj: hab.com

Pridať komentár