Implementering van die konsep van hoogs veilige afstandtoegang

Voortsetting van die reeks artikels oor die onderwerp van organisasie Afstandtoegang VPN toegang Ek kan nie anders as om 'n interessante ontplooiingservaring te deel nie hoogs veilige VPN-konfigurasie. 'n Nie-onbelangrike taak is deur een klant gegooi (daar is uitvinders in Russiese dorpe), maar Challenge Accepted is kreatief geïmplementeer. Die resultaat is 'n interessante konsep met die volgende kenmerke:

  1. Verskeie faktore van beskerming teen vervanging van die terminale toestel (met 'n rigiede binding aan die gebruiker);
    • Evaluering van die voldoening van die gebruiker se rekenaar met die toegewysde UDID van die toegelate rekenaar in die verifikasiebasis;
    • Met MFA met behulp van PC UDID vanaf sertifikaat vir sekondêre verifikasie via Cisco DUO (Jy kan enige SAML / Radius-versoenbaar skroef);
  2. Multi-faktor verifikasie:
    • Gebruikersertifikaat met veldvalidering en sekondêre verifikasie vir een van hulle;
    • Aanmelding (onveranderbaar, geneem uit die sertifikaat) en wagwoord;
  3. Skat die toestand van die verbindende gasheer (Postuur)

Oplossingskomponente wat gebruik word:

  • Cisco ASA (VPN Gateway);
  • Cisco ISE (stawing / magtiging / rekeningkunde, staat skatting, CA);
  • Cisco DUO (Multi-Factor Authentication) (Jy kan enige SAML / Radius-versoenbaar skroef);
  • Cisco AnyConnect (veeldoelige agent vir werkstasies en mobiele bedryfstelsels);

Kom ons begin met die kliëntvereistes:

  1. Die gebruiker moet die AnyConnect-kliënt van die VPN-poort kan aflaai deur sy Login/Wagwoord-verifikasie, al die nodige AnyConnect-modules moet outomaties geïnstalleer word in ooreenstemming met die gebruiker se beleid;
  2. Die gebruiker behoort outomaties 'n sertifikaat te kan uitreik (vir een van die scenario's is die hoofscenario handmatige uitreiking en invul op 'n rekenaar), maar ek het outo-uitreiking vir 'n demonstrasie geïmplementeer (dit is nooit te laat om dit te verwyder nie).
  3. Basiese verifikasie moet in verskeie stadiums plaasvind, eers word die sertifikaat geverifieer met die ontleding van die vereiste velde en hul waardes, dan die aanmelding / wagwoord, slegs hierdie keer moet die gebruikersnaam gespesifiseer in die sertifikaatveld in die aanmeldvenster vervang word Onderwerpnaam (CN) sonder die moontlikheid om te wysig.
  4. Jy moet seker maak dat die toestel vanwaar jy aanmeld 'n korporatiewe skootrekenaar is wat aan die gebruiker uitgereik is vir afstandtoegang, en niks anders nie. (Verskeie variasies is gemaak om aan hierdie vereiste te voldoen)
  5. Die toestand van die verbindingstoestel moet geassesseer word (op hierdie stadium, die rekenaar) met 'n kontrole van die hele stewige tabel van klantvereistes (opsomming):
    • Lêers en hul eienskappe;
    • Registerinskrywings;
    • OS-kolle vanaf die verskafde lys (verdere SCCM-integrasie);
    • Beskikbaarheid van Anti-Virus van 'n sekere vervaardiger en relevansie van handtekeninge;
    • Aktiwiteit van sekere dienste;
    • Teenwoordigheid van sekere geïnstalleerde programme;

Om mee te begin, stel ek voor dat jy beslis kyk na die video-demonstrasie van die gevolglike implementering op Youtube (5 minute).

Nou stel ek voor om die implementeringsbesonderhede te oorweeg wat nie in die videogreep gedek word nie.

Kom ons berei die AnyConnect-profiel voor:

'n Voorbeeld van die skep van 'n profiel (in terme van 'n spyskaart-item in ASDM) het ek voorheen in my artikel oor instelling gegee VPN-lasbalanserende groepering. Nou wil ek afsonderlik let op die opsies wat ons nodig het:

In die profiel, spesifiseer die VPN-poort en die profielnaam vir verbinding op die eindkliënt:

Implementering van die konsep van hoogs veilige afstandtoegang

Kom ons stel die outomatiese uitreiking van 'n sertifikaat van die kant van die profiel op, spesifiseer veral die parameters van die sertifikaat en, wat tipies is, let op die veld Voorletters (I), waar 'n spesifieke waarde met die hand ingevoer word UIDID toetsmasjien (Unieke toestelidentifiseerder gegenereer deur die Cisco AnyConnect-kliënt).

Implementering van die konsep van hoogs veilige afstandtoegang

Hier wil ek 'n liriese afwyking maak, aangesien hierdie artikel die konsep beskryf, vir demonstrasiedoeleindes, hier is die UDID vir die uitreiking van 'n sertifikaat in die Initials-veld van die AnyConnect-profiel. Natuurlik, in die werklike lewe, as jy dit doen, sal alle kliënte 'n sertifikaat met dieselfde UDID in hierdie veld ontvang en niks sal vir hulle werk nie, want hulle het die UDID van hul spesifieke rekenaar nodig. AnyConnect implementeer ongelukkig nog nie die vervanging van die UDID-veld in die sertifikaatversoekprofiel deur die omgewingsveranderlike nie, soos dit byvoorbeeld met die veranderlike doen %USER%.

Daar moet kennis geneem word dat die kliënt (in hierdie scenario) aanvanklik beplan om sertifikate met die gespesifiseerde UDID op sy eie uit te reik aan sulke beskermde rekenaars, wat nie vir hom 'n probleem is nie. Vir die meeste van ons wil ons egter outomatisering hê (wel, vir my is dit seker =)).

En dit is wat ek kan bied in terme van outomatisering. As dit nog nie moontlik is om 'n sertifikaat outomaties uit te reik nie, deur AnyConnect wat die UDID dinamies vervang, dan is daar 'n ander manier wat 'n bietjie kreatiewe denke en vaardige hande sal verg - ek sal jou die konsep vertel. Kom ons kyk eers hoe die UDID op verskillende bedryfstelsels deur die AnyConnect-agent gevorm word:

  • Windows - SHA-256-hash van die kombinasie van die DigitalProductID en Machine SID-registersleutel
  • OSX - SHA-256 hash PlatformUUID
  • Linux - SHA-256-hash van die UUID van die wortelpartisie.
  • Apple IOS - SHA-256 hash PlatformUUID
  • Android – Sien dokument op skakel

Gevolglik maak ons ​​'n script vir ons korporatiewe Windows-bedryfstelsel, met hierdie script bereken ons plaaslik die UDID uit bekende insette en vorm 'n versoek vir die uitreiking van 'n sertifikaat deur hierdie UDID in die vereiste veld in te voer, terloops, jy kan ook 'n masjien gebruik sertifikaat uitgereik deur AD (voeg dubbele verifikasie deur sertifikaat by die skema meervoudige sertifikaat).

Kom ons berei die instellings vanaf die Cisco ASA-kant voor:

Kom ons skep 'n TrustPoint vir die ISE CA-bediener, dit sal sertifikate aan kliënte uitreik. Ek sal nie die Sleutelketting-invoerprosedure oorweeg nie, 'n voorbeeld word in my opstelartikel beskryf VPN-lasbalanserende groepering.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Ons stel verspreiding oor die Tonnel-groep op gebaseer op die reëls in ooreenstemming met die velde in die sertifikaat wat vir stawing gebruik word. Ook die AnyConnect-profiel, wat ons in die laaste stadium gemaak het, word hier gekonfigureer. Neem asseblief kennis dat ek die waarde gebruik SECUREBANK-RA, om gebruikers met 'n uitgereikte sertifikaat na 'n tonnelgroep oor te dra VEILIGE-BANK-VPN, let asseblief daarop dat ek hierdie veld in die AnyConnect-profielsertifikaatversoekkolom het.

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
!

Stel 'n verifikasiebediener op. In my geval is dit ISE vir die eerste stadium van verifikasie en DUO (Radius Proxy) as 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
!

Ons skep groepbeleide en tonnelgroepe en hul hulpkomponente:

tonnelgroep VerstekWEBVPNGroup sal hoofsaaklik gebruik word om die AnyConnect VPN-kliënt af te laai en 'n gebruikerssertifikaat uit te reik deur gebruik te maak van die SCEP-Proxy-funksie van die ASA, hiervoor het ons die toepaslike opsies geaktiveer op beide die tonnelgroep self en op die geassosieerde groepbeleid AC aflaai, en op die gelaaide AnyConnect-profiel (sertifikate-uitreikingsvelde, ens.). Ook in hierdie groepbeleid dui ons die behoefte aan om af te laai ISE Posture Module.

tonnelgroep VEILIGE-BANK-VPN sal outomaties deur die kliënt gebruik word wanneer met die uitgereikte sertifikaat in die vorige stap geverifieer word, aangesien, volgens die Sertifikaatkaart, die verbinding op hierdie tonnelgroep sal val. Ek sal jou hier vertel van interessante opsies:

  • sekondêre-verifikasie-bediener-groep DUO # Stel sekondêre verifikasie op die DUO-bediener (Radius Proxy)
  • gebruikersnaam-van-sertifikaat-CN # Gebruik die CN-veld van die sertifikaat vir primêre verifikasie om die gebruiker se aanmelding te erf
  • sekondêre-gebruikersnaam-van-sertifikaat I # Vir sekondêre verifikasie op die DUO-bediener, gebruik die gebruikersnaam wat onttrek is en die Initials (I) velde van die sertifikaat.
  • voorafvul-gebruikersnaamkliënt # maak die gebruikersnaam vooraf ingevul in die verifikasievenster sonder die moontlikheid om te verander
  • sekondêre-voor-vul-gebruikersnaam kliënt verberg gebruik-algemene-wagwoord druk # Versteek die aanmeld-/wagwoordinvoervenster vir DUO sekondêre verifikasie en gebruik die kennisgewingmetode (sms/druk/foon) in plaas van die wagwoordveld om verifikasie aan te vra - doc. hier

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

Kom ons gaan dan verder na ISE:

Ons het 'n plaaslike gebruiker opgestel (jy kan ook AD / LDAP / ODBC gebruik, ens.), vir eenvoud het ek 'n plaaslike gebruiker in die ISE self gemaak en dit aan die veld toegewys beskrywing PC UDID vanwaar hy toegelaat word om via VPN aan te meld. In die geval van die gebruik van plaaslike verifikasie op ISE, sal ek beperk word tot slegs een toestel, aangesien daar nie soveel velde is nie, maar in derdeparty-verifikasiedatabasisse sal ek nie sulke beperkings hê nie.

Implementering van die konsep van hoogs veilige afstandtoegang

Kom ons kyk na die magtigingsbeleid, dit is verdeel in vier fases van die verbinding:

  • Stadium 1 - Beleid vir die aflaai van die AnyConnect-agent en die uitreiking van 'n sertifikaat
  • Stadium 2 — Primêre stawingbeleidaanmelding (vanaf sertifikaat)/Wagwoord + Sertifikaat met UDID-bekragtiging
  • Stadium 3 - Verifikasie sekondêr via Cisco DUO (MFA) deur UDID as gebruikersnaam + Staat assessering
  • Stadium 4 - Finale magtiging in die staat:
    • Voldoende;
    • UDID-bekragtiging (vanaf die sertifikaat + binding tot die aanmelding),
    • Cisco DUO MFA
    • Aanmelding verifikasie;
    • Sertifikaat verifikasie;

Implementering van die konsep van hoogs veilige afstandtoegang

Kom ons kyk na 'n interessante toestand UUID_VALIDATED, dit lyk net asof die geverifieerde gebruiker regtig van 'n rekenaar af gekom het met 'n gepaardgaande UDID wat in die veld toegelaat word Beskrywing rekening, lyk die voorwaardes soos volg:

Implementering van die konsep van hoogs veilige afstandtoegang

Die magtigingsprofiel wat in fases 1,2,3 gebruik word, lyk soos volg:

Implementering van die konsep van hoogs veilige afstandtoegang

Jy kan presies kyk hoe die UDID van die AnyConnect-kliënt af kom deur na die kliëntsessiebesonderhede in die ISE te kyk. Ons sal in detail sien dat AnyConnect deur die meganisme ACIDEX stuur nie net data oor die platform nie, maar ook die UDID van die toestel as Cisco-AV-PAAR:

Implementering van die konsep van hoogs veilige afstandtoegang

Gee aandag aan die sertifikaat wat aan die gebruiker uitgereik is en die veld Voorletters (I), wat gebruik word om dit as 'n aanmelding vir MFA sekondêre verifikasie op die Cisco DUO te neem:

Implementering van die konsep van hoogs veilige afstandtoegang

Aan die DUO Radius Proxy-kant kan ons duidelik in die logboek sien hoe die verifikasieversoek verloop, dit gebruik die UDID as die gebruikersnaam:

Implementering van die konsep van hoogs veilige afstandtoegang

Vanaf die DUO-portaal sien ons 'n suksesvolle verifikasiegeleentheid:

Implementering van die konsep van hoogs veilige afstandtoegang

En in die gebruiker eienskappe wat ek gestel het ALIAS, wat ek gebruik het om aan te meld, op sy beurt is dit die UDID van die rekenaar wat toegelaat word vir aanmelding:

Implementering van die konsep van hoogs veilige afstandtoegang

As gevolg hiervan het ons:

  • Multi-faktor gebruiker en toestel stawing;
  • Beskerming teen vervanging van die gebruiker se toestel;
  • Assessering van die toestand van die toestel;
  • Potensiaal vir verhoogde beheer met domeinmasjiensertifikaat, ens.;
  • Omvattende beskerming van 'n afgeleë werkplek met outomaties ontplooide sekuriteitsmodules;

Skakels na artikels in die Cisco VPN-reeks:

Bron: will.com

Voeg 'n opmerking