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:
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);
Višefaktorska autentifikacija:
Korisnički certifikat s terenskom verifikacijom i sekundarnom autentifikacijom na jednom od njih;
Login (nepromjenjivo, preuzeto iz certifikata) i lozinka;
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:
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;
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).
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.
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)
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:
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).
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
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.
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 opisUDID 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.
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;
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:
Profil autorizacije koji se koristi u fazama 1,2,3 je kako slijedi:
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:
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:
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:
Sa DUO portala vidimo uspješan događaj autentifikacije:
I u korisničkim svojstvima imam to postavljeno ALIAS, koji sam koristio za prijavu, zauzvrat, ovo je UDID računara dozvoljenog za prijavu:
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;