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:
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);
Multi-Faktor-Authentifizierung:
Benutzerzertifikat mit Feldverifizierung und sekundärer Authentifizierung gegenüber einem davon;
Login (unveränderbar, aus dem Zertifikat entnommen) und Passwort;
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:
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;
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).
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.
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.)
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:
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).
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
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.
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 BeschreibungUDID-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.
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
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:
Das in den Stufen 1,2,3 verwendete Berechtigungsprofil lautet wie folgt:
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:
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:
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:
Im DUO-Portal sehen wir ein erfolgreiches Authentifizierungsereignis:
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:
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;