Umsetzung des Konzepts des hochsicheren Fernzugriffs

Fortsetzung der Artikelreihe zum Thema Organisation Fernzugriffs-VPN Zugriff Ich kann nicht anders, als meine interessanten Erfahrungen mit der Bereitstellung zu teilen hochsichere VPN-Konfiguration. Ein Kunde stellte eine nicht triviale Aufgabe (in russischen Dörfern gibt es Erfinder), aber die Herausforderung wurde angenommen und kreativ umgesetzt. Das Ergebnis ist ein interessantes Konzept mit folgenden Merkmalen:

  1. Mehrere Schutzfaktoren gegen Austausch des Endgerätes (mit strikter Bindung an den Nutzer);
    • Bewerten der Übereinstimmung des PCs des Benutzers mit der zugewiesenen UDID des zugelassenen PCs in der Authentifizierungsdatenbank;
    • Bei MFA wird die PC-UDID aus dem Zertifikat für die sekundäre Authentifizierung über Cisco DUO verwendet (Sie können jedes beliebige SAML/Radius-kompatible anhängen);
  2. Multi-Faktor-Authentifizierung:
    • Benutzerzertifikat mit Feldverifizierung und sekundärer Authentifizierung gegenüber einem davon;
    • Login (unveränderbar, aus dem Zertifikat entnommen) und Passwort;
  3. Schätzen des Zustands des verbindenden Hosts (Posture)

Eingesetzte Lösungskomponenten:

  • Cisco ASA (VPN-Gateway);
  • Cisco ISE (Authentifizierung/Autorisierung/Buchhaltung, Zustandsbewertung, CA);
  • Cisco DUO (Multi-Faktor-Authentifizierung) (Sie können jedes beliebige SAML/Radius-kompatible anhängen);
  • Cisco AnyConnect (Mehrzweckagent für Workstations und mobile Betriebssysteme);

Beginnen wir mit den Anforderungen des Kunden:

  1. Der Benutzer muss durch seine Login-/Passwort-Authentifizierung in der Lage sein, den AnyConnect-Client vom VPN-Gateway herunterzuladen; alle erforderlichen AnyConnect-Module müssen automatisch gemäß den Richtlinien des Benutzers installiert werden;
  2. Der Benutzer sollte in der Lage sein, automatisch ein Zertifikat auszustellen (in einem der Szenarios ist das Hauptszenario die manuelle Ausstellung und das Hochladen auf einen PC), aber ich habe die automatische Ausstellung zur Demonstration implementiert (es ist nie zu spät, sie zu entfernen).
  3. Die Basisauthentifizierung muss in mehreren Schritten erfolgen, zunächst erfolgt die Zertifikatsauthentifizierung mit Analyse der notwendigen Felder und deren Werte, dann Login/Passwort, nur muss dieses Mal der im Zertifikatsfeld angegebene Benutzername in das Anmeldefenster eingegeben werden Betreffname (CN) ohne Bearbeitungsmöglichkeit.
  4. Sie müssen sicherstellen, dass es sich bei dem Gerät, von dem aus Sie sich anmelden, um den Firmen-Laptop handelt, der dem Benutzer für den Fernzugriff zur Verfügung gestellt wird, und nicht um etwas anderes. (Um dieser Anforderung gerecht zu werden, wurden mehrere Optionen vorgeschlagen.)
  5. Der Zustand des Verbindungsgeräts (zu diesem Zeitpunkt PC) sollte anhand einer umfangreichen Tabelle mit Kundenanforderungen (zusammenfassend) beurteilt werden:
    • Dateien und ihre Eigenschaften;
    • Registrierungseinträge;
    • Betriebssystem-Patches aus der bereitgestellten Liste (spätere SCCM-Integration);
    • Verfügbarkeit von Anti-Virus eines bestimmten Herstellers und Relevanz der Signaturen;
    • Aktivität bestimmter Dienste;
    • Verfügbarkeit bestimmter installierter Programme;

Zunächst schlage ich vor, dass Sie sich unbedingt die Videodemonstration der resultierenden Implementierung ansehen Youtube (5 Minuten).

Jetzt schlage ich vor, die Implementierungsdetails zu berücksichtigen, die im Videoclip nicht behandelt werden.

Bereiten wir das AnyConnect-Profil vor:

Ich habe zuvor in meinem Artikel über die Einstellung ein Beispiel für die Erstellung eines Profils (im Sinne eines Menüpunkts in ASDM) gegeben VPN-Lastenausgleichscluster. Nun möchte ich die Optionen, die wir benötigen, gesondert erwähnen:

Im Profil geben wir das VPN-Gateway und den Profilnamen für die Verbindung zum Endclient an:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Lassen Sie uns die automatische Ausstellung eines Zertifikats von der Profilseite aus konfigurieren, indem wir insbesondere die Zertifikatsparameter angeben und charakteristischerweise auf das Feld achten Initialen (I), wobei ein bestimmter Wert manuell eingegeben wird DU TATEST Testmaschine (eindeutige Gerätekennung, die vom Cisco AnyConnect-Client generiert wird).

Umsetzung des Konzepts des hochsicheren Fernzugriffs

An dieser Stelle möchte ich einen lyrischen Exkurs machen, da dieser Artikel das Konzept beschreibt; zu Demonstrationszwecken wird die UDID zur Ausstellung eines Zertifikats im Feld „Initialen“ des AnyConnect-Profils eingetragen. Wenn Sie dies im wirklichen Leben tun, erhalten natürlich alle Clients ein Zertifikat mit derselben UDID in diesem Feld und für sie funktioniert nichts, da sie die UDID ihres spezifischen PCs benötigen. Leider implementiert AnyConnect noch nicht die Ersetzung des UDID-Felds im Zertifikatanforderungsprofil über eine Umgebungsvariable, wie dies beispielsweise bei einer Variablen der Fall ist %BENUTZER%.

Es ist erwähnenswert, dass der Kunde (dieses Szenarios) zunächst plant, Zertifikate mit einer bestimmten UDID im manuellen Modus selbstständig an solche geschützten PCs auszustellen, was für ihn kein Problem darstellt. Für die meisten von uns wünschen wir uns jedoch Automatisierung (naja, für mich stimmt das =)).

Und das ist es, was ich in Sachen Automatisierung bieten kann. Wenn AnyConnect noch nicht in der Lage ist, ein Zertifikat automatisch durch dynamisches Ersetzen der UDID auszustellen, dann gibt es einen anderen Weg, der ein wenig kreatives Denken und geschickte Hände erfordert – ich erkläre Ihnen das Konzept. Schauen wir uns zunächst an, wie die UDID auf verschiedenen Betriebssystemen durch den AnyConnect-Agenten generiert wird:

  • Windows – SHA-256-Hash der Kombination aus DigitalProductID und Machine SID-Registrierungsschlüssel
  • OSX – SHA-256-Hash-Plattform-UUID
  • Linux — SHA-256-Hash der UUID der Root-Partition.
  • apple iOS – SHA-256-Hash-Plattform-UUID
  • Android – Siehe Dokument auf Link

Dementsprechend erstellen wir ein Skript für unser Unternehmens-Windows-Betriebssystem, mit diesem Skript berechnen wir lokal die UDID anhand bekannter Eingaben und bilden einen Antrag auf Ausstellung eines Zertifikats, indem wir diese UDID in das erforderliche Feld eingeben. Sie können übrigens auch eine Maschine verwenden von AD ausgestelltes Zertifikat (durch Hinzufügen einer doppelten Authentifizierung mithilfe eines Zertifikats zum Schema). Mehrfachzertifikat).

Bereiten wir die Einstellungen auf der Cisco ASA-Seite vor:

Erstellen wir einen TrustPoint für den ISE-CA-Server, der Zertifikate an Clients ausstellt. Ich werde das Verfahren zum Importieren von Schlüsselketten nicht berücksichtigen; ein Beispiel ist in meinem Setup-Artikel beschrieben VPN-Lastenausgleichscluster.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Wir konfigurieren die Verteilung nach Tunnel-Gruppen basierend auf Regeln entsprechend den Feldern im Zertifikat, das zur Authentifizierung verwendet wird. Das AnyConnect-Profil, das wir im vorherigen Schritt erstellt haben, wird hier ebenfalls konfiguriert. Bitte beachten Sie, dass ich den Wert verwende SECUREBANK-RA, um Benutzer mit einem ausgestellten Zertifikat in eine Tunnelgruppe zu übertragen SECURE-BANK-VPNBitte beachten Sie, dass ich dieses Feld in der Spalte „Anfrage für das AnyConnect-Profilzertifikat“ habe.

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
!

Authentifizierungsserver einrichten. In meinem Fall ist dies ISE für die erste Authentifizierungsstufe und DUO (Radius Proxy) als 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
!

Wir erstellen Gruppenrichtlinien und Tunnelgruppen und deren Hilfskomponenten:

Tunnelgruppe StandardWEBVPNGruppe wird in erster Linie dazu verwendet, den AnyConnect VPN-Client herunterzuladen und ein Benutzerzertifikat über die SCEP-Proxy-Funktion der ASA auszustellen; hierfür haben wir die entsprechenden Optionen sowohl auf der Tunnelgruppe selbst als auch auf der zugehörigen Gruppenrichtlinie aktiviert AC-Download, und auf dem geladenen AnyConnect-Profil (Felder zur Ausstellung eines Zertifikats etc.). Auch in dieser Gruppenrichtlinie weisen wir auf die Notwendigkeit des Downloads hin ISE-Haltungsmodul.

Tunnelgruppe SECURE-BANK-VPN wird vom Client automatisch verwendet, wenn er sich mit dem ausgestellten Zertifikat in der vorherigen Phase authentifiziert, da die Verbindung gemäß der Zertifikatszuordnung speziell auf diese Tunnelgruppe fällt. Über interessante Möglichkeiten erzähle ich Ihnen hier:

  • sekundäre-Authentifizierungsservergruppe DUO # Sekundäre Authentifizierung auf dem DUO-Server festlegen (Radius Proxy)
  • Benutzername-aus-ZertifikatCN # Für die primäre Authentifizierung verwenden wir das CN-Feld des Zertifikats, um die Benutzeranmeldung zu erben
  • sekundärer-Benutzername-aus-Zertifikat I # Für die sekundäre Authentifizierung auf dem DUO-Server verwenden wir den extrahierten Benutzernamen und die Initialen (I)-Felder des Zertifikats.
  • Client mit vorab ausgefülltem Benutzernamen # Machen Sie den Benutzernamen im Authentifizierungsfenster vorausgefüllt, ohne dass eine Änderung möglich ist
  • Secondary-Pre-Fill-Username Client Hide Use-Common-Password Push # Wir blenden das Anmelde-/Passwort-Eingabefenster für die sekundäre Authentifizierung DUO aus und verwenden die Benachrichtigungsmethode (SMS/Push/Telefon) – Dock, um die Authentifizierung anstelle des Passwortfelds anzufordern 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
!

Als nächstes gehen wir zur ISE über:

Wir konfigurieren einen lokalen Benutzer (Sie können AD/LDAP/ODBC usw. verwenden). Der Einfachheit halber habe ich einen lokalen Benutzer in ISE selbst erstellt und ihn vor Ort zugewiesen Beschreibung UDID-PC von dem aus er sich per VPN einloggen darf. Wenn ich die lokale Authentifizierung auf der ISE verwende, bin ich auf nur ein Gerät beschränkt, da es nicht viele Felder gibt, aber in Authentifizierungsdatenbanken von Drittanbietern habe ich solche Einschränkungen nicht.

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Schauen wir uns die Autorisierungsrichtlinie an. Sie ist in vier Verbindungsstufen unterteilt:

  • Stufe 1 – Richtlinie zum Herunterladen des AnyConnect-Agenten und zum Ausstellen eines Zertifikats
  • Stufe 2 – Primäre Authentifizierungsrichtlinie Anmeldung (vom Zertifikat)/Passwort + Zertifikat mit UDID-Validierung
  • Stufe 3 – Sekundäre Authentifizierung über Cisco DUO (MFA) mit UDID als Benutzername + Statusbewertung
  • Stufe 4 — Die endgültige Genehmigung liegt im Staat:
    • Konform;
    • UDID-Validierung (von Zertifikat + Login-Bindung),
    • Cisco DUO MFA;
    • Authentifizierung durch Login;
    • Zertifikatauthentifizierung;

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Schauen wir uns einen interessanten Zustand an UUID_VALIDATED, sieht es einfach so aus, als käme der authentifizierende Benutzer tatsächlich von einem PC mit einer zulässigen UDID, die im Feld zugeordnet ist Beschreibung Konto, die Bedingungen sehen so aus:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Das in den Stufen 1,2,3 verwendete Berechtigungsprofil lautet wie folgt:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Sie können genau überprüfen, wie die UDID vom AnyConnect-Client bei uns ankommt, indem Sie sich die Client-Sitzungsdetails in ISE ansehen. Im Detail werden wir sehen, dass AnyConnect über den Mechanismus funktioniert ACIDEX sendet nicht nur Informationen über die Plattform, sondern auch die UDID des Geräts als Cisco-AV-PAAR:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Achten wir auf das für den Benutzer ausgestellte Zertifikat und das Feld Initialen (I), das als Login für die sekundäre MFA-Authentifizierung auf Cisco DUO verwendet wird:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Auf der Seite des DUO Radius Proxy können wir im Protokoll deutlich sehen, wie die Authentifizierungsanfrage gestellt wird. Sie erfolgt mit UDID als Benutzernamen:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Im DUO-Portal sehen wir ein erfolgreiches Authentifizierungsereignis:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Und in den Benutzereigenschaften habe ich es eingestellt ALIAS, die ich für den Login verwendet habe, wiederum ist dies die UDID des PCs, der für den Login zugelassen ist:

Umsetzung des Konzepts des hochsicheren Fernzugriffs

Als Ergebnis bekamen wir:

  • Multi-Faktor-Benutzer- und Geräteauthentifizierung;
  • Schutz vor Spoofing des Benutzergeräts;
  • Beurteilen des Zustands des Geräts;
  • Potenzial für eine verbesserte Kontrolle mit Domänenmaschinenzertifikaten usw.;
  • Umfassender Schutz am Remote-Arbeitsplatz mit automatisch bereitgestellten Sicherheitsmodulen;

Links zu Artikeln der Cisco VPN-Reihe:

Source: habr.com

Kommentar hinzufügen