Implementacija koncepta visoko sigurnog udaljenog pristupa

Nastavak serije članaka na temu organizacije VPN s udaljenim pristupom pristup Ne mogu ne podijeliti svoje zanimljivo iskustvo implementacije vrlo sigurna VPN konfiguracija. Jedan kupac predstavio je netrivijalan zadatak (u ruskim selima ima izumitelja), ali je Izazov prihvaćen i kreativno proveden. Rezultat je zanimljiv koncept sa sljedećim karakteristikama:

  1. Nekoliko faktora zaštite od zamjene terminalnog uređaja (uz striktno vezivanje za korisnika);
    • Procjena usklađenosti korisničkog računala s dodijeljenim UDID-om dopuštenog računala u autentifikacijskoj bazi podataka;
    • Uz MFA koji koristi PC UDID iz certifikata za sekundarnu autentifikaciju putem Cisco DUO (Možete priložiti bilo koji koji je kompatibilan sa SAML/Radiusom);
  2. Autentikacija s više faktora:
    • Korisnički certifikat s terenskom provjerom i sekundarnom autentifikacijom prema jednom od njih;
    • Prijava (nepromjenjiva, preuzeta iz certifikata) i lozinka;
  3. Procjena stanja glavnog računala za povezivanje (držanje)

Korištene komponente rješenja:

  • Cisco ASA (VPN pristupnik);
  • Cisco ISE (Autentifikacija / Autorizacija / Računovodstvo, Državna evaluacija, CA);
  • Cisco DUO (provjera autentičnosti s više faktora) (Možete priložiti bilo koji koji je kompatibilan sa SAML/Radiusom);
  • Cisco AnyConnect (Višenamjenski agent za radne stanice i mobilni OS);

Počnimo sa zahtjevima kupca:

  1. Korisnik mora, kroz svoju prijavu/lozinku, moći preuzeti AnyConnect klijent s VPN pristupnika; svi potrebni AnyConnect moduli moraju se automatski instalirati u skladu s pravilima korisnika;
  2. Korisnik bi trebao biti u mogućnosti automatski izdati certifikat (za jedan od scenarija, glavni scenarij je ručno izdavanje i učitavanje na računalu), ali sam implementirao automatsko izdavanje za demonstraciju (nikada nije kasno za uklanjanje).
  3. Osnovna autentifikacija mora se odvijati u nekoliko faza, prvo ide autentifikacija certifikata s analizom potrebnih polja i njihovih vrijednosti, zatim prijava/lozinka, samo ovaj put korisničko ime navedeno u polju certifikata mora biti umetnuto u prozor za prijavu Naziv predmeta (CN) bez mogućnosti uređivanja.
  4. Morate biti sigurni da je uređaj s kojeg se prijavljujete korporativno prijenosno računalo izdano korisniku za daljinski pristup, a ne nešto drugo. (Napravljeno je nekoliko opcija kako bi se zadovoljio ovaj zahtjev)
  5. Stanje priključnog uređaja (u ovoj fazi računala) treba procijeniti provjerom cijele pozamašne tablice zahtjeva kupaca (sažeto):
    • Datoteke i njihova svojstva;
    • Upisi u registar;
    • OS zakrpe s ponuđenog popisa (kasnija SCCM integracija);
    • Dostupnost antivirusnog programa određenog proizvođača i relevantnost potpisa;
    • Djelatnost pojedinih službi;
    • Dostupnost određenih instaliranih programa;

Za početak, predlažem da svakako pogledate video demonstraciju rezultirajuće implementacije na Youtube (5 minuta).

Sada predlažem da razmotrimo detalje implementacije koji nisu obuhvaćeni video isječkom.

Pripremimo AnyConnect profil:

Prethodno sam dao primjer stvaranja profila (u smislu stavke izbornika u ASDM-u) u svom članku o postavkama VPN klaster za uravnoteženje opterećenja. Sada bih želio zasebno napomenuti opcije koje će nam trebati:

U profilu ćemo navesti VPN gateway i naziv profila za povezivanje s krajnjim klijentom:

Implementacija koncepta visoko sigurnog udaljenog pristupa

Konfigurirajmo automatsko izdavanje certifikata sa strane profila, posebno navodeći parametre certifikata i, što je karakteristično, obratite pozornost na polje Inicijali (I), gdje je određena vrijednost ručno unesena UID testni stroj (Jedinstveni identifikator uređaja koji generira klijent Cisco AnyConnect).

Implementacija koncepta visoko sigurnog udaljenog pristupa

Ovdje želim napraviti lirsku digresiju, budući da ovaj članak opisuje koncept; radi demonstracije, UDID za izdavanje certifikata unosi se u polje Initials profila AnyConnect. Naravno, u stvarnom životu, ako to učinite, tada će svi klijenti dobiti certifikat s istim UDID-om u ovom polju i ništa im neće raditi, jer trebaju UDID svog specifičnog računala. AnyConnect, nažalost, još ne implementira zamjenu UDID polja u profil zahtjeva za certifikatom putem varijable okruženja, kao što to čini, na primjer, s varijablom %KORISNIK%.

Vrijedno je napomenuti da kupac (ovaj scenarij) u početku planira samostalno izdavati certifikate sa zadanim UDID-om u ručnom načinu rada takvim Zaštićenim računalima, što mu ne predstavlja problem. Međutim, za većinu nas želimo automatizaciju (dobro, za mene je istina =)).

I to je ono što mogu ponuditi u smislu automatizacije. Ako AnyConnect još nije u mogućnosti automatski izdati certifikat dinamičkom zamjenom UDID-a, onda postoji još jedan način koji će zahtijevati malo kreativnog razmišljanja i vješte ruke - reći ću vam koncept. Prvo, pogledajmo kako agent AnyConnect generira UDID na različitim operativnim sustavima:

  • Windows — SHA-256 raspršivanje kombinacije ključa registra DigitalProductID i Machine SID
  • OSX — SHA-256 hash PlatformUUID
  • Linux — SHA-256 raspršivanje UUID-a korijenske particije.
  • Apple iOS — SHA-256 hash PlatformUUID
  • Android – Vidi dokument na link

U skladu s tim, kreiramo skriptu za naš korporativni Windows OS, s ovom skriptom lokalno izračunavamo UDID koristeći poznate ulaze i formiramo zahtjev za izdavanje certifikata unosom ovog UDID-a u potrebno polje, usput, možete koristiti i stroj certifikat koji izdaje AD (dodavanjem dvostruke provjere autentičnosti pomoću certifikata u shemu Višestruki certifikat).

Pripremimo postavke na strani Cisco ASA:

Kreirajmo TrustPoint za ISE CA poslužitelj, on će biti taj koji će izdavati certifikate klijentima. Neću razmatrati postupak uvoza Key-Chaina; primjer je opisan u mom članku o postavljanju VPN klaster za uravnoteženje opterećenja.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Konfiguriramo distribuciju po Tunnel-Group na temelju pravila u skladu s poljima u certifikatu koji se koristi za autentifikaciju. AnyConnect profil koji smo napravili u prethodnoj fazi također je konfiguriran ovdje. Imajte na umu da koristim vrijednost SECUREBANK-RA, za prijenos korisnika s izdanim certifikatom u grupu tunela SIGURNA BANKA-VPN, imajte na umu da ovo polje imam u stupcu zahtjeva za certifikat profila 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
!

Postavljanje autentifikacijskih poslužitelja. U mom slučaju, ovo je ISE za prvi stupanj autentifikacije i DUO (Radius Proxy) kao 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
!

Kreiramo grupna pravila i grupe tunela i njihove pomoćne komponente:

Grupa tunela Zadana WEBVPNGrupa koristit će se prvenstveno za preuzimanje AnyConnect VPN klijenta i izdavanje korisničkog certifikata korištenjem SCEP-Proxy funkcije ASA; za to imamo odgovarajuće opcije aktivirane i na samoj grupi tunela i na pridruženoj grupnoj politici AC-Preuzimanje, te na učitanom AnyConnect profilu (polja za izdavanje certifikata i sl.). Također u ovoj grupnoj politici ukazujemo na potrebu preuzimanja ISE modul držanja.

Grupa tunela SIGURNA BANKA-VPN klijent će automatski koristiti prilikom autentifikacije s izdanim certifikatom u prethodnoj fazi, budući da će, u skladu s mapom certifikata, veza pasti upravo na ovu grupu tunela. Ovdje ću vam reći o zanimljivim opcijama:

  • sekundarna-grupa-poslužitelja-provjere autentičnosti DUO # Postavite sekundarnu autentifikaciju na DUO poslužitelju (Radius Proxy)
  • korisničko ime-iz-certifikataCN # Za primarnu autentifikaciju koristimo CN polje certifikata za nasljeđivanje korisničke prijave
  • sekundarno-korisničko-ime-iz-certifikata I # Za sekundarnu autentifikaciju na DUO poslužitelju koristimo ekstrahirano korisničko ime i polja inicijala (I) certifikata.
  • klijent s unaprijed popunjavanjem korisničkog imena # učiniti korisničko ime unaprijed popunjenim u prozoru za provjeru autentičnosti bez mogućnosti promjene
  • secondary-pre-fill-username client hide use-common-password push # Sakrivamo prozor za unos prijave/lozinke za sekundarnu autentifikaciju DUO i koristimo metodu obavijesti (sms/push/telefon) - pričvrstite za traženje autentifikacije umjesto polja za lozinku ovdje

!
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
!

Zatim prelazimo na ISE:

Konfiguriramo lokalnog korisnika (možete koristiti AD/LDAP/ODBC, itd.), radi jednostavnosti, kreirao sam lokalnog korisnika u samom ISE-u i dodijelio ga u polju opis UDID PC s kojeg mu je omogućena prijava putem VPN-a. Ako koristim lokalnu provjeru autentičnosti na ISE-u, bit ću ograničen na samo jedan uređaj, budući da nema mnogo polja, ali u bazama podataka za provjeru autentičnosti treće strane neću imati takva ograničenja.

Implementacija koncepta visoko sigurnog udaljenog pristupa

Pogledajmo politiku autorizacije, ona je podijeljena u četiri faze povezivanja:

  • Stad 1 — Pravila za preuzimanje agenta AnyConnect i izdavanje certifikata
  • Stad 2 — Pravila primarne provjere autentičnosti Prijava (iz certifikata)/Lozinka + Certifikat s UDID provjerom valjanosti
  • Stad 3 — Sekundarna autentifikacija putem Cisco DUO (MFA) koristeći UDID kao korisničko ime + procjena stanja
  • Stad 4 — Konačna autorizacija je u stanju:
    • Sukladan;
    • UDID provjera valjanosti (iz certifikata + povezivanje prijave),
    • Cisco DUO MFA;
    • Autentifikacija putem prijave;
    • Autentifikacija certifikata;

Implementacija koncepta visoko sigurnog udaljenog pristupa

Pogledajmo jedno zanimljivo stanje UUID_VALIDATED, samo izgleda kao da je korisnik za autentifikaciju zapravo došao s računala s dopuštenim UDID-om pridruženim u polju Opis računa, uvjeti izgledaju ovako:

Implementacija koncepta visoko sigurnog udaljenog pristupa

Profil autorizacije koji se koristi u fazama 1,2,3, XNUMX, XNUMX je sljedeći:

Implementacija koncepta visoko sigurnog udaljenog pristupa

Možete provjeriti kako točno UDID od AnyConnect klijenta stiže do nas gledajući detalje sesije klijenta u ISE. Detaljno ćemo vidjeti taj AnyConnect kroz mehanizam ACIDEX šalje ne samo informacije o platformi, već i UDID uređaja kao Cisco-AV-PAR:

Implementacija koncepta visoko sigurnog udaljenog pristupa

Obratimo pozornost na certifikat koji se izdaje korisniku i polje Inicijali (I), koji se koristi za uzimanje kao prijava za sekundarnu MFA autentifikaciju na Cisco DUO:

Implementacija koncepta visoko sigurnog udaljenog pristupa

Na strani DUO Radius Proxy u zapisniku možemo jasno vidjeti kako je napravljen zahtjev za autentifikaciju, dolazi koristeći UDID kao korisničko ime:

Implementacija koncepta visoko sigurnog udaljenog pristupa

S portala DUO vidimo uspješan događaj autentifikacije:

Implementacija koncepta visoko sigurnog udaljenog pristupa

I u korisničkim svojstvima imam postavljeno Alias, koji sam koristio za prijavu, ovo je UDID računala dopuštenog za prijavu:

Implementacija koncepta visoko sigurnog udaljenog pristupa

Kao rezultat dobili smo:

  • Višestruka provjera autentičnosti korisnika i uređaja;
  • Zaštita od lažiranja korisničkog uređaja;
  • Procjena stanja uređaja;
  • Potencijal za povećanu kontrolu s domenskim strojnim certifikatom, itd.;
  • Sveobuhvatna udaljena zaštita radnog mjesta s automatski postavljenim sigurnosnim modulima;

Veze na članke serije Cisco VPN:

Izvor: www.habr.com

Dodajte komentar