ASA VPN Load-Balancing klaszter telepítése

Ebben a cikkben lépésről lépésre bemutatom, hogyan lehet gyorsan elindítani a jelenleg elérhető legskálázhatóbb rendszert. Remote-Access VPN hozzáférést alapként AnyConnect és Cisco ASA – VPN Terhelésmegosztó Kláster.

Bevezetés: A világ számos vállalata a COVID-19 helyzet miatt erőfeszítéseket tesz az alkalmazottaik távoli munkavégzésre való átállítására. A távoli munkára való tömeges átállás következtében kritikus mértékben megnő a meglévő vállalati VPN átjárók terhelése, és rendkívül fontos a gyors skálázási lehetőség. Másrészt sok cég kénytelen gyorsan megismerkedni a távoli munkavégzés fogalmával.

Annak érdekében, hogy a vállalkozások a lehető leghamarabb kényelmes, biztonságos és skálázható VPN hozzáférést biztosítsanak munkavállalóik számára, a Cisco legfeljebb 13 hétig licencet biztosít a sokfunkciós SSL-VPN kliens AnyConnect használatára. ASAv-t is kérhetünk tesztelésre (Virtuális ASA VMware/Hiper-V/KVM és AWS/Azure felhőplatformokhoz) az autorizált partnereknél vagy a Cisco munkatársaival való kapcsolatfelvétel útján..

Az AnyConnect COVID-19 licenckiadásának folyamata itt található..

Elkészítettem egy lépésről lépésre útmutatót a VPN terhelésmegosztó klaszter egyszerű telepítési lehetőségéről, mint a legskálázhatóbb VPN technológiáról.

Az alábbi példa meglehetősen egyszerű lesz az alkalmazott hitelesítési és engedélyezési algoritmusok szempontjából, de jó lehetőség lesz a gyors induláshoz (amiből sokaknak most éppen hiányoznak) a későbbi igényekhez való mélyebb adaptálás lehetőségével a telepítés során.

Rövid áttekintés: A VPN Terhelésmegosztó Kláster nem failover és nem cluster funkció a natív értelmében, ez a technológia különböző ASA modellek kombinálására szolgál (bizonyos korlátozásokkal) a Remote-Access VPN kapcsolatok terhelésának elosztása érdekében. A klaszterek közötti session és konfigurációs szinkronizálás nem létezik, de lehetővé teszi a VPN kapcsolatok automatikus terhelésmegosztását és a kapcsolatok megbízhatóságának biztosítását, amíg legalább egy aktív csomópont van a klaszterben. A terhelés automatikusan eloszlik a csomópontok VPN session mennyisége alapján.

A klaszter egyes csomópontjainak hibatűrő működéséhez (ha ez szükséges) alkalmazhatunk fájlverziót, így az aktív kapcsolatot a fájlverzió elsődleges csomópontja fogja kezelni. A fájlverzió nem egy kötelező feltétele a hibatűrő működés biztosításának egy Load-Balancing klaszterben; a klaszter az egyik csomópont leállása esetén át fogja irányítani a felhasználói munkamenetet egy másik élő csomóra, azonban a kapcsolat státuszának megőrzése nélkül, ami pont a fájlverzió révén biztosítható. Ennek megfelelően szükség szerint kombinálhatjuk e két technológiát.

A VPN Load-Balancing klaszter több mint két csomópontot is tartalmazhat.

A VPN Load-Balancing klaszter támogatott az ASA 5512-X és újabb modelleken.

Mivel minden ASA a VPN Load-Balancing klaszter keretein belül önálló egység a beállítások szempontjából, ezért minden konfigurációs lépést egyedileg végezzük el minden egyes eszközön.

További részletek a technológiáról itt

A példában bemutatott logikai topológia:

ASA VPN Load-Balancing klaszter telepítése

Elsődleges telepítés:

  1. Telepítjük az ASAv kívánt mintáit képből (ASAv5/10/30/50).

  2. Az INSIDE/OUTSIDE interfészeket azonos VLAN-ra rendeljük (Outside a saját VLAN-jában, INSIDE a sajátjában, de közös a klaszter keretein belül, lásd a topológiát); fontos, hogy az azonos típusú interfészek egy L2 szegmensen legyenek.

  3. Engedélyek:

    • Az ASAv telepítésekor nem lesznek aktív licencek és a teljesítmény 100 kbit/s-ra korlátozódik.
    • A licenc telepítéséhez létre kell hoznia egy tokent a Smart-Account fiókjában: https://software.cisco.com/ -> Smart Software Licensing
    • A megnyíló ablakban kattintson a gombra Új Token

    ASA VPN Load-Balancing klaszter telepítése

    • Győződjön meg róla, hogy a megnyíló ablakban aktív mező található és a jelölőnégyzet be van pipálva Engedélyezze az export-korlátozott funkciót… E mező aktív hiányában nem tudja használni az erős titkosítási funkciókat, így a VPN-t sem. Ha ez a mező nem aktív, kérjük, forduljon a fiókja csapatához aktiválási kérelemmel.

    ASA VPN Load-Balancing klaszter telepítése

    • A gomb megnyomása után Token létrehozása, egy tokent hozunk létre, amelyet az ASAv licencének beszerzésére fogunk használni, másoljuk is:

    ASA VPN Load-Balancing klaszter telepítése

    • Ismételjük meg a C, D, E lépéseket minden telepített ASAv esetében.
    • A token másolásának megkönnyítése érdekében ideiglenesen engedjük a telnetet. Beállítjuk minden ASA-t (az alábbi példa az ASA-1 beállításait szemlélteti). A telnet a külső interfészről nem működik; ha szükséges, változtassa meg a security-level-t 100-ra a külső interfészen, majd állítsa vissza.

    !
    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
    !

    • A Smart-Account felhőben történő token regisztrálásához internet hozzáférést kell biztosítani az ASA számára. részletek itt.

    Röviden összefoglalva az ASA-ra szükség van:

    • HTTPS hozzáférés az internethez;
    • időszinkronizálás (legjobb NTP-n keresztül);
    • megadott DNS szerver;
      • Jelentkezzünk be telneten az ASA-ra és végezzük el a licenc aktiválásához szükséges beállításokat a Smart-Account-on keresztül.

    !
    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 
    !
    ! Ellenőrizzük a DNS működését:
    !
    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:
    !!!!!
    !
    ! Ellenőrizzük az NTP szinkronizálást:
    !
    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 (szinkronizálva), # master (nem szinkronizálva), + kiválasztott, - jelölt, ~ konfigurálva
    !
    ! Állítsuk be az ASAv konfigurációját a Smart-Licensinghez (az Ön profiljának megfelelően, az én esetemben például 100M)
    !
    ciscoasa(config)# license smart
    ciscoasa(config-smart-lic)# feature tier standard
    ciscoasa(config-smart-lic)# throughput level 100M
    !
    ! Szükség esetén beállíthat egy proxy-t az internethez való hozzáféréshez, használja a következő parancsblokkokat:
    !call-home
    !  http-proxy ip_address port port
    !
    ! Ezután beillesztjük a Smart-Account portálról másolt tokent (<token>) és regisztráljuk a licencet
    !
    ciscoasa(config)# end
    ciscoasa# license smart register idtoken <token>

    • Ellenőrizzük, hogy az eszköz sikeresen regisztrálta-e a licencet, és hogy a titkosítási opciók elérhetők-e:

    ASA VPN Load-Balancing klaszter telepítése

    ASA VPN Load-Balancing klaszter telepítése

  4. Alap SSL-VPN beállítása minden átjárón

    • Ezután SSH és ASDM hozzáférés beállítása:

    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
    !
    ! Építsük fel az HTTPS szervert az ASDM-hez a 445-ös porton, hogy ne ütközzön az SSL-VPN portáljal
    !
    vpn-demo-1(config)# http server enable 445 
    !

    • Az ASDM működéséhez először le kell tölteni azt a cisco.com oldalról, az én esetemben ez a következő fájl:

    ASA VPN Load-Balancing klaszter telepítése

    • Az AnyConnect kliens működéséhez le kell tölteni az ASÁ-ra a használni kívánt asztali operációs rendszerhez (Linux/Windows/MAC) tartozó képet. Fejállomás Telepítési Csomag a neve:

    ASA VPN Load-Balancing klaszter telepítése

    • A letöltött fájlokat például FTP szerverre lehet feltölteni, és minden egyes ASÁ-ra be kell tölteni őket:

    ASA VPN Load-Balancing klaszter telepítése

    • Beállítjuk az ASDM-et és az SSL-VPN-hez szükséges önaláírt tanúsítványt (éles környezetben ajánlott megbízható tanúsítványt használni). A virtuális klaszter teljesen kvalifikált domain neve (vpn-demo.ashes.cc), valamint minden FQDN, amely a klaszter egyes csomópontjainak külső címével van társítva, DNS-en keresztül az OUTSIDE interfész IP címére (vagy a leképezett címre, ha UDP/443 (DTLS) és TCP/443 (TLS) porttovábbítást használnak) kell feloldódjon. A tanúsítványra vonatkozó követelmények részletes információját a Tanúsítvány Ellenőrzés dokumentációban.

    !
    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=hu
    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
    % A tanúsítványban szereplő teljesen kvalifikált domain név: vpn-demo.ashes.cc
    Generálni szeretné az önaláírt tanúsítványt? [igen/nem]: igen
    vpn-demo-1(config)# 
    !
    vpn-demo-1(config)# sh cry ca certificates 
    Tanúsítvány
    Státusz: Elérhető
    Tanúsítvány Sorszáma: 4d43725e
    Tanúsítvány Használata: Általános Célú
    Nyilvános Kulcs Típusa: RSA (4096 bit)
    Aláírási Algoritmus: SHA256 RSA Titkosítással
    Kibocsátó Neve: 
    sorozatszám=9A439T02F95
    hosztnév=vpn-demo.ashes.cc
    cn=*.ashes.cc
    ou=ashes-lab
    o=ashes
    c=hu
    Tárgy Neve:
    sorozatszám=9A439T02F95
    hosztnév=vpn-demo.ashes.cc
    cn=*.ashes.cc
    ou=ashes-lab
    o=ashes
    c=hu
    Érvényességi Dátum: 
    kezdési dátum: 00:16:17 MSK 2020. március 19
    záró dátum: 00:16:17 MSK 2030. március 17
    Tárolás: konfiguráció
    Társított Trustpointok: SELF 
    
    CA Tanúsítvány
    Státusz: Elérhető
    Tanúsítvány Sorszáma: 0509
    Tanúsítvány Használata: Általános Célú
    Nyilvános Kulcs Típusa: RSA (4096 bit)
    Aláírási Algoritmus: SHA1 RSA Titkosítással
    Kibocsátó Neve: 
    cn=QuoVadis Root CA 2
    o=QuoVadis Limited
    c=BM
    Tárgy Neve: 
    cn=QuoVadis Root CA 2
    o=QuoVadis Limited
    c=BM
    Érvényességi Dátum: 
    kezdési dátum: 21:27:00 MSK 2006. november 24
    záró dátum: 21:23:33 MSK 2031. november 24
    Tárolás: konfiguráció
    Társított Trustpointok: _SmartCallHome_ServerCA               

    • Az ASDM működésének ellenőrzéséhez ne felejtsük el megadni a portot, például:

    ASA VPN Load-Balancing klaszter telepítése

    • Végrehajtjuk a tunnel alapbeállításait:
    • Tegyük elérhetővé a vállalati hálózatot a tunnelen keresztül, miközben az internetet közvetlenül engedjük (rendkívül nem biztonságos módszer, ha a kapcsolódó hoszton nincsenek védelmi eszközök, lehetséges a korrupt hoszton keresztüli behatolás és vállalati adatok kiszivárgása, opció split-tunnel-policy tunnelall minden hosztforgalmat a tunnelen keresztül enged. Ennek ellenére Split-Tunnel lehetővé teszi a VPN gateway terhelésének csökkentését, és nem kezeli a hoszt internetforgalmát)
    • A tunnelen belüli hosztoknak a 192.168.20.0/24 alhálózatból címeket adunk (10-30 közötti címek száma (az 1-es csomópont számára)). A VPN pool must be unique to each node in the cluster.
    • Let's perform basic authentication with a locally created user on the ASA (This is not recommended, as it’s the simplest method); it’s better to authenticate via LDAP/RADIUS, and even better to link with Multi-Factor Authentication (MFA), például Cisco DUO.

    !
    vpn-demo-1(config)# ip local pool vpn-pool 192.168.20.10-192.168.20.30 mask 255.255.255.0
    !
    vpn-demo-1(config)# access-list split-tunnel standard permit 192.168.0.0 255.255.0.0
    !
    vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY internal
    vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY attributes
    vpn-demo-1(config-group-policy)# vpn-tunnel-protocol ssl-client 
    vpn-demo-1(config-group-policy)# split-tunnel-policy tunnelspecified
    vpn-demo-1(config-group-policy)# split-tunnel-network-list value split-tunnel
    vpn-demo-1(config-group-policy)# dns-server value 192.168.99.132
    vpn-demo-1(config-group-policy)# default-domain value ashes.cc
    vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes
    vpn-demo-1(config-tunnel-general)#  default-group-policy SSL-VPN-GROUP-POLICY
    vpn-demo-1(config-tunnel-general)#  address-pool vpn-pool
    !
    vpn-demo-1(config)# username dkazakov password cisco
    vpn-demo-1(config)# username dkazakov attributes
    vpn-demo-1(config-username)# service-type remote-access
    !
    vpn-demo-1(config)# ssl trust-point SELF
    vpn-demo-1(config)# webvpn
    vpn-demo-1(config-webvpn)#  enable outside
    vpn-demo-1(config-webvpn)#  anyconnect image disk0:/anyconnect-win-4.8.03036-webdeploy-k9.pkg
    vpn-demo-1(config-webvpn)#  anyconnect enable
    !

    • (OPTIONAL): In the above example, we used a local user on the MSE for authenticating remote users, which is hardly applicable outside a lab setting. I'll provide an example of how to quickly adapt the configuration for authentication on the RADIUS server, using the example of Cisco Identity Services Engine:

    vpn-demo-1(config-aaa-server-group)# dynamic-authorization
    vpn-demo-1(config-aaa-server-group)# interim-accounting-update
    vpn-demo-1(config-aaa-server-group)# aaa-server RADIUS (outside) host 192.168.99.134
    vpn-demo-1(config-aaa-server-host)# key cisco
    vpn-demo-1(config-aaa-server-host)# exit
    vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes
    vpn-demo-1(config-tunnel-general)# authentication-server-group  RADIUS 
    !

    This integration allows not only for the quick incorporation of the authentication procedure with the AD directory service, but also to distinguish whether the connecting computer belongs to the AD, understand if it’s a corporate or personal device, and assess the state of the connecting device.

    ASA VPN Load-Balancing klaszter telepítése

    ASA VPN Load-Balancing klaszter telepítése

    • Let's configure Transparent NAT so that traffic between the client and the resources of the corporate network is not translated:

    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): To release our clients to the Internet through ASA (when using tunnelall A PAT használatával kapcsolatos lehetőségek, valamint a szükséges beállítások elvégzése, ahonnan csatlakoznak, a következőképpen történik.

    vpn-demo-1(config-network-object)# nat (outside,outside) source dynamic vpn-users interface
    vpn-demo-1(config)# nat (inside,outside) source dynamic any interface
    vpn-demo-1(config)# same-security-traffic permit intra-interface
    !

    • Különösen fontos, hogy a klaszter használata során lehetőséget adjunk a belső hálózat számára, hogy megértse, melyik ASA-ra irányítsa a visszaáramló forgalmat. Ehhez szükséges a klienseknek kiosztott /32 címek útvonalának redisztribúciója.
      Jelenleg még nem állítottuk be a klasztert, de már rendelkezésünkre állnak működő VPN átjárók, amelyekhez egyedileg lehet csatlakozni FQDN-en vagy IP-n keresztül.

    ASA VPN Load-Balancing klaszter telepítése

    Látjuk a csatlakoztatott klienst az első ASA routing táblájában:

    ASA VPN Load-Balancing klaszter telepítése

    Ahhoz, hogy a VPN klaszterünk és az egész vállalati hálózat tudja, hogy a kliensek felé merre van az útvonal, redisztribuáljuk a kliens előtagját a dinamikus routing protokollba, például OSPF-be:

    !
    vpn-demo-1(config)# route-map RMAP-VPN-REDISTRIBUTE permit 1
    vpn-demo-1(config-route-map)# match ip address VPN-REDISTRIBUTE
    !
    vpn-demo-1(config)# router ospf 1
    vpn-demo-1(config-router)# network 192.168.255.0 255.255.255.0 area 0
    vpn-demo-1(config-router)# log-adj-changes
    vpn-demo-1(config-router)# redistribute static metric 5000 subnets route-map RMAP-VPN-REDISTRIBUTE

    Most már megvan az útvonal a klienshez a második ASA-2 átjárón, és a különböző VPN átjárókhoz csatlakozó felhasználók például közvetlenül kommunikálhatnak vállalati szoftvertelefonon, ugyanúgy, ahogy a felhasználó által kért erőforrások visszaáramló forgalma a megfelelő VPN átjáróra érkezik:

    ASA VPN Load-Balancing klaszter telepítése

  5. Folytatjuk a klaszter Load-Balancing beállításával.

    Az 192.168.31.40 cím Virtual IP (VIP) címmé válik (ide fog elsődlegesen csatlakozni az összes VPN kliens), erről a címről a klaszter mester REDIRECT-ot végez a kevésbé terhelt klaszternódra. Ne felejtsd el megadni a közvetlen és visszafelé DNS rekordot mindegyik külső cím/FQDN-re a klaszter minden nódájához, valamint a VIP-re.

    vpn-demo-1(config)# vpn load-balancing
    vpn-demo-1(config-load-balancing)# interface lbpublic outside
    vpn-demo-1(config-load-balancing)# interface lbprivate inside
    vpn-demo-1(config-load-balancing)# priority 10
    vpn-demo-1(config-load-balancing)# cluster ip address 192.168.31.40
    vpn-demo-1(config-load-balancing)# cluster port 4000
    vpn-demo-1(config-load-balancing)# redirect-fqdn enable
    vpn-demo-1(config-load-balancing)# cluster key cisco
    vpn-demo-1(config-load-balancing)# cluster encryption
    vpn-demo-1(config-load-balancing)# cluster port 9023
    vpn-demo-1(config-load-balancing)# participate
    vpn-demo-1(config-load-balancing)#

    • Ellenőrizzük a klaszter működését két csatlakoztatott klienssel:

    ASA VPN Load-Balancing klaszter telepítése

    • Jobbá tesszük az ügyfél munkatapasztalatát az AnyConnect automatikusan letöltődő profiljával az ASDM-en keresztül.

    ASA VPN Load-Balancing klaszter telepítése

    Kényelmes módon nevezzük el a profilt, és társítjuk a csoportos politikánkkal:

    ASA VPN Load-Balancing klaszter telepítése

    A következő ügyfélszerver csatlakozásakor ez a profil automatikusan letöltésre kerül és telepítésre az AnyConnect kliensen, így szükség esetén egyszerűen választható lesz a listából.

    ASA VPN Load-Balancing klaszter telepítése

    Mivel az ASDM használatával ezt a profilt csak egy ASA-n hoztuk létre, ne felejtsük el megismételni a lépéseket a klaszter többi ASA-ján is.

Következtetés: Így gyorsan telepítettük a több VPN átjárót tartalmazó klasztert automatikus terheléselosztással. Új csomópontokat hozzáadni a klaszterhez nem nehéz, egyszerű vízszintes skálázást elérve új virtuális ASAv gépek telepítésével vagy hardveres ASA használatával. Az AnyConnect sokfunkciós kliens jelentősen kibővítheti a biztonságos távoli kapcsolódás lehetőségeit a Posture (állapotértékelés), amely a legjobban a központosított hozzáférés-ellenőrzési rendszerrel együtt alkalmazható. Identity Services Engine.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster