Bereitstellen eines ASA VPN-Lastausgleichsclusters
In diesem Artikel möchte ich Schritt-für-Schritt-Anleitungen geben, wie Sie schnell das derzeit skalierbarste Schema bereitstellen können. Fernzugriffs-VPN Zugriffsbasiert AnyConnect und Cisco ASA - VPN-Load-Balancing-Cluster.
Einführung: Viele Unternehmen auf der ganzen Welt unternehmen angesichts der aktuellen Situation mit COVID-19 Anstrengungen, ihre Mitarbeiter in die Fernarbeit zu versetzen. Durch den massenhaften Übergang zur Remote-Arbeit nimmt die Belastung der bestehenden VPN-Gateways von Unternehmen entscheidend zu und erfordert eine sehr schnelle Skalierbarkeit. Andererseits sind viele Unternehmen gezwungen, das Konzept der Remote-Arbeit hastig von Grund auf zu erlernen.
Ich habe eine Schritt-für-Schritt-Anleitung für die einfache Bereitstellung von VPN Load-Balancing Cluster als der skalierbarsten VPN-Technologie vorbereitet.
Das folgende Beispiel wird hinsichtlich der verwendeten Authentifizierungs- und Autorisierungsalgorithmen recht einfach sein, aber eine gute Option für einen schnellen Einstieg (der derzeit für viele nicht ausreicht) mit der Möglichkeit einer tiefgreifenden Anpassung an Ihre Bedürfnisse während der Bereitstellung Verfahren.
Brief Information: Die VPN Load Balancing Cluster-Technologie ist kein Failover und keine Clustering-Funktion im eigentlichen Sinne. Diese Technologie kann völlig unterschiedliche ASA-Modelle (mit bestimmten Einschränkungen) kombinieren, um Remote-Access-VPN-Verbindungen auszugleichen. Es findet keine Synchronisierung von Sitzungen und Konfigurationen zwischen den Knoten eines solchen Clusters statt, es ist jedoch möglich, die Last von VPN-Verbindungen automatisch auszugleichen und die Fehlertoleranz von VPN-Verbindungen sicherzustellen, bis mindestens ein aktiver Knoten im Cluster verbleibt. Die Last im Cluster wird je nach Auslastung der Knoten durch die Anzahl der VPN-Sitzungen automatisch ausgeglichen.
Für das Failover bestimmter Knoten des Clusters (falls erforderlich) kann ein Filer verwendet werden, sodass die aktive Verbindung vom primären Knoten des Filers verwaltet wird. Das Fileover ist keine notwendige Bedingung für die Gewährleistung der Fehlertoleranz innerhalb des Load-Balancing-Clusters. Der Cluster selbst überträgt im Falle eines Knotenausfalls die Benutzersitzung auf einen anderen Live-Knoten, ohne jedoch den Verbindungsstatus zu speichern, was genau der Fall ist vom Antragsteller bereitgestellt. Dementsprechend ist es bei Bedarf möglich, diese beiden Technologien zu kombinieren.
Ein VPN-Lastenausgleichscluster kann mehr als zwei Knoten enthalten.
VPN Load-Balancing Cluster wird auf ASA 5512-X und höher unterstützt.
Da jede ASA innerhalb des VPN Load-Balancing-Clusters von den Einstellungen her eine eigenständige Einheit darstellt, führen wir alle Konfigurationsschritte individuell auf jedem einzelnen Gerät durch.
Wir stellen ASAv-Instanzen der benötigten Vorlagen (ASAv5/10/30/50) aus dem Image bereit.
Wir weisen die INSIDE/OUTSIDE-Schnittstellen den gleichen VLANs zu (Outside im eigenen VLAN, INSIDE im eigenen, aber generell innerhalb des Clusters, siehe Topologie), wichtig ist, dass sich Schnittstellen des gleichen Typs im gleichen L2-Segment befinden.
Lizenzen:
Die ASAv-Installation verfügt derzeit über keine Lizenzen und ist auf 100 kbit/s begrenzt.
Um eine Lizenz zu installieren, müssen Sie in Ihrem Smart-Account einen Token generieren: https://software.cisco.com/ -> Intelligente Softwarelizenzierung
Klicken Sie im sich öffnenden Fenster auf die Schaltfläche Neues Token
Stellen Sie sicher, dass im sich öffnenden Fenster ein aktives Feld vorhanden ist und ein Häkchen gesetzt ist Exportkontrollierte Funktionalität zulassen… Ohne Aktivierung dieses Feldes können Sie die Funktionen der starken Verschlüsselung und damit auch von VPN nicht nutzen. Wenn dieses Feld nicht aktiv ist, wenden Sie sich bitte mit einer Aktivierungsanfrage an Ihr Account-Team.
Nach dem Drücken der Taste Token erstellen, wird ein Token erstellt, mit dem wir eine Lizenz für ASAv erhalten, kopieren Sie es:
Wiederholen Sie die Schritte C, D und E für jeden bereitgestellten ASAv.
Um das Kopieren des Tokens zu erleichtern, erlauben wir vorübergehend Telnet. Lassen Sie uns jede ASA konfigurieren (das Beispiel unten zeigt die Einstellungen für ASA-1). Telnet funktioniert nicht mit der Außenseite. Wenn Sie es wirklich brauchen, ändern Sie die Sicherheitsstufe auf 100 für die Außenseite und geben Sie sie dann wieder zurück.
!
ciscoasa(config)# int gi0/0
ciscoasa(config)# nameif outside
ciscoasa(config)# ip address 192.168.31.30 255.255.255.0
ciscoasa(config)# no shut
!
ciscoasa(config)# int gi0/1
ciscoasa(config)# nameif inside
ciscoasa(config)# ip address 192.168.255.2 255.255.255.0
ciscoasa(config)# no shut
!
ciscoasa(config)# telnet 0 0 inside
ciscoasa(config)# username admin password cisco priv 15
ciscoasa(config)# ena password cisco
ciscoasa(config)# aaa authentication telnet console LOCAL
!
ciscoasa(config)# route outside 0 0 192.168.31.1
!
ciscoasa(config)# wr
!
Um einen Token in der Smart-Account-Cloud zu registrieren, müssen Sie ASA einen Internetzugang bereitstellen, Details hier.
Kurz gesagt, ASA wird benötigt:
Zugriff über HTTPS auf das Internet;
Zeitsynchronisation (genauer gesagt über NTP);
registrierter DNS-Server;
Wir stellen eine Telnet-Verbindung zu unserem ASA her und nehmen Einstellungen vor, um die Lizenz über Smart-Account zu aktivieren.
!
ciscoasa(config)# clock set 19:21:00 Mar 18 2020
ciscoasa(config)# clock timezone MSK 3
ciscoasa(config)# ntp server 192.168.99.136
!
ciscoasa(config)# dns domain-lookup outside
ciscoasa(config)# DNS server-group DefaultDNS
ciscoasa(config-dns-server-group)# name-server 192.168.99.132
!
! Проверим работу DNS:
!
ciscoasa(config-dns-server-group)# ping ya.ru
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 87.250.250.242, timeout is 2 seconds:
!!!!!
!
! Проверим синхронизацию NTP:
!
ciscoasa(config)# show ntp associations
address ref clock st when poll reach delay offset disp
*~192.168.99.136 91.189.94.4 3 63 64 1 36.7 1.85 17.5
* master (synced), # master (unsynced), + selected, - candidate, ~ configured
!
! Установим конфигурацию нашей ASAv для Smart-Licensing (в соответствии с Вашим профилем, в моем случае 100М для примера)
!
ciscoasa(config)# license smart
ciscoasa(config-smart-lic)# feature tier standard
ciscoasa(config-smart-lic)# throughput level 100M
!
! В случае необходимости можно настроить доступ в Интернет через прокси используйте следующий блок команд:
!call-home
! http-proxy ip_address port port
!
! Далее мы вставляем скопированный из портала Smart-Account токен (<token>) и регистрируем лицензию
!
ciscoasa(config)# end
ciscoasa# license smart register idtoken <token>
Wir prüfen, ob das Gerät erfolgreich eine Lizenz registriert hat und Verschlüsselungsoptionen verfügbar sind:
Richten Sie auf jedem Gateway ein einfaches SSL-VPN ein
Als nächstes konfigurieren Sie den Zugriff über SSH und ASDM:
ciscoasa(config)# ssh ver 2
ciscoasa(config)# aaa authentication ssh console LOCAL
ciscoasa(config)# aaa authentication http console LOCAL
ciscoasa(config)# hostname vpn-demo-1
vpn-demo-1(config)# domain-name ashes.cc
vpn-demo-1(config)# cry key gen rsa general-keys modulus 4096
vpn-demo-1(config)# ssh 0 0 inside
vpn-demo-1(config)# http 0 0 inside
!
! Поднимем сервер HTTPS для ASDM на порту 445 чтобы не пересекаться с SSL-VPN порталом
!
vpn-demo-1(config)# http server enable 445
!
Damit ASDM funktioniert, müssen Sie es zunächst von der Website cisco.com herunterladen. In meinem Fall ist es die folgende Datei:
Damit der AnyConnect-Client funktioniert, müssen Sie für jedes verwendete Client-Desktop-Betriebssystem (geplante Verwendung von Linux/Windows/MAC) ein Image in jede ASA hochladen. Sie benötigen eine Datei mit Headend-Bereitstellungspaket Im Titel:
Die heruntergeladenen Dateien können beispielsweise auf einen FTP-Server hochgeladen und auf jede einzelne ASA hochgeladen werden:
Wir konfigurieren ASDM und ein selbstsigniertes Zertifikat für SSL-VPN (es wird empfohlen, in der Produktion ein vertrauenswürdiges Zertifikat zu verwenden). Der festgelegte FQDN der virtuellen Clusteradresse (vpn-demo.ashes.cc) sowie jeder FQDN, der der externen Adresse jedes Knotens des Clusters zugeordnet ist, müssen in der externen DNS-Zone in die IP-Adresse der OUTSIDE-Schnittstelle aufgelöst werden (oder an die zugeordnete Adresse, wenn die Portweiterleitung udp/443 (DTLS) und tcp/443 (TLS) verwendet wird). Detaillierte Informationen zu den Anforderungen für das Zertifikat finden Sie im Abschnitt Zertifikatsüberprüfung Dokumentation.
!
vpn-demo-1(config)# crypto ca trustpoint SELF
vpn-demo-1(config-ca-trustpoint)# enrollment self
vpn-demo-1(config-ca-trustpoint)# fqdn vpn-demo.ashes.cc
vpn-demo-1(config-ca-trustpoint)# subject-name cn=*.ashes.cc, ou=ashes-lab, o=ashes, c=ru
vpn-demo-1(config-ca-trustpoint)# serial-number
vpn-demo-1(config-ca-trustpoint)# crl configure
vpn-demo-1(config-ca-crl)# cry ca enroll SELF
% The fully-qualified domain name in the certificate will be: vpn-demo.ashes.cc
Generate Self-Signed Certificate? [yes/no]: yes
vpn-demo-1(config)#
!
vpn-demo-1(config)# sh cry ca certificates
Certificate
Status: Available
Certificate Serial Number: 4d43725e
Certificate Usage: General Purpose
Public Key Type: RSA (4096 bits)
Signature Algorithm: SHA256 with RSA Encryption
Issuer Name:
serialNumber=9A439T02F95
hostname=vpn-demo.ashes.cc
cn=*.ashes.cc
ou=ashes-lab
o=ashes
c=ru
Subject Name:
serialNumber=9A439T02F95
hostname=vpn-demo.ashes.cc
cn=*.ashes.cc
ou=ashes-lab
o=ashes
c=ru
Validity Date:
start date: 00:16:17 MSK Mar 19 2020
end date: 00:16:17 MSK Mar 17 2030
Storage: config
Associated Trustpoints: SELF
CA Certificate
Status: Available
Certificate Serial Number: 0509
Certificate Usage: General Purpose
Public Key Type: RSA (4096 bits)
Signature Algorithm: SHA1 with RSA Encryption
Issuer Name:
cn=QuoVadis Root CA 2
o=QuoVadis Limited
c=BM
Subject Name:
cn=QuoVadis Root CA 2
o=QuoVadis Limited
c=BM
Validity Date:
start date: 21:27:00 MSK Nov 24 2006
end date: 21:23:33 MSK Nov 24 2031
Storage: config
Associated Trustpoints: _SmartCallHome_ServerCA
Vergessen Sie nicht, den Port anzugeben, um zu überprüfen, ob ASDM funktioniert, zum Beispiel:
Nehmen wir die Grundeinstellungen des Tunnels vor:
Lassen Sie uns das Unternehmensnetzwerk über den Tunnel verfügbar machen und das Internet direkt übertragen (nicht die sicherste Methode, wenn auf dem verbindenden Host keine Schutzmaßnahmen vorhanden sind; es ist möglich, durch einen infizierten Host einzudringen und Unternehmensdaten anzuzeigen, Option). Split-Tunnel-Richtlinie Tunnelall lässt den gesamten Host-Verkehr in den Tunnel. Dennoch Split-Tunnel ermöglicht es, das VPN-Gateway zu entlasten und den Host-Internetverkehr nicht zu verarbeiten)
Lassen Sie uns Adressen aus dem Subnetz 192.168.20.0/24 an Hosts im Tunnel vergeben (Pool von 10 bis 30 Adressen (für Knoten Nr. 1)). Jeder Knoten des VPN-Clusters muss über einen eigenen Pool verfügen.
Wir werden die Basisauthentifizierung mit einem lokal erstellten Benutzer auf der ASA durchführen (dies wird nicht empfohlen, dies ist die einfachste Methode), es ist besser, die Authentifizierung über durchzuführen LDAP/RADIUS, oder noch besser, Krawatte Multi-Faktor-Authentifizierung (MFA)Z.B. Cisco DUO.
(OPTIONAL): Im obigen Beispiel haben wir einen lokalen Benutzer auf der ITU verwendet, um Remote-Benutzer zu authentifizieren, was natürlich, außer im Labor, schlecht anwendbar ist. Ich werde ein Beispiel geben, wie man die Einstellung für die Authentifizierung schnell anpassen kann RADIUS Server, z.B. genutzt Cisco Identity Services-Engine:
Diese Integration ermöglichte es nicht nur, das Authentifizierungsverfahren schnell in den AD-Verzeichnisdienst zu integrieren, sondern auch zu unterscheiden, ob der angeschlossene Computer zu AD gehört, zu verstehen, ob es sich bei diesem Gerät um ein Firmen- oder Privatgerät handelt, und den Status des angeschlossenen Geräts zu beurteilen .
Lassen Sie uns Transparent NAT so konfigurieren, dass der Datenverkehr zwischen dem Client und den Ressourcen des Unternehmensnetzwerks nicht gekritzelt wird:
vpn-demo-1(config-network-object)# subnet 192.168.20.0 255.255.255.0
!
vpn-demo-1(config)# nat (inside,outside) source static any any destination static vpn-users vpn-users no-proxy-arp
(OPTIONAL): Um unsere Kunden über die ASA dem Internet zugänglich zu machen (bei der Nutzung von tunnelall Optionen) mit PAT sowie zum Beenden über dieselbe OUTSIDE-Schnittstelle, über die sie verbunden sind, müssen Sie die folgenden Einstellungen vornehmen
Bei der Verwendung eines Clusters ist es äußerst wichtig, dem internen Netzwerk zu ermöglichen, zu verstehen, welche ASA den Rückverkehr an Benutzer weiterleiten soll. Dazu müssen Sie die an Clients ausgegebenen Routen/32-Adressen neu verteilen.
Im Moment haben wir den Cluster noch nicht konfiguriert, aber wir verfügen bereits über funktionierende VPN-Gateways, die einzeln per FQDN oder IP angebunden werden können.
Wir sehen den verbundenen Client in der Routing-Tabelle der ersten ASA:
Damit unser gesamter VPN-Cluster und das gesamte Unternehmensnetzwerk die Route zu unserem Client kennen, werden wir das Client-Präfix in ein dynamisches Routing-Protokoll umverteilen, zum Beispiel OSPF:
Jetzt haben wir eine Route vom zweiten ASA-2-Gateway zum Client und Benutzer, die mit verschiedenen VPN-Gateways innerhalb des Clusters verbunden sind, können beispielsweise direkt über ein Unternehmens-Softphone kommunizieren und auch Datenverkehr von den vom Benutzer angeforderten Ressourcen zurücksenden Kommen Sie zum gewünschten VPN-Gateway:
Fahren wir mit der Konfiguration des Load-Balancing-Clusters fort.
Die Adresse 192.168.31.40 wird als virtuelle IP (VIP – alle VPN-Clients stellen zunächst eine Verbindung dazu her) verwendet. Von dieser Adresse aus führt der Master-Cluster eine Umleitung zu einem weniger belasteten Cluster-Knoten durch. Vergessen Sie nicht zu schreiben Vorwärts- und Rückwärts-DNS-Eintrag sowohl für jede externe Adresse/FQDN jedes Knotens des Clusters als auch für VIP.
Wir überprüfen den Betrieb des Clusters mit zwei verbundenen Clients:
Machen wir das Kundenerlebnis komfortabler mit dem automatisch geladenen AnyConnect-Profil über ASDM.
Wir benennen das Profil auf praktische Weise und verknüpfen es mit unserer Gruppenrichtlinie:
Nach der nächsten Verbindung des Clients wird dieses Profil automatisch heruntergeladen und im AnyConnect-Client installiert. Wenn Sie also eine Verbindung herstellen müssen, wählen Sie es einfach aus der Liste aus:
Da wir dieses Profil nur auf einer ASA mit ASDM erstellt haben, vergessen Sie nicht, die Schritte auf den anderen ASAs im Cluster zu wiederholen.
Fazit: Daher haben wir schnell einen Cluster aus mehreren VPN-Gateways mit automatischem Lastausgleich bereitgestellt. Das Hinzufügen neuer Knoten zum Cluster ist einfach, mit einfacher horizontaler Skalierung durch die Bereitstellung neuer virtueller ASAv-Maschinen oder die Verwendung von Hardware-ASAs. Der funktionsreiche AnyConnect-Client kann die sichere Remote-Verbindung mithilfe von erheblich verbessern Körperhaltung (staatliche Schätzungen), am effektivsten in Verbindung mit dem System der zentralen Steuerung und Zugangsabrechnung eingesetzt Identity Services Engine.