Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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:

  1. 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);;
  2. Mitme teguri autentimine:
    • Kasutaja sertifikaat koos väljade kontrollimise ja ühe neist teise autentimisega;
    • Logi (muutumatuna, sertifikaadist saadud) ja parool;
  3. Ü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:

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

Mängi videot

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, VPN Load-Balancing klastrist.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:

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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 lingil

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 VPN Load-Balancing klastrist..

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Seame 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) – дока siit

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

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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;

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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:

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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:

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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:

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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

Kõrge turvalisusega kaugjuurdepääsu kontseptsiooni rakendamine

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

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster