Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas
Tęsiant straipsnių ciklą organizavimo tema Nuotolinės prieigos VPN prieiga Negaliu nepasidalyti savo įdomia diegimo patirtimi labai saugi VPN konfigūracija. Nebanalią užduotį pateikė vienas užsakovas (išradėjų yra Rusijos kaimuose), tačiau Iššūkis buvo priimtas ir kūrybiškai įgyvendintas. Rezultatas yra įdomi koncepcija su šiomis savybėmis:
Keli apsaugos nuo galinio įrenginio pakeitimo veiksniai (griežtai įpareigojant vartotoją);
Vartotojo kompiuterio atitikties leistino kompiuterio UDID autentifikavimo duomenų bazėje vertinimas;
Su MFA naudojant PC UDID iš sertifikato antriniam autentifikavimui per Cisco DUO (Galite pridėti bet kurį su SAML / spinduliu suderinamą);
Kelių veiksnių autentifikavimas:
Vartotojo sertifikatas su lauko patikrinimu ir antriniu vieno iš jų autentifikavimu;
Prisijungimo vardas (nekeičiamas, paimtas iš sertifikato) ir slaptažodis;
Prisijungiančio pagrindinio kompiuterio būsenos įvertinimas (laikysena)
Naudojami tirpalo komponentai:
„Cisco ASA“ (VPN šliuzas);
Cisco ISE (autentifikavimas / autorizavimas / apskaita, valstybės įvertinimas, CA);
„Cisco DUO“ (daugiafaktoris autentifikavimas) (Galite pridėti bet kurį su SAML / spinduliu suderinamą);
Cisco AnyConnect (daugiafunkcis agentas, skirtas darbo stotims ir mobiliosioms OS);
Pradėkime nuo kliento reikalavimų:
Vartotojas, naudodamas prisijungimo/slaptažodžio autentifikavimą, turi turėti galimybę atsisiųsti AnyConnect klientą iš VPN šliuzo; visi reikalingi AnyConnect moduliai turi būti automatiškai įdiegti pagal vartotojo politiką;
Vartotojas turėtų turėti galimybę automatiškai išduoti sertifikatą (vieno iš scenarijų pagrindinis scenarijus yra rankinis išdavimas ir įkėlimas į kompiuterį), bet aš įdiegiau automatinį išdavimą demonstravimui (niekada nevėlu jį pašalinti).
Bazinis autentifikavimas turi vykti keliais etapais, pirmiausia yra sertifikato autentifikavimas su reikiamų laukelių ir jų reikšmių analize, tada prisijungimas/slaptažodis, tik šį kartą į prisijungimo langą reikia įvesti sertifikato laukelyje nurodytą vartotojo vardą Temos pavadinimas (CN) be galimybės redaguoti.
Turite įsitikinti, kad įrenginys, iš kurio prisijungiate, yra įmonės nešiojamas kompiuteris, išduotas vartotojui nuotolinei prieigai, o ne kažkas kita. (Šiam reikalavimui įvykdyti buvo pasiūlyta keletas variantų)
Jungiamojo įrenginio (šiuo etapu PC) būsena turėtų būti įvertinta patikrinus visą didelę klientų reikalavimų lentelę (apibendrinant):
Failai ir jų savybės;
Registro įrašai;
OS pataisos iš pateikto sąrašo (vėliau SCCM integracija);
Antivirusinės programos iš konkretaus gamintojo prieinamumas ir parašų tinkamumas;
Tam tikrų paslaugų veikla;
Tam tikrų įdiegtų programų prieinamumas;
Pirmiausia siūlau jums būtinai pažiūrėti vaizdo įrašą, kuriame demonstruojamas gautas diegimas Youtube (5 minutės).
Dabar siūlau apsvarstyti įgyvendinimo detales, kurios nėra aprašytos vaizdo klipe.
Paruoškime AnyConnect profilį:
Anksčiau savo straipsnyje apie nustatymą pateikiau profilio kūrimo pavyzdį (meniu elemento ASDM atžvilgiu). VPN apkrovos balansavimo klasteris. Dabar norėčiau atskirai atkreipti dėmesį į parinktis, kurių mums prireiks:
Profilyje nurodysime VPN šliuzą ir profilio pavadinimą, skirtą prisijungti prie galutinio kliento:
Sukonfigūruokime automatinį sertifikato išdavimą iš profilio pusės, nurodydami visų pirma sertifikato parametrus ir, būdingai, atkreipkite dėmesį į lauką Inicialai (I), kur konkreti reikšmė įvedama rankiniu būdu TU PADAREI bandomasis įrenginys (unikalus įrenginio identifikatorius, sugeneruotas Cisco AnyConnect kliento).
Čia noriu padaryti lyrišką nukrypimą, nes šiame straipsnyje aprašoma koncepcija; demonstravimo tikslais sertifikato išdavimo UDID įvedamas AnyConnect profilio lauke Initials. Žinoma, realiame gyvenime, jei tai padarysite, visi klientai gaus sertifikatą su tuo pačiu UDID šioje srityje ir jiems niekas neveiks, nes jiems reikia konkretaus kompiuterio UDID. Deja, „AnyConnect“ dar neįgyvendina UDID lauko pakeitimo sertifikato užklausos profilyje per aplinkos kintamąjį, kaip, pavyzdžiui, su kintamuoju. %VARTOTOJAS%.
Verta paminėti, kad klientas (šio scenarijaus atveju) iš pradžių planuoja savarankiškai išduoti sertifikatus su nurodytu UDID rankiniu režimu tokiems apsaugotiems kompiuteriams, o tai jam nėra problema. Tačiau daugumai iš mūsų norime automatizavimo (na, man tai tiesa =)).
Ir tai galiu pasiūlyti automatizavimo prasme. Jei „AnyConnect“ dar negali automatiškai išduoti sertifikato, dinamiškai pakeisdama UDID, tada yra kitas būdas, kuriam prireiks šiek tiek kūrybingų minčių ir sumanių rankų - aš jums pasakysiu koncepciją. Pirmiausia pažiūrėkime, kaip „AnyConnect“ agentas skirtingose operacinėse sistemose generuoja UDID:
Windows — SHA-256 maiša iš DigitalProductID ir Machine SID registro rakto derinio
Atitinkamai sukuriame scenarijų mūsų įmonės Windows OS, su šiuo scenarijumi lokaliai apskaičiuojame UDID naudodami žinomas įvestis ir formuojame prašymą išduoti sertifikatą, įvesdami šį UDID į reikiamą lauką, beje, galite naudoti ir mašiną sertifikatas, išduotas AD (pridedant dvigubą autentifikavimą naudojant sertifikatą prie schemos Keli sertifikatai).
Paruoškime nustatymus Cisco ASA pusėje:
Sukurkime ISE CA serveriui TrustPoint, jis bus tas, kuris išduos sertifikatus klientams. Aš nenagrinėsiu „Key-Chain“ importavimo procedūros; pavyzdys aprašytas mano sąrankos straipsnyje VPN apkrovos balansavimo klasteris.
crypto ca trustpoint ISE-CA
enrollment terminal
crl configure
Mes sukonfigūruojame paskirstymą pagal tunelio grupę pagal taisykles pagal autentifikavimui naudojamo sertifikato laukus. Čia taip pat sukonfigūruotas ankstesniame etape sukurtas AnyConnect profilis. Atkreipkite dėmesį, kad naudoju vertę SECUREBANK-RA, perkelti vartotojus su išduotu sertifikatu į tunelių grupę SAUGUS BANKAS-VPN, atkreipkite dėmesį, kad turiu šį lauką AnyConnect profilio sertifikato užklausos stulpelyje.
Autentifikavimo serverių nustatymas. Mano atveju tai yra ISE pirmajam autentifikavimo etapui ir DUO (Radius Proxy) kaip 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
!
Kuriame grupių strategijas ir tunelių grupes bei jų pagalbinius komponentus:
Tunelio grupė Numatytoji WEBVPNG grupė pirmiausia bus naudojamas norint atsisiųsti AnyConnect VPN klientą ir išduoti vartotojo sertifikatą naudojant ASA funkciją SCEP-proxy; tam mes turime atitinkamas parinktis, suaktyvintas tiek pačioje tunelio grupėje, tiek susijusioje grupės politikoje. AC - atsisiuntimas, ir įkeltame AnyConnect profilyje (laukeliai, skirti sertifikatui išduoti ir pan.). Taip pat šioje grupės politikoje nurodome, kad reikia atsisiųsti ISE laikysenos modulis.
Tunelio grupė SAUGUS BANKAS-VPN bus automatiškai naudojamas klientas autentifikuodamasis su išduotu sertifikatu ankstesniame etape, nes pagal Sertifikatų žemėlapį ryšys atiteks būtent šiai tunelio grupei. Čia papasakosiu apie įdomias parinktis:
antrinė-autentifikavimo-serverio-grupė DUO # Nustatykite antrinį autentifikavimą DUO serveryje (Radius Proxy)
vartotojo vardas iš sertifikatoCN # Pirminiam autentifikavimui naudojame sertifikato CN lauką, kad paveldėtume vartotojo prisijungimą
antrinis naudotojo vardas iš sertifikato I # Antriniam autentifikavimui DUO serveryje naudojame išskirtą vartotojo vardą ir sertifikato laukus Initials (I).
iš anksto užpildyti vartotojo vardą klientas # padaryti vartotojo vardą iš anksto užpildytą autentifikavimo lange be galimybės pakeisti
antrinio išankstinio užpildymo vartotojo vardo klientas slėpti naudojimo bendrąjį slaptažodžio siuntimą # Paslėpiame prisijungimo / slaptažodžio įvesties langą antriniam autentifikavimui DUO ir naudojame pranešimo metodą (sms/push/phone) - prijunkite, kad prašytumėte autentifikavimo vietoj slaptažodžio lauko čia
!
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
!
Toliau pereiname prie ISE:
Konfigūruojame vietinį vartotoją (galite naudoti AD/LDAP/ODBC ir pan.), dėl paprastumo sukūriau vietinį vartotoją pačioje ISE ir priskyriau jį lauke aprašymasUDID kompiuteris iš kurios jam leidžiama prisijungti per VPN. Jei naudosiu vietinį autentifikavimą ISE, apsiribosiu tik vienu įrenginiu, nes laukų nėra daug, tačiau trečiųjų šalių autentifikavimo duomenų bazėse tokių apribojimų neturėsiu.
Pažvelkime į autorizacijos politiką, ji suskirstyta į keturis prisijungimo etapus:
1 stadija — AnyConnect agento atsisiuntimo ir sertifikato išdavimo politika
2 stadija - Pirminė autentifikavimo politika Prisijungimas (iš sertifikato) / slaptažodis + sertifikatas su UDID patvirtinimu
3 stadija — Antrinis autentifikavimas per Cisco DUO (MFA), naudojant UDID kaip vartotojo vardą + būsenos įvertinimas
4 stadija — Galutinis leidimas yra tokioje būsenoje:
Atitinka;
UDID patvirtinimas (iš sertifikato + prisijungimo surišimas),
Cisco DUO MFA;
Autentifikavimas prisijungus;
Sertifikato autentifikavimas;
Pažvelkime į įdomią būklę UUID_VALIDATED, atrodo, kad autentifikavimą patvirtinantis vartotojas iš tikrųjų atėjo iš kompiuterio, kurio lauke buvo susietas leistinas UDID Aprašymas sąskaitos sąlygos atrodo taip:
1,2,3, XNUMX, XNUMX etapuose naudojamas autorizacijos profilis yra toks:
Galite tiksliai patikrinti, kaip UDID iš „AnyConnect“ kliento pasiekia mus, peržiūrėję išsamią kliento seanso informaciją ISE. Išsamiai matysime, kad AnyConnect per mechanizmą RŪGŠTIS siunčia ne tik informaciją apie platformą, bet ir įrenginio UDID as Cisco-AV-PAIR:
Atkreipkime dėmesį į vartotojui išduodamą sertifikatą ir lauką Inicialai (I), kuris naudojamas kaip prisijungimo prie antrinio MFA autentifikavimo Cisco DUO:
Žurnalo DUO spindulio tarpinio serverio pusėje aiškiai matome, kaip pateikiama autentifikavimo užklausa, kuri pateikiama naudojant UDID kaip vartotojo vardą:
Iš DUO portalo matome sėkmingą autentifikavimo įvykį:
Ir vartotojo ypatybėse tai nustatiau IŠ TIKRŲJŲ, kurį naudojau prisijungimui, savo ruožtu tai yra prisijungimui leidžiamo kompiuterio UDID:
Rezultate mes gavome:
Daugiafaktoris vartotojo ir įrenginio autentifikavimas;
Apsauga nuo vartotojo įrenginio klastojimo;
Įrenginio būklės įvertinimas;
Galimybė padidinti valdymą naudojant domeno mašinos sertifikatą ir kt.;
Visapusiška nuotolinė darbo vietos apsauga su automatiškai įdiegtais apsaugos moduliais;