In dit artikel wil ik stapsgewijze instructies geven over hoe u op dit moment snel het meest schaalbare schema kunt implementeren. VPN voor toegang op afstand toegang gebaseerd AnyConnect en Cisco ASA - VPN Load Balancing-cluster.
Inleiding: Veel bedrijven over de hele wereld doen, gezien de huidige situatie met COVID-19, inspanningen om hun werknemers over te hevelen naar werken op afstand. Door de massale overgang naar werken op afstand neemt de belasting van de bestaande VPN-gateways van bedrijven kritisch toe en is een zeer snelle schaalbaarheid vereist. Aan de andere kant zijn veel bedrijven gedwongen om het concept van werken op afstand vanuit het niets onder de knie te krijgen.
Ik heb een stapsgewijze handleiding opgesteld voor een eenvoudige implementatie van VPN Load-Balancing Cluster als de meest schaalbare VPN-technologie.
Het onderstaande voorbeeld zal vrij eenvoudig zijn wat betreft de gebruikte authenticatie- en autorisatie-algoritmen, maar het zal een goede optie zijn voor een snelle start (wat op dit moment niet genoeg is voor velen) met de mogelijkheid van diepgaande aanpassing aan uw behoeften tijdens de implementatie proces.
Korte informatie: VPN Load Balancing Cluster-technologie is geen failover en geen clusteringfunctie in de oorspronkelijke zin. Deze technologie kan volledig verschillende ASA-modellen combineren (met bepaalde beperkingen) om VPN-verbindingen met externe toegang in evenwicht te brengen. Er is geen synchronisatie van sessies en configuraties tussen de knooppunten van zo'n cluster, maar het is mogelijk om VPN-verbindingen automatisch te loadbalancen en fouttolerantie van VPN-verbindingen te garanderen totdat er ten minste één actief knooppunt in het cluster overblijft. De belasting in het cluster wordt automatisch gebalanceerd, afhankelijk van de werkbelasting van de knooppunten, door het aantal VPN-sessies.
Voor failover van specifieke knooppunten van het cluster (indien nodig) kan een filer worden gebruikt, zodat de actieve verbinding wordt afgehandeld door het primaire knooppunt van de filer. De fileover is geen noodzakelijke voorwaarde om fouttolerantie binnen het Load-Balancing-cluster te garanderen, het cluster zelf zal, in het geval van een node-storing, de gebruikerssessie overdragen naar een ander live node, maar zonder de verbindingsstatus op te slaan, wat precies verstrekt door de indiener. Dienovereenkomstig is het mogelijk om, indien nodig, deze twee technologieën te combineren.
Een VPN-taakverdelingscluster kan meer dan twee knooppunten bevatten.
VPN Load-Balancing Cluster wordt ondersteund op ASA 5512-X en hoger.
Aangezien elke ASA binnen het VPN Load-Balancing cluster qua instellingen een onafhankelijke eenheid is, voeren we alle configuratiestappen individueel uit op elk individueel apparaat.
We implementeren ASAv-instanties van de sjablonen die we nodig hebben (ASAv5/10/30/50) van de afbeelding.
We wijzen de INSIDE / OUTSIDE-interfaces toe aan dezelfde VLAN's (buiten in zijn eigen VLAN, INSIDE in zijn eigen, maar over het algemeen binnen het cluster, zie de topologie), het is belangrijk dat interfaces van hetzelfde type zich in hetzelfde L2-segment bevinden.
Licenties:
Op dit moment heeft de ASAv-installatie geen licenties en is deze beperkt tot 100 kbps.
Om een licentie te installeren, moet u een token genereren in uw Smart-Account: https://software.cisco.com/ -> Slimme softwarelicenties
Klik in het geopende venster op de knop Nieuw token
Zorg ervoor dat er in het geopende venster een actief veld is en dat er een vinkje is aangevinkt Exportgestuurde functionaliteit toestaan… Zonder dat dit veld actief is, kunt u de functies van sterke codering en dus VPN niet gebruiken. Als dit veld niet actief is, neem dan contact op met uw accountteam met een activeringsverzoek.
Na het indrukken van de knop Maak een token, wordt er een token aangemaakt die we zullen gebruiken om een licentie voor ASAv te verkrijgen, kopieer deze:
Herhaal stappen C, D, E voor elke ingezette ASAv.
Laten we telnet tijdelijk toestaan om het kopiëren van het token te vergemakkelijken. Laten we elke ASA configureren (het onderstaande voorbeeld illustreert de instellingen op ASA-1). telnet werkt niet met buiten, als je het echt nodig hebt, verander het beveiligingsniveau naar 100 naar buiten, en stuur het dan terug.
!
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
!
Om een token te registreren in de Smart-Account cloud, moet u internettoegang bieden voor ASA, details hier.
Kortom, ASA is nodig:
toegang via HTTPS tot internet;
tijdsynchronisatie (correcter, via NTP);
geregistreerde DNS-server;
We telnet naar onze ASA en maken instellingen om de licentie te activeren via Smart-Account.
!
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>
We controleren of het apparaat een licentie heeft geregistreerd en of er coderingsopties beschikbaar zijn:
Stel een standaard SSL-VPN in op elke gateway
Configureer vervolgens de toegang via SSH en 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
!
Om ASDM te laten werken, moet u het eerst downloaden van de website cisco.com, in mijn geval is dit het volgende bestand:
Om de AnyConnect-client te laten werken, moet u een afbeelding uploaden naar elke ASA voor elk gebruikt desktopclient-besturingssysteem (gepland om Linux / Windows / MAC te gebruiken), u hebt een bestand nodig met Headend-implementatiepakket In de titel:
De gedownloade bestanden kunnen bijvoorbeeld worden geüpload naar een FTP-server en worden geüpload naar elke individuele ASA:
We configureren ASDM en een zelfondertekend certificaat voor SSL-VPN (het wordt aanbevolen om een vertrouwd certificaat te gebruiken in productie). De ingestelde FQDN van het virtuele clusteradres (vpn-demo.ashes.cc), evenals elke FQDN die is gekoppeld aan het externe adres van elk clusterknooppunt, moet in de externe DNS-zone worden omgezet in het IP-adres van de OUTSIDE-interface (of naar het toegewezen adres als port forwarding udp/443 wordt gebruikt (DTLS) en tcp/443(TLS)). Gedetailleerde informatie over de vereisten voor het certificaat wordt gespecificeerd in de sectie Certificaatverificatie documentatie.
!
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
Vergeet niet de poort op te geven om te controleren of ASDM werkt, bijvoorbeeld:
Laten we de basisinstellingen van de tunnel uitvoeren:
Laten we het bedrijfsnetwerk beschikbaar maken via de tunnel en het internet direct laten gaan (niet de veiligste methode als er geen bescherming is op de verbindende host, het is mogelijk om via een geïnfecteerde host binnen te dringen en bedrijfsgegevens weer te geven, optie split-tunnelbeleid tunnelall zal al het hostverkeer de tunnel in laten. Hoe dan ook split-tunnel maakt het mogelijk om de VPN-gateway te ontlasten en het internetverkeer van de host niet te verwerken)
Laten we adressen van het 192.168.20.0/24-subnet uitgeven aan hosts in de tunnel (pool van 10 tot 30 adressen (voor knooppunt #1)). Elk knooppunt van het VPN-cluster moet zijn eigen pool hebben.
We zullen basisauthenticatie uitvoeren met een lokaal aangemaakte gebruiker op de ASA (dit wordt niet aanbevolen, dit is de gemakkelijkste methode), het is beter om authenticatie te doen via LDAP/RADIUS, of beter nog, stropdas Multi-factor Authentication (MFA)B.v. Cisco-DUO.
(OPTIONEEL): In het bovenstaande voorbeeld gebruikten we een lokale gebruiker op de ITU om externe gebruikers te authenticeren, wat natuurlijk, behalve in het laboratorium, slecht toepasbaar is. Ik zal een voorbeeld geven van hoe je de instelling voor authenticatie snel kunt aanpassen aan RADIUS server, bijvoorbeeld gebruikt Cisco Identity Services-engine:
Deze integratie maakte het niet alleen mogelijk om de authenticatieprocedure snel te integreren met de AD-directoryservice, maar ook om te onderscheiden of de aangesloten computer van AD is, om te begrijpen of dit apparaat zakelijk of persoonlijk is, en om de status van het aangesloten apparaat te beoordelen .
Laten we Transparent NAT zo configureren dat het verkeer tussen de client en de bronnen van het bedrijfsnetwerknetwerk niet wordt gekrabbeld:
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
(OPTIONEEL): Om onze klanten bloot te stellen aan internet via de ASA (bij gebruik van tunnelallemaal opties) met behulp van PAT, evenals afsluiten via dezelfde OUTSIDE-interface waarmee ze zijn verbonden, moet u de volgende instellingen maken
Bij het gebruik van een cluster is het uiterst belangrijk om het interne netwerk in staat te stellen te begrijpen welke ASA retourverkeer naar gebruikers moet routeren, hiervoor moet u routes / 32 adressen die aan clients zijn uitgegeven, opnieuw verdelen.
Op dit moment hebben we het cluster nog niet geconfigureerd, maar we hebben al werkende VPN-gateways die individueel kunnen worden aangesloten via FQDN of IP.
We zien de aangesloten client in de routeringstabel van de eerste ASA:
Om ervoor te zorgen dat ons hele VPN-cluster en het hele bedrijfsnetwerk de route naar onze klant kennen, zullen we het klantvoorvoegsel herverdelen in een dynamisch routeringsprotocol, bijvoorbeeld OSPF:
Nu hebben we een route naar de client vanaf de tweede ASA-2-gateway en kunnen gebruikers die zijn verbonden met verschillende VPN-gateways binnen het cluster bijvoorbeeld rechtstreeks communiceren via een zakelijke softphone, en verkeer van de door de gebruiker gevraagde bronnen terugsturen. kom naar de gewenste VPN-gateway:
Laten we verder gaan met het configureren van het taakverdelingscluster.
Het adres 192.168.31.40 zal worden gebruikt als een virtueel IP-adres (VIP - alle VPN-clients zullen er in eerste instantie verbinding mee maken), vanaf dit adres zal het hoofdcluster een REDIRECT maken naar een minder belast clusterknooppunt. Vergeet niet te schrijven forward en reverse DNS-record zowel voor elk extern adres / FQDN van elk knooppunt van het cluster, als voor VIP.
We controleren de werking van het cluster met twee aangesloten clients:
Laten we de klantervaring handiger maken met het automatisch geladen AnyConnect-profiel via ASDM.
We benoemen het profiel op een handige manier en koppelen er ons groepsbeleid aan:
Na de volgende verbinding van de client wordt dit profiel automatisch gedownload en geïnstalleerd in de AnyConnect-client, dus als u verbinding wilt maken, selecteert u het gewoon in de lijst:
Aangezien we dit profiel op slechts één ASA met behulp van ASDM hebben gemaakt, moet u niet vergeten de stappen op de andere ASA's in het cluster te herhalen.
Conclusie: Zo hebben we snel een cluster van verschillende VPN-gateways geïmplementeerd met automatische taakverdeling. Het toevoegen van nieuwe knooppunten aan het cluster is eenvoudig, met eenvoudig horizontaal schalen door nieuwe virtuele ASAv-machines te implementeren of hardware-ASA's te gebruiken. De feature-rijke AnyConnect-client kan een veilige externe verbinding aanzienlijk verbeteren door gebruik te maken van de Houding (schattingen van de staat), het meest effectief gebruikt in combinatie met het systeem van gecentraliseerde controle en toegangsboekhouding Identity Services-engine.