Jätkame artiklite seeriat sellel teemal Remote-Access VPN juurdepääsu kohta ei saa ma mitte jagada huvitavat kogemust juurutamisest kõrge turvalisusega VPN konfiguratsioonist. Üks kliendilt saadud mittetriviaalne ülesanne (on tõeliselt leidlikke inimesi Venemaa külades), aga Challenge Accepted ning loominguliselt teostatud. Tulemusena saime huvitava kontsepti järgmiste omadustega:
- Mitu kaitsemeetodit lõppseadmestiku petmise vastu (tugeva sidumisega kasutajaga);
- Kasutaja PC vastavuse hindamine määratud UDID lubatud PC-le autentimisbaasis;
- Kasutades MFA-d, mis kasutab UDID-d sertifikaadist teise autentimise läbiviimiseks Cisco DUOs (Saab integreerida iga SAML/RADIUS ühilduva);;
- Mitme teguri autentimine:
- Kasutaja sertifikaat koos väljade kontrollimise ja ühe neist teise autentimisega;
- Logi (muutumatuna, sertifikaadist saadud) ja parool;
- Ühenduvate hostide oleku hindamine (Posture)
Kasutatavad lahenduse komponendid:
- Cisco ASA (VPN lükke- ja vastuvõtja);
- Cisco ISE (Autentimine / Autoriseerimine / Raamatupidamine, Oleku hindamine, CA);
- Cisco DUO (Mitme teguri autentimine) (Saab integreerida iga SAML/RADIUS ühilduva);;
- Cisco AnyConnect (Mitmeotstarbeline agent tööjaamadele ja mobiilsetele operatsioonisüsteemidele);
Alustame kliendi nõuetest:
- Kasutaja peab saama oma autentimise Logi/Parool järgi alla laadida AnyConnect kliendi VPN lükke- ja vastuvõtjalt, kõik vajalikud AnyConnect moodulid peavad olema automaatselt installitud vastavalt kasutaja poliitikale;
- Kasutajal peab olema võimalus automaatselt sertifikaadi väljastamiseks (ühe stsenaariumi jaoks, peamine stsenaarium on käsitsi väljastamine ja laadimine PC-le), mina teostasin automaatse väljastamise demonstreerimiseks (hiljem ei ole kunagi hilja eemaldada).
- Peamine autentimine peaks toimuma mitmes etapis, kõigepealt toimub sertifikaadi autentimine vajalike väli- ja väärtushindamisega, seejärel logi/parool, kuid seekord peab logimisaknas olema automaatselt kasutajanimi, mis on määratud sertifikaadi väljal Subject Name (CN) ilma redigeerimisvõimaluseta.
- On vajalik veenduda, et seade, millelt sisse logitakse, on välja antud kasutajale kaugjuurdepääsuks ettevõtte sülearvuti, mitte midagi muud. (Seda nõuet on rahuldamiseks tehtud mitu varianti)
- Peab olema hindamine ühenduvate seadmete seisundist (selle etapi PC) koos kliendi nõuete ulatusliku tabeliga (kokkuvõtlikult):
- Failid ja nende omadused;
- Registri kirjed;
- OS-i plaastrid esitatud loendist (hiljem SCCM integreerimine);
- Teatud tootja viirusetõrje olemasolu ja allkirjade ajakohasus;
- Teatud teenuste aktiivsus;
- Teatud installitud programmide olemasolu;
Esiteks soovitan kindlasti vaadata video demonstreerimist valminud rakendusele, Youtube'is (5 minutit).

Nüüd soovitan vaadata rakenduse detaile, mida videos ei kajastatud.
Valmistame ette AnyConnecti profiili:
Profiili loomise näide (ASDM menüüpunkti plaanis) olen varem kirjeldanud oma artiklis, Praegu tahan eraldi rõhutada neid valikuid, mis meile vajalikud on:
Profiilis näitame VPN-i väravat ja profiili nime ühendamiseks lõpp-kliendis:

Teostame sertifikaadi automaatse väljaandmise seadistused profili poolt, näidates sealhulgas sertifikaadi parameetreid ning sellele tähelepanu pöörates vaatame välja Initials (I), kuhu on käsitsi sisestatud konkreetne väärtus UDID katsemasina (seade ainulaadne identifikaator, mille genereerib Cisco AnyConnecti klient).

Siin tahan teha lühiülevaate, kuna see artikkel kirjeldab kontseptsiooni, demonstreerimise eesmärkide jaoks on siin UDID sisestatud AnyConnecti profiili Initials väljale sertifikaadi väljaandmiseks. Loomulikult, kui te seda reaalses elus teete, saavad kõik kliendid sama UDID, ja ei toimi, kuna neile on vajalik oma PC konkreetne UDID. Kahjuks ei rakenda AnyConnect hetkel keskkonnamuutuja kaudu sertifikaadi päringut UDID välja vahetamist nagu nad näiteks teevad muutuja %USER%.
Oluline on märkida, et tellija (selle stsenaariumi puhul) plaanib algselt iseseisvalt välja anda sertifikaate määratud UDID-ga käsitsi sellistele kaitstud PC-dele, mis ei ole tema jaoks probleem. Kuid enamiku jaoks meist soovime automatiseerimist (minu jaoks kindlasti=) ).
Ja mida ma automaatika osas pakkuda saan. Kui AnyConnect'is sertifikaati automaatselt välja kirjutada ei ole võimalik, kasutades UDID-d dünaamiliselt, siis on veel üks viis, mis nõuab veidi loomingulist mõtlemist ja oskuslikke käsi – räägin konceptist. Alustuseks vaatame, kuidas UDID-d erinevatel operatsioonisüsteemidel AnyConnect'i agente abil genereeritakse:
- Windows — SHA-256 Hash registry key DigitalProductID ja Machine SID kombinatsioonist
- OSX — SHA-256 Hash PlatformUUID-st
- Linux — SHA-256 Hash UUID root-partitsioonist.
- Apple iOS — SHA-256 Hash PlatformUUID-st
- Android – Vaata dokumenti
Seega koostame skripti meie korporatiivsete Windows operatsioonisüsteemide jaoks, millega arvutame UDID-d kohalike sisendite põhjal ja vormistame sertifikaadi taotluse, sisestades vajalikku väljasse selle UDID, muide, saab ka masinate sertifikaati, mille on andnud AD (lisades skeemile topeltautentimise sertifikaadi kaudu Multiple Certificate).
Valmistame ette seadistused Cisco ASA poolt:
Loome TrustPoint ISE CA serverile, just tema väljastab sertifikaate klientidele. Key-Chain'i importimise protseduuri ei käsitle, näide on kirjas minu seadistuse artiklis .
crypto ca trustpoint ISE-CA
enrollment terminal
crl configureSeame Tunnel-Group'i jaotuse seoses autentimise reeglitega, mis põhinevad sertifikaadi väljadega. Samuti seadistame siin AnyConnect'i profiili, mille me eelmisel etapil lõime. Joonistan tähelepanu sellele, et kasutan väärtust SECUREBANK-RA, sertifikaadiga kasutajate üleviimiseks tunneligruppi SECURE-BANK-VPN, palun pange tähele, et see väli on minu AnyConnect'i profiili sertifikaadi taotluse veerus.
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
!Seame autentimise serverid. Minu puhul on see ISE esimese autentimise etapi jaoks ja DUO (Radius Proxy) kui 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
!Loome grupipoliitika ja tunneligrupid ning nende abikomponendid:
Tunneligrupp DefaultWEBVPNGroup kasutatakse peamiselt AnyConnect VPN kliendi allalaadimiseks ja kasutaja sertifikaadi väljastamiseks, kasutades ASA SCEP-Proxy funktsiooni. Selleks on meil aktiveeritud vastavad valikud nii tunneligrupis kui ka seotud grupipoliitikas. AC-Download, samuti AnyConnecti allalaaditavas profiilis (sertifikaadi väljastamise väljad jne). Samuti määrame selles grupipoliitikas allalaadimise vajaduse. ISE Posture Module.
Tunneligrupp SECURE-BANK-VPN kasutatakse automaatselt kliendi poolt autentimise käigus väljastatud sertifikaadi alusel eelneval etapil, kuna Sertifikaadi Kaardiga vastavuses langeb ühendus just sellele tunneligruppile. Räägin siit huvitavatest valikutest:
- 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) – дока
!
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
!Jätkame ISE-ga:
Seame üles kohaliku kasutaja (kasutada saab ka AD/LDAP/ODBC jne), lihtsuse huvides tegin ma kohaliku kasutaja otse ISE-s ja määrasin välja kirjeldus PC UDID mille kaudu on tal lubatud VPN-i siseneda. Kui ISE-s kasutatakse kohalikku autentimist, piirduksin ainult ühe seadmega, kuna väljal ei ole nii palju kohti, kuid kolmandate osapoolte autentimisbaasides ei oleks mul selliseid piiranguid.

Vaadakem autoriseerimise poliitikat, see jaguneb neljaks ühenduse etapiks:
- Etapp 1 — Poliitika AnyConnecti agendi allalaadimiseks ja sertifikaadi väljastamiseks
- Etapp 2 — Esmase autentimise poliitika Kasutajanimi (sertifikaadist)/Parool + Sertifikaat UDID valideerimisega
- Etapp 3 — Teise valmisoleku autentimine Cisco DUO (MFA) kaudu, kasutades UDID-d kasutajanime ja oleku hindamist
- Etapp 4 — Lõplik autoriseerimine olekus:
- Vastav;
- UDID valideerimisega (sertifikaadist + logimise seondamine),
- Cisco DUO MFA;
- Logimise autentimine;
- Sertifikaadi autentimine;

Vaadakem huvitavat tingimust UUID_VALIDATED, see vaatab, et autentimise alustanud kasutaja tuleb tõepoolest arvutist, millel on lubatud UDID seondatud väljaga Kirjeldus kasutajakontole, tingimus näeb välja järgmiselt:

Autoriseerimisprofiil, mida kasutatakse etappides 1, 2 ja 3, näeb välja järgmine:

Kuidas täpselt UDID klient AnyConnectilt meieni jõuab, saab vaadata ISE kliendi seansi detailidelt. Detailides näeme, et AnyConnect saadab teabe kaudu ACIDEX ütleb mitte ainult platvormi andmeid, vaid ka seadme UDID-d kui Cisco-AV-PAIR:

Jätame tähelepanu välja antud kasutaja sertifikaadile ja väljale Initials (I), mida kasutatakse kasutajanime saamiseks teise taseme autentimiseks MFA-l Cisco DUO:

DUO Radius Proxy poolel näeme logis selgelt, kuidas päring autentimist käsitletakse, see toimub UDID kasutajanime kasutamisel:

DUO portaali küljest näeme õnnestunud autentimise sündmust:

Ja kasutaja omadustes on mul seadistatud ALIAS, mida ma kasutasin logimise jaoks, see on UDID lubatud logiva arvuti jaoks:

Tulemuseks on:
- Kasutaja ja seadme mitmeastmeline autentimine;
- Kaitse kasutaja seadme valevahetuse eest;
- Seadme oleku hindamine;
- Potentsiaal domeeni masina sertifikaadi kontrolli tugevdamiseks jne;
- Kaupade kompleksne kaitse kaug töökohtadele automaatselt juurutatavate turvamoodulitega;
Artiklite lingid Cisco VPN seeriasse:
Allikas: habr.com
