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:

  1. 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ą);
  2. Kelių veiksnių autentifikavimas:
    • Vartotojo sertifikatas su lauko patikrinimu ir antriniu vieno iš jų autentifikavimu;
    • Prisijungimo vardas (nekeičiamas, paimtas iš sertifikato) ir slaptažodis;
  3. 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ų:

  1. 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ą;
  2. 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).
  3. 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.
  4. 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ų)
  5. 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:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

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

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

Č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
  • OSX – SHA-256 maišos platformos UUID
  • Linux — SHA-256 maišos šakninio skaidinio UUID.
  • "Apple" "iOS" – SHA-256 maišos platformos UUID
  • Android – Žiūrėti dokumentą nuoroda

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.

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
!

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šymas UDID 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.

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

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;

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

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:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

1,2,3, XNUMX, XNUMX etapuose naudojamas autorizacijos profilis yra toks:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

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:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

Atkreipkime dėmesį į vartotojui išduodamą sertifikatą ir lauką Inicialai (I), kuris naudojamas kaip prisijungimo prie antrinio MFA autentifikavimo Cisco DUO:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

Žurnalo DUO spindulio tarpinio serverio pusėje aiškiai matome, kaip pateikiama autentifikavimo užklausa, kuri pateikiama naudojant UDID kaip vartotojo vardą:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

Iš DUO portalo matome sėkmingą autentifikavimo įvykį:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

Ir vartotojo ypatybėse tai nustatiau IŠ TIKRŲJŲ, kurį naudojau prisijungimui, savo ruožtu tai yra prisijungimui leidžiamo kompiuterio UDID:

Itin saugios nuotolinės prieigos koncepcijos įgyvendinimas

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;

Nuorodos į Cisco VPN serijos straipsnius:

Šaltinis: www.habr.com

Добавить комментарий