ProHoster > Blog > uprava > Postavljanje ASA VPN klastera za uravnoteženje opterećenja
Postavljanje ASA VPN klastera za uravnoteženje opterećenja
U ovom bih članku želio pružiti upute korak po korak o tome kako možete brzo implementirati trenutno najskalabilniju shemu. VPN s udaljenim pristupom temeljeno na pristupu AnyConnect i Cisco ASA - VPN klaster za uravnoteženje opterećenja.
Uvod: Mnoge tvrtke diljem svijeta, s obzirom na trenutnu situaciju s COVID-19, ulažu napore da svoje zaposlenike prebace na daljinski rad. Zbog masovnog prijelaza na daljinski rad, opterećenje postojećih VPN pristupnika tvrtki kritično raste i potrebna je vrlo brza sposobnost njihovog skaliranja. S druge strane, mnoge tvrtke prisiljene su na brzinu svladati koncept rada na daljinu od nule.
Pripremio sam korak po korak vodič za jednostavnu implementaciju VPN Load-Balancing Clustera 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) s mogućnošću dubinske prilagodbe vašim potrebama tijekom implementacije postupak.
Kratke informacije: VPN Load Balancing Cluster tehnologija nije failover niti funkcija klasteriranja u izvornom smislu, ova tehnologija može kombinirati potpuno različite ASA modele (uz određena ograničenja) kako bi se uravnotežilo opterećenje Remote-Access VPN veza. Ne postoji sinkronizacija sesija i konfiguracija između čvorova takvog klastera, ali je moguće automatski balansirati opterećenje VPN veza i osigurati toleranciju na pogreške VPN veza sve dok u klasteru ne ostane barem jedan aktivan čvor. Opterećenje u klasteru se automatski balansira ovisno o radnom opterećenju čvorova prema broju VPN sesija.
Za preusmjeravanje određenih čvorova klastera (ako je potrebno), može se koristiti filer, tako da će aktivnom vezom upravljati primarni čvor filera. Fileover nije nužan uvjet za osiguranje tolerancije na pogreške unutar Load-Balancing klastera, sam klaster će u slučaju kvara čvora prenijeti korisničku sesiju na drugi živi čvor, ali bez spremanja statusa veze, što je upravo koju osigurava podnositelj. Sukladno tome, 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 uravnoteženje opterećenja podržan je na ASA 5512-X i novijim verzijama.
Budući da je svaki ASA unutar VPN Load-Balancing klastera nezavisna jedinica u pogledu postavki, sve konfiguracijske korake provodimo pojedinačno na svakom pojedinom uređaju.
Iz slike postavljamo ASAv instance predložaka koji su nam potrebni (ASAv5/10/30/50).
INSIDE / OUTSIDE sučelja dodjeljujemo istim VLAN-ovima (Outside u svom VLAN-u, INSIDE u svom, ali općenito unutar klastera, vidi topologiju), važno je da su sučelja istog tipa u istom L2 segmentu.
Licence:
Trenutno ASAv instalacija neće imati nikakve licence i bit će ograničena na 100 kbps.
Da biste instalirali licencu, trebate generirati token na svom pametnom računu: https://software.cisco.com/ -> Pametno licenciranje softvera
U prozoru koji se otvori kliknite gumb Novi token
Provjerite je li u prozoru koji se otvori aktivno polje i označena kvačica Dopusti funkcionalnost kontroliranu izvozom… Bez aktivnog ovog polja nećete moći koristiti funkcije jake enkripcije i, sukladno tome, VPN. Ako ovo polje nije aktivno, obratite se svom timu za račun sa zahtjevom za aktivaciju.
Nakon pritiska na tipku Napravite token, stvorit će se token koji ćemo koristiti za dobivanje licence za ASAv, kopirajte ga:
Ponovite korake C, D, E za svaki postavljeni ASAv.
Da bismo olakšali kopiranje tokena, dopustimo privremeno telnet. Konfigurirajmo svaki ASA (primjer u nastavku ilustrira postavke na ASA-1). telnet ne radi s vanjskim, ako ga stvarno trebate, promijenite razinu sigurnosti na 100 na vanjski, a zatim ga vratite natrag.
!
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 registrirali token u oblaku Smart-Account, morate osigurati pristup internetu za ASA, detalji ovdje.
Ukratko, ASA je potreban:
pristup Internetu putem HTTPS-a;
sinkronizacija vremena (točnije, putem NTP-a);
registrirani DNS poslužitelj;
Telnetom se povezujemo s našim ASA-om i postavljamo postavke za aktivaciju licence putem 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 je uređaj uspješno registrirao licencu i da li su dostupne opcije šifriranja:
Postavite osnovni SSL-VPN na svakom pristupniku
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 s web stranice cisco.com, u mom slučaju to je sljedeća datoteka:
Da bi AnyConnect klijent radio, trebate prenijeti sliku na svaki ASA za svaki korišteni desktop klijent OS (planiran za korištenje Linux / Windows / MAC), trebat će vam datoteka s Paket za implementaciju glavnog terminala U naslovu:
Preuzete datoteke mogu se prenijeti, na primjer, na FTP poslužitelj i prenijeti na svaki pojedinačni ASA:
Konfiguriramo ASDM i samopotpisani certifikat za SSL-VPN (preporuča se korištenje pouzdanog certifikata u proizvodnji). Postavljeni FQDN adrese virtualnog klastera (vpn-demo.ashes.cc), kao i svaki FQDN povezan s vanjskom adresom svakog čvora klastera, mora razriješiti u vanjskoj DNS zoni IP adresu VANJSKOG sučelja (ili na mapiranu adresu ako se koristi port prosljeđivanje udp/443 (DTLS) i tcp/443(TLS)). Detaljne informacije o zahtjevima za certifikat navedene su u odjeljku Potvrda certifikata dokumentacija.
!
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 radi li ASDM, na primjer:
Izvršimo osnovne postavke tunela:
Učinimo korporativnu mrežu dostupnom kroz tunel i pustimo Internet da ide izravno (nije najsigurnija metoda 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 pustit će sav promet domaćina u tunel. Štoviše split-tunel omogućuje rasterećenje VPN pristupnika i ne obrađuje internetski promet hosta)
Izdajmo adrese iz podmreže 192.168.20.0/24 hostovima u tunelu (pool od 10 do 30 adresa (za čvor #1)). Svaki čvor VPN klastera mora imati vlastiti bazen.
Provest ćemo osnovnu provjeru autentičnosti s lokalno stvorenim korisnikom na ASA (Ovo se ne preporučuje, ovo je najlakši način), bolje je izvršiti provjeru autentičnosti putem LDAP/RADIJUS, ili još bolje, kravatu Višefaktorska provjera autentičnosti (MFA)Npr Cisco DUO.
(OPCIONALNO): U gornjem primjeru koristili smo lokalnog korisnika na ITU-u za autentifikaciju udaljenih korisnika, što je naravno, osim u laboratoriju, slabo primjenjivo. Dat ću primjer kako brzo prilagoditi postavku za autentifikaciju RADIUS poslužitelj, korišten kao primjer Cisco Identity Services Engine:
Ova integracija omogućila je ne samo brzu integraciju postupka provjere autentičnosti s AD imeničkom uslugom, već i razlikovanje pripada li povezano računalo AD-u, razumijevanje je li ovaj uređaj korporativni ili osobni te procjenu statusa povezanog uređaja .
Konfigurirajmo Transparent NAT tako da se promet između klijenta i resursa korporativne mrežne mreže ne škraba:
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 tunnelall opcije) korištenjem PAT-a, kao i izlaz preko istog OUTSIDE sučelja s kojeg su povezani, morate napraviti sljedeće postavke
Kada koristite klaster, iznimno je važno omogućiti internoj mreži da razumije koji ASA usmjeriti povratni promet korisnicima, za to morate redistribuirati rute / 32 adrese izdane klijentima.
Trenutačno još nismo konfigurirali klaster, ali već imamo VPN pristupnike koji rade i mogu se pojedinačno spajati putem FQDN-a ili IP-a.
Vidimo povezanog klijenta u tablici usmjeravanja prvog ASA-a:
Kako bi cijeli naš VPN klaster i cijela korporativna mreža znali rutu do našeg klijenta, mi ćemo redistribuirati prefiks klijenta u dinamički protokol usmjeravanja, na primjer OSPF:
Sada imamo rutu do klijenta s drugog ASA-2 pristupnika i korisnici spojeni na različite VPN pristupnike unutar klastera mogu, na primjer, komunicirati izravno putem korporativnog softverskog telefona, kao i vraćati promet iz resursa koje je korisnik tražio. doći do željenog VPN pristupnika:
Prijeđimo na konfiguraciju klastera za balansiranje opterećenja.
Adresa 192.168.31.40 koristit će se kao Virtual IP (VIP - svi VPN klijenti će se inicijalno spojiti na nju), s ove adrese Master klaster će napraviti REDIRECT na manje opterećeni čvor klastera. Ne zaboravite pisati naprijed i nazad DNS zapis kako za svaku vanjsku adresu / FQDN svakog čvora klastera, tako i za VIP.
Provjeravamo rad klastera s dva povezana klijenta:
Učinimo korisničko iskustvo praktičnijim s automatski učitanim profilom AnyConnect putem ASDM-a.
Imenujemo profil na prikladan način i povezujemo s njim našu grupnu politiku:
Nakon sljedećeg povezivanja klijenta, ovaj profil će se automatski preuzeti i instalirati u AnyConnect klijentu, pa ako se trebate povezati, samo ga odaberite s popisa:
Budući da smo kreirali ovaj profil samo na jednom ASA-u koristeći ASDM, ne zaboravite ponoviti korake na ostalim ASA-ovima u klasteru.
Zaključak: Stoga smo brzo postavili klaster od nekoliko VPN pristupnika s automatskim balansiranjem opterećenja. Dodavanje novih čvorova u klaster je jednostavno, uz jednostavno horizontalno skaliranje postavljanjem novih ASAv virtualnih strojeva ili korištenjem hardverskih ASA-ova. Značajkama bogat AnyConnect klijent može uvelike poboljšati sigurnu udaljenu vezu korištenjem Držanje (navedite procjene), najučinkovitije se koristi u kombinaciji sa sustavom centralizirane kontrole i računovodstva pristupa Identity Services Engine.