Postavljanje ASA VPN klastera za balansiranje opterećenja
U ovom članku, želio bih dati upute korak po korak o tome kako možete brzo primijeniti najskalabilniju shemu u ovom trenutku. VPN za daljinski pristup pristup bazi AnyConnect i Cisco ASA - VPN klaster za balansiranje opterećenja.
Uvod: Mnoge kompanije širom svijeta, s obzirom na trenutnu situaciju sa COVID-19, ulažu napore da svoje zaposlenike prebace na daljinski rad. Zbog masovnog prelaska na rad na daljinu, opterećenje postojećih VPN gateway-a kompanija kritično raste i potrebna je vrlo brza mogućnost njihovog skaliranja. S druge strane, mnoge kompanije su prisiljene da na brzinu savladaju koncept rada na daljinu od nule.
Pripremio sam vodič korak po korak za jednostavnu implementaciju VPN klastera za balansiranje opterećenja kao najskalabilnije VPN tehnologije.
Primjer u nastavku bit će prilično jednostavan u smislu korištenih algoritama za autentifikaciju i autorizaciju, ali će biti dobra opcija za brzi početak (što trenutno mnogima nije dovoljno) uz mogućnost dubinskog prilagođavanja vašim potrebama tokom implementacije proces.
Kratke informacije: Tehnologija VPN klastera za balansiranje opterećenja nije funkcija prelaska na greške i nije funkcija klasteriranja u svom izvornom smislu, ova tehnologija može kombinovati potpuno različite ASA modele (sa određenim ograničenjima) kako bi izbalansirala VPN veze sa udaljenim pristupom. Nema sinkronizacije sesija i konfiguracija između čvorova takvog klastera, ali je moguće automatski balansirati VPN veze i osigurati otpornost na greške VPN veza sve dok barem jedan aktivni čvor ne ostane u klasteru. Opterećenje u klasteru se automatski balansira ovisno o opterećenju čvorova brojem VPN sesija.
Za napuštanje određenih čvorova klastera (ako je potrebno), može se koristiti filer, tako da će aktivnom vezom upravljati primarni čvor filera. Fileover nije neophodan uslov za osiguranje tolerancije grešaka unutar klastera Load-Balancing, sam klaster će, u slučaju kvara čvora, prenijeti korisničku sesiju na drugi živi čvor, ali bez pohranjivanja statusa veze, što je upravo obezbjeđuje filer. U skladu s tim, moguće je, ako je potrebno, kombinirati ove dvije tehnologije.
VPN klaster za balansiranje opterećenja može sadržavati više od dva čvora.
VPN klaster za balansiranje opterećenja je podržan na ASA 5512-X i novijim.
Budući da je svaki ASA unutar VPN Load-Balancing klastera nezavisna jedinica u smislu postavki, sve korake konfiguracije izvodimo pojedinačno na svakom pojedinačnom uređaju.
Mi implementiramo ASAv instance predložaka koji su nam potrebni (ASAv5/10/30/50) sa slike.
INSIDE / OUTSIDE interfejse dodeljujemo istim VLAN-ovima (Spolja u sopstvenom VLAN-u, UNUTRA u svom, ali generalno unutar klastera, pogledajte topologiju), važno je da su interfejsi istog tipa u istom L2 segmentu.
Licence:
U ovom trenutku ASAv instalacija neće imati nikakve licence i bit će ograničena na 100 kbps.
Da biste instalirali licencu, potrebno je da generišete token na svom Smart-računu: https://software.cisco.com/ -> Pametno licenciranje softvera
U prozoru koji se otvori kliknite na dugme New Token
Uvjerite se da u prozoru koji se otvori postoji aktivno polje i da je označena kvačica Dozvoli funkcionalnost kontroliranu izvozom… Bez aktivnog ovog polja nećete moći koristiti funkcije jake enkripcije i, shodno tome, VPN. Ako ovo polje nije aktivno, obratite se svom timu naloga sa zahtjevom za aktivaciju.
Nakon pritiska na dugme Kreirajte token, kreirat će se token koji ćemo koristiti za dobivanje licence za ASAv, kopirajte ga:
Ponovite korake C,D,E za svaki raspoređeni ASAv.
Da bismo olakšali kopiranje tokena, dozvolimo privremeno telnet. Konfigurirajmo svaki ASA (primjer ispod ilustruje postavke na ASA-1). telnet ne radi sa vanjskim, ako vam je zaista potreban, promijenite sigurnosni nivo na 100 na vanjski, a zatim ga vratite nazad.
!
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
!
Da biste registrovali token u oblaku Smart-Account, morate omogućiti pristup internetu za ASA, detalji ovdje.
Ukratko, ASA je potrebna:
pristup Internetu putem HTTPS-a;
sinhronizacija vremena (tačnije, preko NTP-a);
registrovani DNS server;
Telnet na naš ASA i vršimo podešavanja za aktiviranje licence preko Smart-Account-a.
!
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>
Provjeravamo da li je uređaj uspješno registrirao licencu i da li su dostupne opcije šifriranja:
Postavite osnovni SSL-VPN na svakom gatewayu
Zatim konfigurirajte pristup putem SSH i 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
!
Da bi ASDM radio, prvo ga morate preuzeti sa web stranice cisco.com, u mom slučaju to je sljedeća datoteka:
Da bi AnyConnect klijent funkcionisao, potrebno je da otpremite sliku na svaki ASA za svaki korišćeni klijent desktop OS (planirano da koristi Linux / Windows / MAC), trebaće vam fajl sa Paket za implementaciju Headend u naslovu:
Preuzete datoteke se mogu postaviti, na primjer, na FTP server i otpremiti na svaki pojedinačni ASA:
Konfigurišemo ASDM i Self-Signed certifikat za SSL-VPN (preporučuje se korištenje pouzdanog certifikata u proizvodnji). Postavljeni FQDN adrese virtuelnog klastera (vpn-demo.ashes.cc), kao i svaki FQDN povezan sa eksternom adresom svakog čvora klastera, mora da se razreši u eksternoj DNS zoni na IP adresu VANJSKOG interfejsa (ili na mapiranu adresu ako se koristi prosljeđivanje porta udp/443 (DTLS) i tcp/443(TLS)). Detaljne informacije o zahtjevima za certifikat su navedene u odjeljku Potvrda certifikata dokumentaciju.
!
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
Ne zaboravite navesti port za provjeru da ASDM radi, na primjer:
Izvršimo osnovna podešavanja tunela:
Učinimo korporativnu mrežu dostupnom kroz tunel i pustimo internet direktno (nije najsigurniji način ako nema zaštite na hostu koji se povezuje, moguće je prodrijeti kroz zaraženi host i prikazati korporativne podatke, opcija split-tunnel-policy tunnelall će pustiti sav promet domaćina u tunel. Ipak split-tunel omogućava oslobađanje VPN gateway-a i ne obradu internetskog prometa domaćina)
Hajde da izdamo adrese hostovima tunela iz podmreže 192.168.20.0/24 (skup od 10 do 30 adresa (za čvor #1)). Svaki čvor VPN klastera mora imati svoj vlastiti bazen.
Provešćemo osnovnu autentifikaciju sa lokalno kreiranim korisnikom na ASA (ovo se ne preporučuje, ovo je najlakši način), bolje je izvršiti autentifikaciju preko LDAP/RADIUS, ili još bolje, kravata Višefaktorska autentikacija (MFA), na primjer Cisco DUO.
(OPCIONALNO): U gornjem primjeru koristili smo lokalnog korisnika na ITU-u za autentifikaciju udaljenih korisnika, što je naravno, osim u laboratoriji, slabo primjenjivo. Navest ću primjer kako brzo prilagoditi postavke za autentifikaciju RADIUS server, na primjer korišten Cisco Identity Services Engine:
Ova integracija je omogućila ne samo brzu integraciju procedure autentikacije sa uslugom AD imenika, već i razlikovanje da li povezani računar pripada AD, da se shvati da li je ovaj uređaj korporativni ili lični i da se proceni status povezanog uređaja. .
Konfigurirajmo Transparent NAT tako da se promet između klijenta i resursa mreže korporativne mreže ne piše:
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
(OPCIONALNO): Kako bismo svoje klijente izložili Internetu putem ASA (prilikom korištenja tunelall opcije) pomoću PAT-a, kao i za izlaz kroz isti VANJSKI interfejs sa kojeg su povezani, potrebno je izvršiti sljedeća podešavanja
Prilikom korištenja klastera izuzetno je važno omogućiti internoj mreži da razumije koji ASA će usmjeriti povratni promet do korisnika, za to je potrebno preraspodijeliti rute / 32 adrese koje se izdaju klijentima.
Trenutno još nismo konfigurisali klaster, ali već imamo funkcionalne VPN gatewaye koji se mogu pojedinačno povezati preko FQDN ili IP-a.
Vidimo povezanog klijenta u tabeli rutiranja prvog ASA:
Kako bi cijeli naš VPN klaster i cijela korporativna mreža znali put do našeg klijenta, prefiks klijenta ćemo preraspodijeliti u dinamički protokol za usmjeravanje, na primjer OSPF:
Sada imamo rutu do klijenta od drugog ASA-2 gatewaya i korisnici povezani na različite VPN gatewaye unutar klastera mogu, na primjer, komunicirati direktno preko korporativnog softphonea, kao i vraćati promet iz resursa koje korisnik traži. dođite na željeni VPN gateway:
Prijeđimo na konfiguriranje klastera za balansiranje opterećenja.
Adresa 192.168.31.40 će se koristiti kao virtuelna IP adresa (VIP - svi VPN klijenti će se inicijalno povezivati na nju), sa ove adrese će Master klaster izvršiti REDIRECT na manje opterećen čvor klastera. Ne zaboravite napisati naprijed i nazad DNS zapis kako za svaku eksternu adresu/FQDN svakog čvora klastera, tako i za VIP.
Provjeravamo rad klastera sa dva povezana klijenta:
Učinimo korisničko iskustvo praktičnijim sa automatski učitanim AnyConnect profilom preko ASDM-a.
Profilu dajemo naziv na prikladan način i povezujemo našu politiku grupe s njim:
Nakon sljedećeg povezivanja klijenta, ovaj profil će se automatski preuzeti i instalirati u AnyConnect klijentu, pa ako se trebate povezati, samo ga odaberite sa liste:
Pošto smo kreirali ovaj profil samo na jednom ASA koristeći ASDM, ne zaboravite da ponovite korake na drugim ASA u klasteru.
Zaključak: Stoga smo brzo postavili klaster od nekoliko VPN gatewaya s automatskim balansiranjem opterećenja. Dodavanje novih čvorova u klaster je jednostavno, uz jednostavno horizontalno skaliranje postavljanjem novih ASAv virtualnih mašina ili korištenjem hardverskih ASA-ova. AnyConnect klijent bogat funkcijama može uvelike poboljšati sigurnu udaljenu vezu korištenjem Držanje (državne procjene), najefikasnije se koristi u sprezi sa sistemom centralizovane kontrole i računovodstva pristupa Identity Services Engine.