Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Vazhdimi i serisë së artikujve mbi temën e organizimit VPN me qasje në distancë akses Nuk mund të mos ndaj përvojën time interesante të vendosjes konfigurim VPN shumë i sigurt. Një detyrë jo e parëndësishme u prezantua nga një klient (ka shpikës në fshatrat ruse), por Sfida u pranua dhe u zbatua në mënyrë krijuese. Rezultati është një koncept interesant me karakteristikat e mëposhtme:

  1. Disa faktorë të mbrojtjes kundër zëvendësimit të pajisjes terminale (me lidhje të rreptë për përdoruesin);
    • Vlerësimi i përputhshmërisë së PC-së së përdoruesit me UDID-në e caktuar të PC-së së lejuar në bazën e të dhënave të vërtetimit;
    • Me MPJ duke përdorur PC UDID nga certifikata për vërtetim dytësor përmes Cisco DUO (Mund të bashkëngjitni çdo SAML/Radius të përputhshëm);
  2. Autentifikimi me shumë faktorë:
    • Certifikata e përdoruesit me verifikim në terren dhe vërtetim dytësor ndaj njërit prej tyre;
    • Hyrja (e pandryshueshme, marrë nga certifikata) dhe fjalëkalimi;
  3. Vlerësimi i gjendjes së hostit lidhës (Qëndrimi)

Përbërësit e tretësirës së përdorur:

  • Cisco ASA (VPN Gateway);
  • Cisco ISE (Autentifikimi / Autorizimi / Kontabiliteti, Vlerësimi i Shtetit, CA);
  • Cisco DUO (Vërtetimi me shumë faktorë) (Mund të bashkëngjitni çdo SAML/Radius të përputhshëm);
  • Cisco AnyConnect (Agjent me shumë qëllime për stacionet e punës dhe OS celular);

Le të fillojmë me kërkesat e klientit:

  1. Përdoruesi duhet, nëpërmjet vërtetimit të tij të hyrjes/fjalëkalimit, të jetë në gjendje të shkarkojë klientin AnyConnect nga porta VPN; të gjitha modulet e nevojshme AnyConnect duhet të instalohen automatikisht në përputhje me politikën e përdoruesit;
  2. Përdoruesi duhet të jetë në gjendje të lëshojë automatikisht një certifikatë (për një nga skenarët, skenari kryesor është lëshimi manual dhe ngarkimi në një PC), por unë zbatova lëshimin automatik për demonstrim (nuk është kurrë vonë për ta hequr atë).
  3. Autentifikimi bazë duhet të bëhet në disa faza, fillimisht bëhet vërtetimi i certifikatës me analizën e fushave të nevojshme dhe vlerave të tyre, pastaj login/fjalëkalimi, vetëm këtë herë në dritaren e hyrjes duhet të futet emri i përdoruesit të specifikuar në fushën e certifikatës. Emri i subjektit (CN) pa mundësi për të redaktuar.
  4. Duhet të siguroheni që pajisja nga e cila po identifikoheni është laptopi i korporatës i lëshuar përdoruesit për qasje në distancë, dhe jo diçka tjetër. (Janë bërë disa opsione për të përmbushur këtë kërkesë)
  5. Gjendja e pajisjes lidhëse (në këtë fazë PC) duhet të vlerësohet me një kontroll të një tabele të plotë të kërkesave të klientit (duke përmbledhur):
    • Skedarët dhe vetitë e tyre;
    • Regjistrimet në regjistër;
    • Arna të OS nga lista e ofruar (integrimi i mëvonshëm SCCM);
    • Disponueshmëria e Anti-Virusit nga një prodhues specifik dhe rëndësia e nënshkrimeve;
    • Veprimtaria e shërbimeve të caktuara;
    • Disponueshmëria e programeve të caktuara të instaluara;

Për të filluar, unë sugjeroj që patjetër të shikoni demonstrimin e videos së zbatimit që rezulton Youtube (5 minuta).

Tani unë propozoj të shqyrtojmë detajet e zbatimit që nuk përfshihen në videoklip.

Le të përgatisim profilin AnyConnect:

Më parë dhashë një shembull të krijimit të një profili (për sa i përket një artikulli të menusë në ASDM) në artikullin tim mbi vendosjen Grupi i balancimit të ngarkesës VPN. Tani do të doja të shënoja veçmas opsionet që do të na duhen:

Në profil, ne do të tregojmë portën VPN dhe emrin e profilit për t'u lidhur me klientin përfundimtar:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Le të konfigurojmë lëshimin automatik të një certifikate nga ana e profilit, duke treguar, në veçanti, parametrat e certifikatës dhe, në mënyrë karakteristike, t'i kushtojmë vëmendje fushës Inicialet (I), ku një vlerë specifike futet manualisht UID makinë testuese (Identifikues unik i pajisjes që gjenerohet nga klienti Cisco AnyConnect).

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Këtu dua të bëj një digresion lirik, pasi ky artikull përshkruan konceptin; për qëllime demonstrimi, UDID për lëshimin e një certifikate futet në fushën Iniciale të profilit AnyConnect. Sigurisht, në jetën reale, nëse e bëni këtë, atëherë të gjithë klientët do të marrin një certifikatë me të njëjtin UDID në këtë fushë dhe asgjë nuk do të funksionojë për ta, pasi ata kanë nevojë për UDID-në e PC-së së tyre specifike. AnyConnect, për fat të keq, nuk zbaton ende zëvendësimin e fushës UDID në profilin e kërkesës për certifikatë nëpërmjet një ndryshoreje mjedisi, siç bën, për shembull, me një ndryshore %USER%.

Vlen të përmendet se klienti (i këtij skenari) fillimisht planifikon të lëshojë në mënyrë të pavarur certifikata me një UDID të caktuar në modalitetin manual për PC të tillë të mbrojtur, gjë që nuk është problem për të. Sidoqoftë, për shumicën prej nesh ne duam automatizim (mirë, për mua është e vërtetë =)).

Dhe kjo është ajo që unë mund të ofroj për sa i përket automatizimit. Nëse AnyConnect nuk është ende në gjendje të lëshojë një certifikatë automatikisht duke zëvendësuar në mënyrë dinamike UDID, atëherë ekziston një mënyrë tjetër që do të kërkojë pak mendim krijues dhe duar të afta - unë do t'ju tregoj konceptin. Së pari, le të shohim se si gjenerohet UDID në sisteme të ndryshme operative nga agjenti AnyConnect:

  • Dritaret — SHA-256 hash i kombinimit të çelësit të regjistrit DigitalProductID dhe Machine SID
  • OSX — SHA-256 hash PlatformUUID
  • Linux — SHA-256 hash i UUID-së së ndarjes rrënjë.
  • Apple iOS — SHA-256 hash PlatformUUID
  • android – Shihni dokumentin në lidhje

Prandaj, ne krijojmë një skript për sistemin tonë të korporatës Windows, me këtë skript ne llogarisim në vend UDID duke përdorur hyrje të njohura dhe formojmë një kërkesë për lëshimin e një certifikate duke futur këtë UDID në fushën e kërkuar, nga rruga, ju gjithashtu mund të përdorni një makinë certifikatë e lëshuar nga AD (duke shtuar vërtetim të dyfishtë duke përdorur një certifikatë në skemë Certifikatë e shumëfishtë).

Le të përgatisim cilësimet në anën Cisco ASA:

Le të krijojmë një TrustPoint për serverin ISE CA, ai do të jetë ai që do të lëshojë certifikata për klientët. Unë nuk do të marr parasysh procedurën e importit të zinxhirit kyç; një shembull përshkruhet në artikullin tim mbi konfigurimin Grupi i balancimit të ngarkesës VPN.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Ne konfigurojmë shpërndarjen sipas Tunnel-Group bazuar në rregulla në përputhje me fushat në certifikatën që përdoret për vërtetim. Profili AnyConnect që bëmë në fazën e mëparshme është konfiguruar gjithashtu këtu. Ju lutemi vini re se unë jam duke përdorur vlerën SECUREBANK-RA, për të transferuar përdoruesit me një certifikatë të lëshuar në një grup tuneli SECURE-BANK-VPN, ju lutem vini re se unë e kam këtë fushë në kolonën e kërkesës për certifikatë të profilit 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
!

Vendosja e serverëve të vërtetimit. Në rastin tim, kjo është ISE për fazën e parë të vërtetimit dhe DUO (Radius Proxy) si 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
!

Ne krijojmë politika grupore dhe grupe tunelesh dhe komponentët e tyre ndihmës:

Grupi i tunelit Grupi i parazgjedhur WEBVPNG do të përdoret kryesisht për të shkarkuar klientin AnyConnect VPN dhe për të lëshuar një certifikatë përdoruesi duke përdorur funksionin SCEP-Proxy të ASA; për këtë ne kemi opsionet përkatëse të aktivizuara si në vetë grupin e tunelit ashtu edhe në politikën e grupit të lidhur AC-Shkarko, dhe në profilin e ngarkuar AnyConnect (fushat për lëshimin e një certifikate, etj.). Gjithashtu në këtë politikë të grupit ne tregojmë nevojën për shkarkim ISE Moduli i Qëndrimit.

Grupi i tunelit SECURE-BANK-VPN do të përdoret automatikisht nga klienti gjatë vërtetimit me certifikatën e lëshuar në fazën e mëparshme, pasi, në përputhje me Hartën e Certifikatës, lidhja do të bjerë në mënyrë specifike në këtë grup tuneli. Unë do t'ju tregoj për opsionet interesante këtu:

  • sekondar-authentication-server-group DUO # Vendosni vërtetimin dytësor në serverin DUO (Radius Proxy)
  • emri i përdoruesit-from-certificateCN # Për vërtetimin parësor, ne përdorim fushën CN të certifikatës për të trashëguar hyrjen e përdoruesit
  • sekondar-username-from-certificate I # Për vërtetimin dytësor në serverin DUO, ne përdorim emrin e përdoruesit të nxjerrë dhe fushat Inicialet (I) të certifikatës.
  • klienti i para-mbushjes së emrit të përdoruesit # bëni emrin e përdoruesit të plotësuar paraprakisht në dritaren e vërtetimit pa mundësinë e ndryshimit
  • klienti sekondar-pre-fill-përdorues hide use-common-password push # Ne fshehim dritaren e hyrjes së hyrjes/fjalëkalimit për vërtetimin dytësor DUO dhe përdorim metodën e njoftimit (sms/push/telefon) - dok për të kërkuar vërtetimin në vend të fushës së fjalëkalimit kë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
!

Më pas kalojmë në ISE:

Ne konfigurojmë një përdorues lokal (mund të përdorni AD/LDAP/ODBC, etj.), Për thjeshtësi, unë krijova një përdorues lokal në vetë ISE dhe e caktova në fushë përshkrim PC UDID nga i cili lejohet të hyjë përmes VPN. Nëse përdor vërtetimin lokal në ISE, do të kufizohem vetëm në një pajisje, pasi nuk ka shumë fusha, por në bazat e të dhënave të vërtetimit të palëve të treta nuk do të kem kufizime të tilla.

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Le të shohim politikën e autorizimit, ajo ndahet në katër faza të lidhjes:

  • Faza 1 — Politika për shkarkimin e agjentit AnyConnect dhe lëshimin e një certifikate
  • Faza 2 — Politika primare e vërtetimit Hyrja (nga certifikata)/Fjalëkalimi + Certifikata me vërtetim UDID
  • Faza 3 — Autentifikimi dytësor nëpërmjet Cisco DUO (MFA) duke përdorur UDID si emër përdoruesi + Vlerësimi i gjendjes
  • Faza 4 — Autorizimi përfundimtar është në gjendjen:
    • Në përputhje;
    • Vleresimi UDID (nga certifikata + lidhja e hyrjes),
    • Cisco DUO MPJ;
    • Autentifikimi me anë të hyrjes;
    • Vërtetimi i certifikatës;

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Le të shohim një gjendje interesante UUID_VALIDATED, thjesht duket sikur përdoruesi vërtetues erdhi nga një PC me një UDID të lejuar të lidhur në fushë Përshkrim llogaria, kushtet duken kështu:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Profili i autorizimit i përdorur në fazat 1,2,3 është si më poshtë:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Ju mund të kontrolloni saktësisht se si UDID nga klienti AnyConnect arrin tek ne duke parë detajet e sesionit të klientit në ISE. Në detaje do të shohim se AnyConnect përmes mekanizmit ACIDEKS dërgon jo vetëm informacione për platformën, por edhe UDID-në e pajisjes si Cisco-AV-PAIR:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Le t'i kushtojmë vëmendje certifikatës së lëshuar për përdoruesit dhe fushës Inicialet (I), e cila përdoret për ta marrë atë si një hyrje për vërtetimin dytësor të MPJ në Cisco DUO:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Në anën e DUO Radius Proxy në regjistër mund të shohim qartë se si bëhet kërkesa për vërtetim, ajo vjen duke përdorur UDID si emër përdoruesi:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Nga portali DUO shohim një ngjarje të suksesshme vërtetimi:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Dhe në vetitë e përdoruesit e kam vendosur Alias, të cilin e përdora për hyrje, nga ana tjetër, kjo është UDID e PC e lejuar për hyrje:

Zbatimi i konceptit të aksesit në distancë shumë të sigurt

Si rezultat kemi marrë:

  • Autentifikimi me shumë faktorë të përdoruesit dhe pajisjes;
  • Mbrojtje kundër mashtrimit të pajisjes së përdoruesit;
  • Vlerësimi i gjendjes së pajisjes;
  • Potenciali për rritjen e kontrollit me certifikatën e makinerisë së domenit, etj.;
  • Mbrojtje gjithëpërfshirëse e vendit të punës në distancë me module sigurie të vendosura automatikisht;

Lidhje me artikujt e serisë Cisco VPN:

Burimi: www.habr.com

Shto një koment