A magas biztonságú távoli hozzáférés megvalósítása.

Folytatva a szervezési témában írt cikkek sorozatát Remote-Access VPN hozzáférésről nem tudok nem megosztani egy érdekes tapasztalatot a telepítésről magas biztonságú VPN konfigurációról. Egy érdekes feladatot dobott nekem az egyik megrendelő (vannak kreatív emberek az orosz falvakban), de elvállaltam a kihívást és kreatívan megvalósítottam. Ennek eredményeként egy érdekes koncepció született a következő jellemzőkkel:

  1. Több védelmi tényező a végberendezés hamisításának megakadályozására (szigorú felhasználói kötődéssel);
    • A felhasználó PC-jének megfelelősége az engedélyezett PC UDID-jához az autentikálási adatbázisban;
    • MFA-val, amely a második autentikációhoz a tanúsítványból származó PC UDID-t használja a Cisco DUO-n keresztül (Bármilyen SAML/RADIUS-kompatibilis megoldás is csatlakoztatható);
  2. Többfaktoros autentikációval:
    • Felhasználói tanúsítvány mezőinek ellenőrzésével és az egyikük alapján végzett második autentikációval;
    • Felhasználónév (nem módosítható, a tanúsítványból kinyert) és jelszó;
  3. A csatlakozó host állapotának értékelésével (Posture)

A megoldásban használt összetevők:

  • Cisco ASA (VPN átjáró);
  • Cisco ISE (Autentikáció / Engedélyezés / Számlázás, Állapotértékelés, CA);
  • Cisco DUO (Többfaktoros autentikáció) (Bármilyen SAML/RADIUS-kompatibilis megoldás is csatlakoztatható);
  • Cisco AnyConnect (Többcélú ügynök munkaállomásokhoz és mobil operációs rendszerekhez);

Kezdjük a megrendelő követelményeivel:

  1. A felhasználónak a belépési azonosító/jelszó alapján lehetőséget kell adnia arra, hogy letöltse az AnyConnect klienst a VPN átjáróról, minden szükséges AnyConnect modult automatikusan telepíteni kell a felhasználó politikájának megfelelően;
  2. A felhasználónak lehetőséget kell biztosítani a tanúsítvány automatikus kiadására (az egyik forgatókönyvhez, a fő forgatókönyv pedig a kézi kiadás és a PC-re való feltöltés), én viszont demonstráció céljából automatikus kiadást valósítottam meg (soha nem késő eltávolítani).
  3. A fő autentikációnak több lépésben kell zajlania, először a tanúsítvány autentikációja történik a szükséges mezők és azok értékeinek elemzésével, majd a felhasználónév/jelszó következik, de ezúttal a bejelentkezési ablakban a tanúsítvány mezőjében megadott felhasználónevet kell megjeleníteni Subject Name (CN) szerkesztési lehetőség nélkül.
  4. Biztosítani kell, hogy az a készülék, ahonnan a bejelentkezés történik, az a vállalat által kiadott laptop legyen, amely a felhasználónak távoli hozzáférést biztosít, és nem egyéb eszköz (több megoldás készült ennek a követelménynek a teljesítésére)
  5. A device condition assessment (at this stage the PC) must be conducted, verifying a comprehensive checklist of the client's requirements (in summary):
    • Files and their attributes;
    • Registry entries;
    • OS patches from the provided list (subsequent integration with SCCM);
    • Presence of antivirus from a specific vendor and the relevance of signatures;
    • Activity of specific services;
    • Presence of specific installed programs;

To begin, I suggest we mandatory watch a video demonstration of the resulting implementation on YouTube (5 minutes).

Videó lejátszása

Now, I suggest we consider the implementation details not covered in the video.

Let's prepare the AnyConnect profile:

I previously provided an example of creating a profile (in terms of the menu item in ASDM) in my article on setting up VPN Load-Balancing cluster.Now, I want to specifically highlight the options we will need:

In the profile, we will specify the VPN gateway and the profile name for the client connection:

A magas biztonságú távoli hozzáférés megvalósítása.

We will configure automatic certificate issuance from the profile, specifying, in particular, the certificate parameters, and notably, we will focus on the field Initials (I), where a specific value has been manually entered UDID of the test machine (Unique Device Identifier, generated by the Cisco AnyConnect client).

A magas biztonságú távoli hozzáférés megvalósítása.

Here, I want to make a lyrical digression, as this article describes the concept. For demonstration purposes, the UDID is entered for certificate issuance in the Initials field of the AnyConnect profile. In real life, if you do this, all clients will receive the certificate with the same UDID in this field, and nothing will work for them, since they need the UDID specific to their PCs. Unfortunately, AnyConnect does not yet implement profile substitution for the certificate request in the UDID field through an environment variable, as it does with the variable %USER%.

It is worth noting that the client (in this scenario) initially plans to issue certificates with the specified UDID manually for such Protected PCs, which is not a problem for them. However, for most of us, automation is desirable (well, at least for me =).

És itt van, amit az automatizálás terén fel tudok ajánlani. Ha a tanúsítványt automatikusan, az AnyConnect alkalmazás dinamikusan behelyettesítve az UDID-t, akkor van egy másik módszer is, ami igényel egy kis kreatív gondolkodást és ügyes kezeket – elmondom a koncepciót. Először nézzük meg, hogyan képződik az UDID különböző operációs rendszereken az AnyConnect ügynök által:

  • Windows — SHA-256 kombinációs hash a DigitalProductID rendszerregisztrációs kulcs és a Machine SID alapján
  • OSX — SHA-256 hash a PlatformUUID alapján
  • Linux — SHA-256 hash a root partíció UUID alapján.
  • Apple iOS — SHA-256 hash a PlatformUUID alapján
  • Android – Nézd meg a dokumentumot a linkre kattintva

Ennek megfelelően készítünk egy scriptet a vállalati Windows OS-ekhez, ezzel a scriptel helyben számoljuk ki az UDID-t a megadott bemenetek alapján, és kérelmet készítünk a tanúsítvány kiadására az UDID-t a megfelelő mezőbe beírva, egyébként a gépi tanúsítvány is használható, amit az AD adott (dupla hitelesítést is hozzáadva a tanúsítvány alapján Több Tanúsítvány).

Készítsük el a Cisco ASA oldali beállításokat:

Hozzunk létre egy TrustPoint-ot az ISE CA szerverhez, ez fogja kiadni a tanúsítványokat az ügyfeleknek. A Key-Chain importálás eljárását nem fogom tárgyalni, a példa le van írva a beállításokra vonatkozó cikkemben. VPN Load-Balancing cluster..

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Beállítjuk a Tunnel-Group elosztását a tanúsítványban szereplő mezők alapján történő hitelesítési szabályok szerint. Itt kerül beállításra az AnyConnect profil is, amit az előző lépésben készítettünk. Felhívom a figyelmet, hogy az értéket használom SECUREBANK-RA, a kiadott tanúsítvánnyal rendelkező felhasználók átvitelére a tunnel csoportba. SECURE-BANK-VPN, kérlek, vedd észre, hogy ez a mező nálam a kérés mezőjében van feltüntetve az AnyConnect profilnál.

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
!

Beállítjuk a hitelesítési szervereket. Az én esetemben ez ISE az első hitelesítési szakaszhoz, és a DUO (Radius Proxy) mint 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
!

Csoportos politikák és tunnel csoportok, valamint kiegészítő komponenseik létrehozása:

Tunnel csoport DefaultWEBVPNGroup Elsődlegesen az AnyConnect VPN kliens letöltésére és a felhasználói tanúsítvány kiadására fogják használni a ASA SCEP-Proxy funkciójával. Ehhez az ehhez szükséges opciók aktiválva vannak mind a tunneling csoportban, mind az ahhoz társított csoportos szabályzatban. AC-Download, valamint az AnyConnect letöltési profilján (tanúsítványkiadási mezők stb.). Ezen a csoportos szabályzaton belül jelezzük, hogy szükséges a letöltés. ISE Posture Module.

Tunnel csoport SECURE-BANK-VPN automatikusan használva lesz a kliens által, amikor a korábban kiadott tanúsítvánnyal történik az azonosítás, mivel a tanúsítványtérkép szerint a kapcsolat pontosan erre a tunneling csoportra épül. Különböző izgalmas opciókról fogok itt beszélni:

  • 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) – дока itt

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

Tovább lépünk az ISE-hez:

Beállítjuk a helyi felhasználót (használható AD/LDAP/ODBC stb. is), egyszerűség kedvéért én a legjobb megoldást választottam a helyi felhasználó létrehozásával az ISE-ben, és az alábbi mezőben állítottam be: leírás PC UDID amelyről engedélyezve van a VPN-hez való hozzáférés. Ha az ISE-n helyi hitelesítést használok, akkor csak egy eszközre leszek korlátozva, mivel nem sok mező áll rendelkezésemre, de harmadik fél által biztosított hitelesítési adatbázisok esetén nem lesznek ilyen korlátozások.

A magas biztonságú távoli hozzáférés megvalósítása.

Nézzük meg a hitelesítési politikát, amely négy lépésre oszlik:

  • 1. lépés — Politika az AnyConnect ügynök letöltésére és a tanúsítvány kiadására
  • 2. lépés — Elsődleges hitelesítési politika: Bejelentkezés (tanúsítvány alapján)/Jelszó + UDID érvényesítésével
  • 3. lépés — Másodlagos hitelesítés a Cisco DUO (MFA) révén, UDID mint felhasználónév + Állapotértékelés
  • 4. lépés — Végső hitelesítés állapota:
    • Megfelelő;
    • UDID érvényesítése (tanúsítványból + bejelentkezéshez való hozzárendelés),
    • Cisco DUO MFA;
    • Bejelentkezés szerinti hitelesítés;
    • Tanúsítvány szerinti hitelesítés;

A magas biztonságú távoli hozzáférés megvalósítása.

Nézzük meg az érdekes feltételt UUID_VALIDATED, amely pontosan ellenőrzi, hogy a hitelesítésre váró felhasználó tényleg egy engedélyezett UDID-del rendelkező PC-ről érkezett a mező szerint Leírás a felhasználói fiókjában, a feltétel a következőképpen néz ki:

A magas biztonságú távoli hozzáférés megvalósítása.

A 1., 2. és 3. lépéseknél használt hitelesítési profil a következőképpen néz ki:

A magas biztonságú távoli hozzáférés megvalósítása.

Megvizsgálhatjuk, hogy pontosan hogyan érkezik a UDID a AnyConnect klienstől, ha megnézzük az ISE klienssession részleteit. A részletekben látni fogjuk, hogy az AnyConnect az ACIDEX mechanizmuson keresztül nemcsak a platform adatait küldi, hanem a készülék UDID-ját is mint Cisco-AV-PAIR:

A magas biztonságú távoli hozzáférés megvalósítása.

Figyeljük meg a felhasználónak kiadott tanúsítványt és a mezőt Initials (I), amely arra szolgál, hogy ezt használjuk a Cisco DUO másodlagos hitelesítési MFA bejelentkezésként:

A magas biztonságú távoli hozzáférés megvalósítása.

A DUO Radius Proxy oldalán a naplóban világosan látjuk, hogy hogyan történik a hitelesítési kérés, amely UDID-t használ felhasználónévként:

A magas biztonságú távoli hozzáférés megvalósítása.

A DUO portál oldaláról egy sikeres hitelesítési eseményt látunk:

A magas biztonságú távoli hozzáférés megvalósítása.

A felhasználó tulajdonságaiban látom, hogy van beállítva ALIAS, amelyet a bejelentkezéshez használtam, ráadásul ez a jóváhagyott UDID a bejelentkezési PC-hez:

A magas biztonságú távoli hozzáférés megvalósítása.

Ennek eredményeképpen megkaptuk:

  • A felhasználó és az eszköz többlépcsős hitelesítése;
  • A felhasználói eszköz hamisításának védelme;
  • Az eszköz állapotának értékelése;
  • Lehetőség a domain gépi tanúsítványának és egyebeknek a megerősítésére;
  • Teljes körű védelem a távoli munkahely számára automatikusan telepíthető biztonsági modulokkal;

Cikkek a Cisco VPN sorozatról:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster