Implementimi i konceptit të qasjes së sigurt të distancës

Duke vazhduar serinë e artikujve mbi organizimin VPN me Qasje të Largët e qasjes, nuk mund të mos ndaj një përvojë interesante mbi zhvillimin e një konfiguracioni VPN me siguri të lartë. Një detyrë jo e thjeshtë më dha një klient (ka imagjinatë në fshatrat ruse), por Sfida e Pranua dhe e realizuar në mënyrë kreative. Si rezultat, u krijua një koncept interesant me karakteristikat e mëposhtme:

  1. Disa faktorë mbrojtjeje ndaj zëvendësimit të pajisjes finale (me lidhje të rreptë me përdoruesin);
    • Vlerësimi i përputhshmërisë së PC-së së përdoruesit me UDID-në e PC-së të lejuar në bazën e autentikimit;
    • Me MFA, që përdor UDID-në e PC-së nga certifikata për autentikimin e dytë nëpërmjet Cisco DUO (Mund të lidhet çdo SAML/RADIUS i pajtueshëm);
  2. Autentikimi shumëfaktorial:
    • Certifikata e përdoruesit me verifikimin e fushave dhe autentikimin e dytë përmes njërës prej tyre;
    • Login (i pandryshueshëm, marrë nga certifikata) dhe fjalëkalimi;
  3. Vlerësimi i gjendjes së hostit që po lidhet (Posture)

Komponentët e përdorur në zgjidhje:

  • Cisco ASA (VPN Gateway);
  • Cisco ISE (Autentikimi / Autorizimi / Llogaritja, Vlerësimi i Gjendjes, CA);
  • Cisco DUO (Autentikimi shumëfaktorial) (Mund të lidhet çdo SAML/RADIUS i pajtueshëm);
  • Cisco AnyConnect (Agjenti shumëfunksional për stacionet e punës dhe sistemet operative mobile);

Të fillojmë me kërkesat e klientit:

  1. Përdoruesi duhet, me autentikimin e tij Login/Fjalëkalim, të ketë mundësi të shkarkojë klientin AnyConnect nga VPN gateway, të gjitha modulet e nevojshme të AnyConnect duhet të instalohen automatikisht sipas politikës së përdoruesit;
  2. Përdoruesi duhet të ketë mundësi automatikisht të merr një certifikatë (për një nga skenarët, skenari kryesor është ndarja manuale dhe ngarkimi në PC), unë e realizova ndarjen automatike për demonstration (asnjëherë nuk është vonë për të hequr).
  3. Autentikimi kryesor duhet të kalojë në disa etapa, fillimisht bëhet autentikimi i certifikatës me analizën e fushave të nevojshme dhe vlerave të tyre, më pas login/fjalëkalimi, vetëm që kësaj here emri i përdoruesit, iSpecified në fushën e certifikatës Emri i Subjektit (CN) pa mundësi për ta redaktuar.
  4. Duhet të sigurohemi që pajisja nga e cila bëhet hyrja është laptopi korporativ i dhënë përdoruesit për qasje në distancë, dhe jo ndonjë gjë 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 lidhët (në këtë fazë PC) me kontrollin e një tabele të plotë të kërkesave të klientit (përmbledhtazi):
    • Skedarët dhe pronat e tyre;
    • Shënimet e regjistrit;
    • Patch-et e OS-së nga lista e ofruar (në të ardhmen integrimi SCCM);
    • Prania e antivirusit të një prodhuesi të caktuar dhe aktualiteti i nënshkrimeve;
    • Aktiviteti i shërbimeve të caktuara;
    • Prania e disa programeve të instaluara;

Faleminderit, unë sugjeroj fillimisht të shikojmë një demo video të realizimit të arritur në Youtube (5 minuta).

Luaj videon

Tani sugjeroj të shqyrtojmë detajet e realizimit që nuk u përmendën në videon-promovim.

Të përgatisim profilin AnyConnect:

Një shembuj i krijimit të profilit (në planin e menusë në ASDM) e kam dhënë më parë në artikullin tim për konfigurimin VPN Load-Balancing të klasterit. Tani dua të theksoj opsionet që na nevojiten:

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

Implementimi i konceptit të qasjes së sigurt të distancës

Do të bëjmë konfigurimin e automatizimit të lëshimit të certifikatave nga ana e profilit, duke dhënë, në veçanti, parametrat e certifikatës dhe, që është karakteristikë, do të fokusojmë vëmendjen në fushën Initials (I), ku është ruajtur manualisht një vlerë e caktuar UDID të makinës testuese (Identifikuesi Unik i Pajisjes, i cili gjenerohet nga klienti Cisco AnyConnect).

Implementimi i konceptit të qasjes së sigurt të distancës

Këtu dua të bëj një devijim lirik, pasi ky artikull përshkruan konceptin, për qëllime demonstruese, këtu është ruajtur UDID për lëshimin e certifikatës në fushën Initials të profilit AnyConnect. Sigurisht, në jetën 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 nuk do të funksionojë asgjë për ta, pasi ata kanë nevojë për UDID-në specifike të PC-së së tyre. AnyConnect, fatkeqësisht, ende nuk e implementon zëvendësimin në profilin për kërkesën e certifikatës në fushën UDID përmes një variabeli ambienti, siç e bën për shembull me variablin %USER%.

Duhet theksuar se klienti (i këtij skenari) fillimisht planifikon të lëshojë vetë certifikata me UDID të caktuar manualisht për ato PC të Mbrojtura, që nuk paraqet ndonjë problem për të. Megjithatë, për shumicën prej nesh do të dëshironim automatizim (në mënyrë që unë sigurisht =).

Dhe këtu është se çfarë mund të ofroj për automatizimin. Nëse lëshojmë një certifikatë automatikisht, AnyConnect duke vendosur dinamikisht UDID-në, ndonëse kjo nuk është e mundur, ka një mënyrë tjetër që do të kërkojë pak mendim krijues dhe duar të zhdërvjellta – do të flas për konceptin. Fillimisht le të shqyrtojmë se si formohet UDID në sisteme të ndryshme operative nga agjenti AnyConnect:

  • Windows — SHA-256 hash i kombinimit të çelësit të regjistrit DigitalProductID dhe Machine SID
  • OSX — SHA-256 hash i PlatformUUID
  • Linux — SHA-256 hash i UUID të particionit root.
  • Apple iOS — SHA-256 hash i PlatformUUID
  • Android – Shiko dokumentin për linkun

Prandaj, ne përgatisim një skript për sistemet tona operative korporative Windows, me këtë skript llogaritim lokalisht UDID-në sipas të dhënave të njohura dhe formojmë një kërkesë për lëshimin e certifikatës duke futur në fushën e duhur këtë UDID, për të cilin mund të jetë edhe një certifikatë makine, e lëshuar nga AD (duke shtuar në skemën e dyfishtë autentifikimin me certifikatën Multiple Certificate).

Të përgatisim konfigurimet nga Cisco ASA:

Të krijojmë një TrustPoint për serverin ISE CA, ky i fundit do të lëshojë certifikatat për klientët. Nuk do të shqyrtoj procedurën e importit të Key-Chain, shembulli është përshkruar në artikullin tim për konfigurimin VPN Load-Balancing të klasterit.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Konfiguroni shpërndarjen sipas Tunnel-Group mbi bazën e rregullave në përputhje me fushat në certifikatën me të cilën bëhet autentifikimi. Po ashtu, këtu konfigurohet profili AnyConnect, i bërë nga ne në fazën e kaluar. Vë re që përdor vlerën SECUREBANK-RA, për të transferuar përdoruesit me certifikatën e lëshuar në grupin tunel SECURE-BANK-VPN, vëreni që ky fushë është vendosur në rubrikë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
!

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

Krijoni politika grupore dhe grupe tunelesh dhe përbërësit e tyre ndihmës:

Grupi Tunel DefaultWEBVPNGroup do të përdoret kryesisht për shkarkimin e klientit AnyConnect VPN dhe për 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 tunelave, ashtu edhe në politikën e grupit të asociuar AC-Download, ashtu si në profilin e shkarkuar AnyConnect (fushat e lëshimit të certifikatës etj.). Po ashtu, në këtë politikë grupi specifikojmë 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ë Certifikatave, lidhja do të përfundojë në këtë grup tunelesh. Do flas për opsionet interesante këtu:

  • grupi i serverëve të autentifikimit dytësor DUO # Задаем вторичную аутентификацию на сервере DUO (Radius Proxy)
  • emri-i-përdoruesit-nga-certifikata CN # Используем для первичной аутентификации поле CN сертификата для наследования логина пользователя
  • emri-i-përdoruesit-dytësor-nga-certifikata I # Для вторичной аутентификации на сервере DUO используем имя пользователя, извлеченное и поля Initials (I) сертификата.
  • parafillo-emrin klient # делаем предзаполненным имя пользователя в окне аутентификации без возможности изменения
  • parafillo-emrin-dytësor klient fsheh përdor-password të zakonshëm shtytje # Прячем окно ввода логина/пароля для вторичной аутентификации DUO и используем для запроса аутентификации вместо поля пароля метод уведомления (sms/push/phone) – дока këtu

!
lista e qasjes posture-redirect e zgjatur lejone tcp çdo host 72.163.1.80 
lista e qasjes posture-redirect e zgjatur ndalon ip çdo çdo
!
lista e qasjes VPN-Filter e zgjatur lejone ip çdo çdo
!
pool lokal adresash vpn-pool 192.168.100.33-192.168.100.63 mask 255.255.255.224
!
grup-politik SECURE-BANK-VPN të brendshëm
grup-politik SECURE-BANK-VPN atribute
 vlerë dns-server 192.168.99.155 192.168.99.130
 vlerë vpn-filter VPN-Filter
 protokolli i tunelit vpn ssl-client 
 politika e tunelit të ndarë tunnelall
 vlera e domenit-default ashes.cc
 vlerë address-pools vpn-pool
 webvpn
  anyconnect ssl dtls aktivizo
  anyconnect mtu 1300
  anyconnect mbaj-installuesin të instaluar
  anyconnect ssl mbajalive 20
  anyconnect ssl rindej kohë asnjë
  anyconnect ssl metodë rindej ssl
  anyconnect dpd-interval klient 30
  anyconnect dpd-interval port 30
  anyconnect ssl kompresimi lzs
  anyconnect dtls kompresimi lzs
  anyconnect moduli vlerë iseposture
  anyconnect profilet vlerë SECUREBANK tip përdoruesi
!
grup-politik AC-DOWNLOAD të brendshëm
grup-politik AC-DOWNLOAD atribute
 vlerë dns-server 192.168.99.155 192.168.99.130
 vlerë vpn-filter VPN-Filter
 protokolli i tunelit vpn ssl-client 
 politika e tunelit të ndarë tunnelall
 vlera e domenit-default ashes.cc
 vlerë address-pools vpn-pool
 vlera scep-forwarding-url http://ise.ashes.cc:9090/auth/caservice/pkiclient.exe
 webvpn
  anyconnect ssl dtls aktivizo
  anyconnect mtu 1300
  anyconnect mbaj-installuesin të instaluar
  anyconnect ssl mbajalive 20
  anyconnect ssl rindej kohë asnjë
  anyconnect ssl metodë rindej ssl
  anyconnect dpd-interval klient 30
  anyconnect dpd-interval port 30
  anyconnect ssl kompresimi lzs
  anyconnect dtls kompresimi lzs
  anyconnect moduli vlerë iseposture
  anyconnect profilet vlerë SECUREBANK tip përdoruesi
!
grup-tuneli DefaultWEBVPNGroup atribute të përgjithshme
 pool-adresash vpn-pool
 grupi i serverit të autentifikimit ISE
 grupi i serverit të njëjtësim ISE
 grupi-default politik AC-DOWNLOAD
 regjistrimi scep aktivizo
grup-tuneli DefaultWEBVPNGroup atribute webvpn
 autentikimi aaa certifikat
!
grup-tuneli SECURE-BANK-VPN tipi qasje-ndryshe
grup-tuneli SECURE-BANK-VPN atribute të përgjithshme
 pool-adresash vpn-pool
 grupi i serverit të autentifikimit ISE
 grupi i serverit të autentifikimit dytësor DUO
 grupi i serverit të njëjtësim ISE
 grupi-default politik SECURE-BANK-VPN
 emri-i-përdoruesit-nga-certifikata CN
 emri-i-përdoruesit-dytësor-nga-certifikata I
grup-tuneli SECURE-BANK-VPN atribute webvpn
 autentikimi aaa certifikat
 parafillo-emrin klient
 parafillo-emrin-dytësor klient fsheh përdor-password të zakonshëm shtytje
 alias-grupi SECURE-BANK-VPN aktivizo
 grupi-dns ASHES-DNS
!

Tani kalojmë te ISE:

Konfigurojmë një përdorues lokal (mund të përdoren edhe AD/LDAP/ODBC etj.), për thjeshtësi unë krijova një përdorues lokal në ISE dhe e emërova në fushën description UDID i PC-së në të cilin i lejohet hyrja përmes VPN. Në rastin e përdorimit të autentifikimit lokal në ISE, do të jem i kufizuar në një pajisje, pasi fushat nuk janë shumë, por në bazat e të dhënave të jashtme nuk do të kem këto kufizime.

Implementimi i konceptit të qasjes së sigurt të distancës

Le të shikojmë politikën e autorizimit, e cila ndahet në katër faza të lidhjes:

  • Faza 1 — Politika për shkarkimin e agjentit AnyConnect dhe lëshimin e certifikatës
  • Stage 2 — Politika e autentifikimit fillestar Login (nga certifikata)/Fjalëkalimi + Certifikata me validimin e UDID
  • Stage 3 — Autentifikimi i dytë përmes Cisco DUO (MFA) sipas UDID si emri i përdoruesit + Vlerësimi i gjendjes
  • Stage 4 — Autorizimi përfundimtar në gjendjen:
    • Në përputhje;
    • me validimin e UDID (nga certifikata + lidhja me loginin),
    • Cisco DUO MFA;
    • Autentifikimi sipas login;
    • Autentifikimi sipas certifikatës;

Implementimi i konceptit të qasjes së sigurt të distancës

Le të shikojmë një kusht interesant UUID_VALIDATED, pikërisht ai shqyrton nëse përdoruesi që po autentikohet ka ardhur vërtet nga një PC me UDID të lejuar të asociuar në fushën Përshkrimi e llogarisë, kushtet duken kështu:

Implementimi i konceptit të qasjes së sigurt të distancës

Profili i autorizimit, i cili përdoret në fazat 1, 2, 3 duket si më poshtë:

Implementimi i konceptit të qasjes së sigurt të distancës

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

Implementimi i konceptit të qasjes së sigurt të distancës

Le të kuptojmë certifikatën e lëshuar për përdoruesin dhe fushën Initials (I), e cila përdoret për ta marrë atë si rol login për autentifikimin e dytë MFA në Cisco DUO:

Implementimi i konceptit të qasjes së sigurt të distancës

Në anën e DUO Radius Proxy në log ne qartë shohim se si bëhet kërkesa për autentifikim, ajo vjen me përdorimin e UDID si emri i përdoruesit:

Implementimi i konceptit të qasjes së sigurt të distancës

Nga portali DUO shohim ngjarjen e suksesshme të autentifikimit:

Implementimi i konceptit të qasjes së sigurt të distancës

Dhe në pronat e përdoruesit unë kam vendosur ALIAS, që e përdorova për login, nga ana tjetër kjo është UDID e lejuar për PC-në e login:

Implementimi i konceptit të qasjes së sigurt të distancës

Si rezultat, ne morëm:

  • Autentifikimin shumëfaktorik të përdoruesit dhe pajisjes;
  • Mbrojtjen nga ndërhyrjet e pajisjes së përdoruesit;
  • Vlerësimin e gjendjes së pajisjes;
  • Potencialin për forcimin e kontrollit me certifikatën e makinës të domain-it etj.;
  • Mbrojtje të plotë për vendin e punës të largët me module sigurie që implementohen automatikisht;

Lidhje për artikujt e serisë Cisco VPN:

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster