Implementacija koncepta visokobezbednog udaljenog pristupa

Nastavljamo seriju članaka na temu organizacije VPN za daljinski pristup pristup Ne mogu a da ne podijelim svoje zanimljivo iskustvo implementacije visoko sigurna VPN konfiguracija. Jedan kupac je predstavio netrivijalan zadatak (u ruskim selima ima pronalazača), ali je Izazov prihvaćen i kreativno implementiran. Rezultat je zanimljiv koncept sa sljedećim karakteristikama:

  1. Nekoliko faktora zaštite od zamjene terminalnog uređaja (uz striktnu vezu za korisnika);
    • Procena usklađenosti računara korisnika sa dodeljenim UDID-om dozvoljenog računara u autentifikacionoj bazi podataka;
    • Sa MFA koristeći UDID računara iz sertifikata za sekundarnu autentifikaciju preko Cisco DUO (Možete priložiti bilo koji SAML/Radius kompatibilan);
  2. Višefaktorska autentifikacija:
    • Korisnički certifikat s terenskom verifikacijom i sekundarnom autentifikacijom na jednom od njih;
    • Login (nepromjenjivo, preuzeto iz certifikata) i lozinka;
  3. Procjena stanja hosta za povezivanje (držanje)

Korištene komponente rješenja:

  • Cisco ASA (VPN Gateway);
  • Cisco ISE (Authentication / Authorization / Accounting, State Evaluation, CA);
  • Cisco DUO (Višefaktorska autentikacija) (Možete priložiti bilo koji SAML/Radius kompatibilan);
  • Cisco AnyConnect (višenamjenski agent za radne stanice i mobilni OS);

Počnimo sa zahtjevima kupaca:

  1. Korisnik mora, putem svoje autentikacije za prijavu/lozinku, biti u mogućnosti da preuzme AnyConnect klijenta sa VPN gatewaya; svi potrebni AnyConnect moduli moraju biti instalirani automatski u skladu s politikom korisnika;
  2. Korisnik bi trebao biti u mogućnosti da automatski izda certifikat (za jedan od scenarija, glavni scenarij je ručno izdavanje i postavljanje na PC), ali sam implementirao automatsko izdavanje za demonstraciju (nikada nije kasno da ga uklonim).
  3. Osnovna autentifikacija se mora odvijati u nekoliko faza, prvo slijedi autentifikacija certifikata sa analizom potrebnih polja i njihovih vrijednosti, zatim login/lozinka, samo što se ovaj put u prozor za prijavu mora ubaciti korisničko ime navedeno u polju certifikata Naziv subjekta (CN) bez mogućnosti uređivanja.
  4. Morate biti sigurni da je uređaj sa kojeg se prijavljujete korporativni laptop koji je izdat korisniku na daljinski pristup, a ne nešto drugo. (Napravljeno je nekoliko opcija da se ovaj zahtjev zadovolji)
  5. Stanje uređaja za povezivanje (u ovoj fazi PC) treba procijeniti provjerom cijele velike tabele zahtjeva kupaca (sumira):
    • Datoteke i njihova svojstva;
    • Unosi u registar;
    • OS zakrpe sa priložene liste (kasnije SCCM integracija);
    • Dostupnost Anti-Virus od određenog proizvođača i relevantnost potpisa;
    • Djelatnost određenih usluga;
    • Dostupnost određenih instaliranih programa;

Za početak, predlažem da svakako pogledate video demonstraciju rezultirajuće implementacije Youtube (5 minuta).

Sada predlažem da razmotrimo detalje implementacije koji nisu pokriveni u video klipu.

Hajde da pripremimo AnyConnect profil:

Prethodno sam dao primjer kreiranja profila (u smislu stavke menija u ASDM-u) u svom članku o podešavanju VPN klaster za balansiranje opterećenja. Sada bih želio posebno napomenuti opcije koje će nam trebati:

U profilu ćemo navesti VPN gateway i naziv profila za povezivanje sa krajnjim klijentom:

Implementacija koncepta visokobezbednog udaljenog pristupa

Konfigurirajmo automatsko izdavanje certifikata sa strane profila, navodeći, posebno, parametre certifikata i, karakteristično, obratimo pažnju na polje inicijali (I), gdje se određena vrijednost unosi ručno UID test mašina (jedinstveni identifikator uređaja koji generiše Cisco AnyConnect klijent).

Implementacija koncepta visokobezbednog udaljenog pristupa

Ovdje želim napraviti lirsku digresiju, jer ovaj članak opisuje koncept; u svrhu demonstracije, UDID za izdavanje certifikata unosi se u polje Initials profila AnyConnect. Naravno, u stvarnom životu, ako to uradite, onda će svi klijenti dobiti sertifikat sa istim UDID-om u ovom polju i ništa im neće raditi, jer im je potreban UDID njihovog konkretnog računara. AnyConnect, nažalost, još uvijek ne implementira zamjenu UDID polja u profil zahtjeva za certifikat preko varijable okruženja, kao što to radi, na primjer, s varijablom %USER%.

Vrijedi napomenuti da korisnik (ovog scenarija) u početku planira samostalno izdati certifikate sa datim UDID-om u ručnom načinu rada takvim zaštićenim računarima, što za njega nije problem. Međutim, za većinu nas želimo automatizaciju (pa, za mene je to istina =)).

A ovo je ono što mogu ponuditi u smislu automatizacije. Ako AnyConnect još nije u mogućnosti automatski izdati certifikat dinamičkom zamjenom UDID-a, onda postoji još jedan način koji će zahtijevati malo kreativnog razmišljanja i vješte ruke - reći ću vam koncept. Prvo, pogledajmo kako se UDID generiše na različitim operativnim sistemima od strane AnyConnect agenta:

  • Windows — SHA-256 hash kombinacije ključa registra DigitalProductID i Machine SID
  • OSX — SHA-256 hash PlatformUUID
  • Linux — SHA-256 hash UUID-a korijenske particije.
  • Apple iOS — SHA-256 hash PlatformUUID
  • android – Vidi dokument na link

U skladu s tim, kreiramo skriptu za naš korporativni Windows OS, sa ovom skriptom lokalno izračunavamo UDID koristeći poznate ulaze i formiramo zahtjev za izdavanje certifikata unošenjem ovog UDID-a u potrebno polje, usput, možete koristiti i mašinu certifikat koji je izdao AD (dodavanjem dvostruke provjere autentičnosti pomoću certifikata u šemu Višestruki certifikat).

Hajde da pripremimo podešavanja na Cisco ASA strani:

Kreirajmo TrustPoint za ISE CA server, on će biti onaj koji će izdavati certifikate klijentima. Neću razmatrati proceduru uvoza lanca ključeva; primjer je opisan u mom članku o postavljanju VPN klaster za balansiranje opterećenja.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Konfigurišemo distribuciju po Tunnel-Grupi na osnovu pravila u skladu sa poljima u sertifikatu koji se koristi za autentifikaciju. Ovdje je također konfigurisan AnyConnect profil koji smo napravili u prethodnoj fazi. Imajte na umu da koristim vrijednost SECUREBANK-RA, za prebacivanje korisnika s izdanim certifikatom u grupu tunela SECURE-BANK-VPN, imajte na umu da imam ovo polje u stupcu zahtjeva za certifikatom AnyConnect profila.

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
!

Postavljanje servera za autentifikaciju. U mom slučaju, ovo je ISE za prvu fazu autentifikacije i DUO (Radius Proxy) kao 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
!

Kreiramo grupne politike i grupe tunela i njihove pomoćne komponente:

Grupa tunela DefaultWEBVPNGroup koristit će se prvenstveno za preuzimanje AnyConnect VPN klijenta i izdavanje korisničkog certifikata koristeći SCEP-Proxy funkciju ASA; za to imamo aktivirane odgovarajuće opcije i na samoj grupi tunela i na pridruženoj grupnoj politici AC-Download, i na učitanom AnyConnect profilu (polja za izdavanje certifikata, itd.). Takođe u ovoj grupnoj politici ukazujemo na potrebu preuzimanja ISE Modul za držanje.

Grupa tunela SECURE-BANK-VPN će se automatski koristiti od strane klijenta prilikom autentikacije izdanim certifikatom u prethodnoj fazi, budući da će, u skladu sa mapom certifikata, veza pasti upravo na ovu grupu tunela. Ovdje ću vam reći o zanimljivim opcijama:

  • sekundarna-autentifikacija-grupa-servera DUO # Postavite sekundarnu autentifikaciju na DUO serveru (Radius proxy)
  • korisničko ime-iz-certifikataCN # Za primarnu autentifikaciju, koristimo CN polje certifikata da naslijedimo prijavu korisnika
  • sekundarno-korisničko-ime-iz-potvrde I # Za sekundarnu autentifikaciju na DUO serveru koristimo ekstrahirano korisničko ime i polja inicijala (I) certifikata.
  • klijent unapred popunjavanja korisničkog imena # učinite da korisničko ime bude unaprijed popunjeno u prozoru za autentifikaciju bez mogućnosti promjene
  • sekundarno-pre-ispuni-korisničko ime klijent sakriti upotrebu-zajednička-lozinka push # Skrivamo prozor za unos login/lozinke za sekundarnu autentifikaciju DUO i koristimo metodu obavještenja (sms/push/telefon) - dock da zatražimo autentifikaciju umjesto polja za lozinku ovdje

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

Zatim prelazimo na ISE:

Konfiguriramo lokalnog korisnika (možete koristiti AD/LDAP/ODBC, itd.), radi jednostavnosti, kreirao sam lokalnog korisnika u samom ISE-u i dodijelio ga u polju opis UDID PC sa kojeg mu je dozvoljeno da se prijavi putem VPN-a. Ako koristim lokalnu autentifikaciju na ISE-u, bit ću ograničen na samo jedan uređaj, jer nema puno polja, ali u bazama podataka za autentifikaciju treće strane neću imati takva ograničenja.

Implementacija koncepta visokobezbednog udaljenog pristupa

Pogledajmo politiku autorizacije, ona je podijeljena u četiri faze povezivanja:

  • Faza 1 — Pravila za preuzimanje AnyConnect agenta i izdavanje sertifikata
  • Faza 2 — Politika primarne provjere autentičnosti Prijava (iz certifikata)/Lozinka + Certifikat sa UDID validacijom
  • Faza 3 — Sekundarna autentifikacija putem Cisco DUO (MFA) koristeći UDID kao korisničko ime + procjenu stanja
  • Faza 4 — Konačna autorizacija je u stanju:
    • Compliant;
    • UDID validacija (iz sertifikata + veza za prijavu),
    • Cisco DUO MFA;
    • Autentifikacija putem prijave;
    • Provjera autentičnosti certifikata;

Implementacija koncepta visokobezbednog udaljenog pristupa

Pogledajmo zanimljivo stanje UUID_VALIDIRANI, samo izgleda kao da je korisnik za autentifikaciju zapravo došao s PC-a s dozvoljenim UDID-om povezanim u polju Opis račun, uslovi izgledaju ovako:

Implementacija koncepta visokobezbednog udaljenog pristupa

Profil autorizacije koji se koristi u fazama 1,2,3 je kako slijedi:

Implementacija koncepta visokobezbednog udaljenog pristupa

Možete provjeriti kako nam tačno UDID od AnyConnect klijenta stiže gledajući detalje sesije klijenta u ISE-u. Detaljno ćemo vidjeti da AnyConnect kroz mehanizam ACIDEX šalje ne samo informacije o platformi, već i UDID uređaja kao Cisco-AV-PAIR:

Implementacija koncepta visokobezbednog udaljenog pristupa

Obratimo pažnju na sertifikat koji se izdaje korisniku i terenu inicijali (I), koji se koristi da ga uzme kao prijavu za sekundarnu MFA autentifikaciju na Cisco DUO:

Implementacija koncepta visokobezbednog udaljenog pristupa

Na strani DUO Radius Proxy-a u dnevniku možemo jasno vidjeti kako je napravljen zahtjev za autentifikaciju, dolazi koristeći UDID kao korisničko ime:

Implementacija koncepta visokobezbednog udaljenog pristupa

Sa DUO portala vidimo uspješan događaj autentifikacije:

Implementacija koncepta visokobezbednog udaljenog pristupa

I u korisničkim svojstvima imam to postavljeno ALIAS, koji sam koristio za prijavu, zauzvrat, ovo je UDID računara dozvoljenog za prijavu:

Implementacija koncepta visokobezbednog udaljenog pristupa

Kao rezultat dobili smo:

  • Višefaktorska autentikacija korisnika i uređaja;
  • Zaštita od lažiranja korisničkog uređaja;
  • Procjena stanja uređaja;
  • Potencijal za povećanu kontrolu sa domenskim mašinskim sertifikatom, itd.;
  • Sveobuhvatna udaljena zaštita radnog mjesta sa automatski postavljenim sigurnosnim modulima;

Linkovi na članke iz Cisco VPN serije:

izvor: www.habr.com

Dodajte komentar