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:
- 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);
- 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;
- 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:
- 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;
- 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).
- 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.
- 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ë)
- 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).

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 . 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:

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).

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
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 .
crypto ca trustpoint ISE-CA
enrollment terminal
crl configureKonfiguroni 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) – дока
!
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.

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;

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:

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

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:

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:

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:

Nga portali DUO shohim ngjarjen e suksesshme të autentifikimit:

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:

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
