ProHoster > Blog > uprava > Implementacija koncepta visoko sigurnog udaljenog pristupa
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:
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);
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;
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:
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;
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).
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.
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)
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:
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).
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.
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.
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 opisUDID 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.
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;
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:
Profil autorizacije koji se koristi u fazama 1,2,3, XNUMX, XNUMX je sljedeći:
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:
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:
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:
S portala DUO vidimo uspješan događaj autentifikacije:
I u korisničkim svojstvima imam postavljeno Alias, koji sam koristio za prijavu, ovo je UDID računala dopuštenog za prijavu:
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;