Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Duke vazhduar serinë e artikujve mbi temën e organizimit VPN për Qasje të Largët të aksesit, nuk mund të mos ndaj një përvojë interesante në implementimin e një konfiguracioni VPN të mbrojtur fort. Një detyrë jo e thjeshtë më dha një klient (kanë imagjinatë në fshatrat Ruse), por Challenge Accepted dhe u realizua kreativisht. Si rezultat, u krijua një koncept interesant me karakteristikat e mëposhtme:

  1. Disa faktorë mbrojtës nga zëvendësimi i pajisjes përfundimtare (me lidhje të fortë me përdoruesin);
    • Vlerësimi i përputhshmërisë së PC-së së përdoruesit me UDID e caktuar të PC-së të lejuar në bazën e autentifikimit;
    • Me MFA, që përdor UDID të PC-së nga certifikata për autentifikim të dytë përmes Cisco DUO (Mund të lidhni çdo SAML/RADIUS të përputhshëm);
  2. Autentifikim shumëfaktorësh:
    • Certifikata e përdoruesit me verifikimin e fushave dhe autentifikimin e dytë përmes një prej tyre;
    • Identifikimi (i pandryshueshëm, i marra nga certifikata) dhe fjalëkalimi;
  3. Vlerësimi i gjendjes së hostit që po lidhet (Posture)

Komponentët e përdorur të zgjidhjes:

  • Cisco ASA (Porta VPN);
  • Cisco ISE (Autentifikim / Autorizim / Aktivitet, Vlerësimi i Gjendjes, CA);
  • Cisco DUO (Autentifikimi shumëfaktorësh) (Mund të lidhni çdo SAML/RADIUS të përputhshëm);
  • Cisco AnyConnect (Agjenti multifunksional për stacionet e punës dhe sistemet operative mobile);

Të fillojmë me kërkesat e klientit:

  1. Përdoruesi duhet, me autentifikimin e tij Login/Fjalëkalim, të ketë mundësinë të shkarkojë klientin AnyConnect nga VPN gateway, të gjitha modulët e nevojshëm AnyConnect duhet të instalohen automatikisht sipas politikës së përdoruesit;
  2. Përdoruesi duhet të ketë mundësinë e rregjistrimit automatik të certifikatës (për një nga skenarët, skenari kryesor është regjistrimi manual dhe ngarkimi në PC), unë realizova regjistrimin automatik për demonstrohen (të heqësh asnjëherë nuk është vonë).
  3. Autentifikimi kryesor duhet të kalojë në disa etapa, së pari bëhet autentifikimi i certifikatës me analizimin e fushave dhe vlerave të nevojshme, pastaj login/fjalëkalim, vetëm që këtë herë në dritaren e login duhet të vendoset emri i përdoruesit, i përcaktuar në fushën e certifikatës. Subjekti Emri (CN) pa mundësi redaktimi.
  4. Është e nevojshme të sigurohemi që pajisja nga e cila bëhet hyrja të jetë laptopi i dhënë përdoruesit për qasje të largët korporative, dhe jo diçka tjetër. (Janë bërë disa variante për të përmbushur këtë kërkesë)
  5. Duhet të bëhet një vlerësim i gjendjes së pajisjes që po lidhet (në këtë fazë PC) me kontrollin e një tabele të shëndoshë kërkesash nga klienti (duke përmbledhur):
    • Skedarët dhe pronat e tyre;
    • Regjistrimet e regjistrit;
    • Patch-et e OS nga lista e ofruar (në vazhdim integrimi i SCCM);
    • Prania e Antivirusit nga një prodhues i caktuar dhe aktualiteti i nënshkrimeve;
    • Aktiviteti i disa shërbimeve të caktuara;
    • Prania e disa programeve të instaluara;

Në fillim, sugjeroj të shikoni patjetër demonstratën video të realizimit të fituar në Youtube (5 minuta).

Luaj videon

Tani propozoj të shqyrtojmë detajet e realizimit që nuk u përmendën në videon.

Le të përgatisim profilin AnyConnect:

Shembulli i krijimit të profilit (në lidhje me menunë në ASDM) e kam përmendur më parë në artikullin tim për konfigurimin VPN Load-Balancing klasteri. Tani dua të theksoj veçanërisht ato opsione që na nevojiten:

Në profil do të tregojmë portin VPN dhe emrin e profilit për lidhen në klientin përfundimtar:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Do të realizojmë cilësimet për automatizimin e lëshimit të certifikatës nga profili, duke treguar, përkatësisht, parametrat e certifikatës dhe, siç është karakteristik, do të kushtojmë vëmendje fushës Initials (I), ku manualisht është futur një vlerë specifike UDID i makinës testuese (Identifikuesi Unik i Pajisjes, i gjeneruar nga klienti Cisco AnyConnect).

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Këtu dëshiroj të bëj një shënim lirik, pasi ky artikull përshkruan konceptin, për qëllime demonstrative është futur UDID për lëshimin e certifikatës në fushën Initials të profilit AnyConnect. Sigurisht, në jetë reale, nëse e bëni këtë, të gjithë klientët do të marrin një certifikat me UDID të njëjtë 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 fatkeqësisht ende nuk implementon zëvendësimin në profil për kërkesën e certifikatës në fushën UDID përmes variablit të ambientit, ashtu siç e bën, për shembull, me variablin %USER%.

Duhet theksuar se porositësi (i këtij skenari) fillimisht planifikon të lëshojë vetë certifikatat me UDID të caktuar në mënyrë manuale për këto PC të Mbrojtura, që për të nuk është ndonjë problem. Megjithatë, për shumicën e ne, dëshirojmë automatizim (për mua të paktën =)).

Dhe ja çfarë mund t'ju ofroj për automatizimin. Nëse certifikata lëshohet automatikisht AnyConnect duke futur dinamikisht UDID, nuk është gjithçka e mundur, por ka një mënyrë tjetër që kërkon pak kreativitet dhe duar të zhdërvjellta – do t'ju tregoj konceptin. Fillimisht, le të shqyrtojmë si krijohet UDID në sisteme të ndryshme operative nga agjenti AnyConnect:

  • macOS — SHA-256 hash i kombinimit të çelësit të regjistrit DigitalProductID dhe Machine SID
  • OSX — SHA-256 hash i PlatformUUID
  • OpenVPN — SHA-256 hash i UUID të partisioneve kryesore.
  • Apple iOS — SHA-256 hash i PlatformUUID
  • Fare OS – Shih dokumentin për lidhjes

Dhe kështu, ne krijojmë një skript për sistemet tona operative Windows, nëpërmjet këtij skripti llogarisim lokalisht UDID sipas të dhënave të njohura dhe krijojmë një kërkesë për lëshimin e certifikatës, duke futur në fushën e duhur këtë UDID, e cila, për faktin, mund të jetë edhe certifikata e makinës, e lëshuar nga AD (duke shtuar në skemë dyfish autentifikim me certifikatën Multiple Certificate).

Të përgatisim konfigurimet nga ana e Cisco ASA:

Të krijojmë TrustPoint për serverin ISE CA, i cili do të lëshojë certifikata për klientët. Procedurën e importit të Key-Chain nuk do ta shqyrtoj, shembulli është i përshkruar në artikullin tim për konfigurimin VPN Load-Balancing klasteri.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Konfigurojmë shpërndarjen në baze të Tunnel-Group sipas rregullave në përputhje me fushat në certifikatën, me të cilën bëhet autentifikimi. Po ashtu, këtu konfiguroni profilin AnyConnect, i prodhuar nga ne në fazën e kaluar. Vërej se po përdor vlerën SECUREBANK-RA, për të transferuar përdoruesit me certifikatën e lëshuar në grupin tunel. SECURE-BANK-VPN, kushtoj vëmendje se kjo fushë është vendosur në kolonën e kërkesës për certifikatën e 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
!

Konfigurojmë serverët e autentikimit. Në rastin tim, ky është ISE për fazën e parë të autentikimit 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
!

Krijojmë politika grupore dhe grupe tunelesh, si dhe komponentët e tyre ndihmës:

Grupi tunel DefaultWEBVPNGroup do të përdoret fillimisht për shkarkimin e klientit AnyConnect VPN dhe lëshimin e certifikatës së përdoruesit duke përdorur funksionin SCEP-Proxy të ASA, për këtë kemi aktivizuar opsionet përkatëse si në grupin e tunelit ashtu edhe në politikën grupore të asociuar. AC-Download, si dhe në profilin e shkarkuar AnyConnect (fushat e lëshimit të certifikatës etj.). Gjithashtu në këtë politikë grupi përcaktojmë nevojën për shkarkimin ISE Posture Module.

Grupi tunel SECURE-BANK-VPN do të përdoret automatikisht nga klienti gjatë autentifikimit me certifikatën e lëshuar në fazën e mëparshme, pasi sipas Hartës së Certifikatës, lidhja do të bjerë pikërisht në këtë grup tuneli. Do të flas për opsionet interesante këtu:

  • secondary-authentication-server-group DUO # Задаем вторичную аутентификацию на сервере DUO (Radius Proxy)
  • username-from-certificate CN # Используем для первичной аутентификации поле CN сертификата для наследования логина пользователя
  • secondary-username-from-certificate I # Для вторичной аутентификации на сервере DUO используем имя пользователя, извлеченное и поля Initials (I) сертификата.
  • pre-fill-username client # делаем предзаполненным имя пользователя в окне аутентификации без возможности изменения
  • secondary-pre-fill-username client hide use-common-password push # Прячем окно ввода логина/пароля для вторичной аутентификации DUO и используем для запроса аутентификации вместо поля пароля метод уведомления (sms/push/phone) – дока 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:

Konfigurojmë një përdorues lokal (mund të përdorim gjithashtu AD/LDAP/ODBC etj.), për thjeshtësi kam krijuar një përdorues lokal në ISE dhe e kam caktuar në fushën description UDID i PC-së nga i cili i lejohet hyrja përmes VPN. Në rastin e përdorimit të autentikimit lokal në ISE, do të jem i kufizuar vetëm në një pajisje, pasi nuk ka shumë fusha, por në bazat e të dhënave të jashtme për autentikim, ato kufizime nuk do të kenë.

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Të shohim politikën e autorizimit, e cila ndahet në katër faza të lidhjes:

  • Faza 1 — Politika për shkarkimin e agentit AnyConnect dhe lëshimin e certifikatës
  • Faza 2 — Politika e autentikimit fillestar Login (nga certifikata)/Fjalëkalimi + Certifikata me validimin e UDID
  • Faza 3 — Autentikimi dytësor përmes Cisco DUO (MFA) me UDID si emri i përdoruesit + Vlerësimi i gjendjes
  • Faza 4 — Autoriza finale në gjendjen:
    • E pajtueshme;
    • me validimin e UDID (nga certifikata + lidhja me login),
    • Cisco DUO MFA;
    • Autentikimi me login;
    • Autentikimi me certifikatë;

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Të shohim një kusht interesant UUID_VALIDATED, pikërisht ajo e verifikon nëse përdoruesi që po autentikohet ka ardhur nga një PC me UDID të lejuar të asociuar në fushën Përshkrimi e llogarisë, duket si kushtet:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Profilin e autorizimit, i përdorur në fazat 1, 2, 3, duket si më poshtë:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Të kontrollojmë si arrin UDID nga klienti AnyConnect duke parë detajet e sesionit të klientit në ISE. Në detajet do të shohim se AnyConnect përmes mekanizmit ACIDEX dërgon jo vetëm të dhënat në lidhje me platformën, por gjithashtu UDID e pajisjes si Cisco-AV-PAIR:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Të vëmë re certifikatën e shkruar për përdoruesin dhe fushën Initials (I), e cila përdoret për ta marrë atë si login për autentifikimin e dytë MFA në Cisco DUO:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Në anën e DUO Radius Proxy në logun e shohim qartë si bëhet kërkesa për autentifikim, ajo bëhet duke përdorur UDID si emrin e përdoruesit:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Nga portali DUO shohim një ngjarje të suksesshme autentifikimi:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Dhe në pronësitë e përdoruesit kam vendosur ALIAS, të cilin e përdora për login, nga ana tjetër kjo është UDID e lejuar për loginin e PC:

Zbatimi i konceptit të aksesit të avancuar dhe të mbrojtur në distancë.

Si rezultat morëm:

  • Autentifikimin e shumëfaktorit të përdoruesit dhe pajisjes;
  • Mbrojtja nga zëvendësimi i pajisjes së përdoruesit;
  • Vlerësimi i gjendjes së pajisjes;
  • Potenciali për përmirësimin e kontrollit me certifikatën e makinës së domenit etj.;
  • Mbrojtja gjithëpërfshirëse e vendit të punës të largët me modula sigurie që shpërndahen automatikisht;

Linket e artikujve të serisë Cisco VPN:

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster