ASA VPN Load-Balancing кластерин жайылтуу

Бул макалада мен учурда эң масштабдуу схеманы кантип тез арада жайгаштыруу боюнча этап-этабы менен көрсөтмөлөрдү бергим келет. Remote Access VPN мүмкүндүк алуу негизделген AnyConnect жана Cisco ASA - VPN жүктөөнү теңдөөчү кластер.

Киришүү: Дүйнө жүзү боюнча көптөгөн компаниялар, COVID-19 менен болгон учурдагы кырдаалды эске алуу менен, өз кызматкерлерин аралыктан иштөөгө өткөрүү аракетин көрүүдө. Алыскы иштөөгө массалык түрдө өтүүгө байланыштуу компаниялардын учурдагы VPN шлюздарына жүктөм кескин өсүп жатат жана аларды масштабдоо үчүн абдан тез жөндөмдүүлүк талап кылынат. Башка жагынан алып караганда, көптөгөн компаниялар шашылыш түрдө нөлдөн баштап аралыктан иштөө концепциясын өздөштүрүүгө аргасыз болушат.

Ишкерлерге мүмкүн болушунча кыска убакыттын ичинде кызматкерлер үчүн ыңгайлуу, коопсуз жана масштабдуу VPN мүмкүнчүлүгүнө жетүүгө жардам берүү үчүн, Cisco AnyConnect өзгөчөлүктөргө бай SSL VPN кардарын 13 жумага чейин лицензиялап жатат. Сиз ошондой эле ыйгарым укуктуу өнөктөштөрдөн же сиз менен иштеген Cisco өкүлдөрү менен байланышуу аркылуу ASAv тестин тапшырсаңыз болот (VMWare/Hyper-V/KVM гипервизорлору жана AWS/Azure булут платформалары үчүн виртуалдык ASA).

AnyConnect COVID-19 лицензияларын берүү процедурасы бул жерде сүрөттөлгөн.

Мен эң масштабдуу VPN технологиясы катары VPN Load-Balancing Clusterди жөнөкөй жайылтуу үчүн этап-этабы менен жолду даярдадым.

Төмөндөгү мисал колдонулган аутентификация жана авторизация алгоритмдери жагынан абдан жөнөкөй болот, бирок тез баштоо үчүн жакшы вариант болот (бул азыр көптөр үчүн жетишсиз) жана жайылтуу учурунда сиздин муктаждыктарыңызга терең ыңгайлашуу мүмкүнчүлүгү менен. процесс.

Кыскача маалымат: VPN Load Balancing Cluster технологиясы өзүнүн түпкү маанисинде иштебей калуу жана кластердик функция эмес, бул технология Remote-Access VPN байланыштарын жүктөө үчүн таптакыр башка ASA моделдерин (белгилүү чектөөлөр менен) айкалыштыра алат. Мындай кластердин түйүндөрүнүн ортосунда сеанстарды жана конфигурацияларды синхрондоштуруу жок, бирок VPN туташууларынын балансын автоматтык түрдө жүктөө жана кластерде жок дегенде бир активдүү түйүн калганга чейин VPN туташууларынын катачылыкка чыдамдуулугун камсыз кылуу мүмкүн. Кластердеги жүк VPN сеанстарынын саны боюнча түйүндөрдүн иш жүгүнө жараша автоматтык түрдө тең салмакталат.

Кластердин белгилүү түйүндөрүнүн үзгүлтүккө учурашы үчүн (зарыл болсо) филер колдонулушу мүмкүн, андыктан жигердүү туташуу филердин Негизги түйүнү тарабынан иштетилет. Fileover - бул Load-Balancing кластериндеги каталарга сабырдуулукту камсыз кылуу үчүн зарыл шарт эмес, кластердин өзү түйүн иштебей калса, колдонуучунун сеансын башка жандуу түйүнгө өткөрүп берет, бирок туташуу статусун сактабастан, бул так файл берүүчү тарабынан берилет. Демек, зарыл болсо, бул эки технологияны айкалыштырууга болот.

VPN Load-Balancing кластери экиден ашык түйүндү камтышы мүмкүн.

VPN Load-Balancing Cluster ASA 5512-X жана андан жогоруда колдоого алынат.

VPN Load-Balancing кластериндеги ар бир ASA орнотуулар боюнча көз карандысыз бирдик болгондуктан, биз конфигурациялоонун бардык кадамдарын ар бир түзмөктө өз алдынча аткарабыз.

Технологиянын чоо-жайы бул жерде

Берилген мисалдын логикалык топологиясы:

ASA VPN Load-Balancing кластерин жайылтуу

Негизги жайылтуу:

  1. Бизге керектүү калыптардын ASAv инстанцияларын (ASAv5/10/30/50) сүрөттөн колдонобуз.

  2. Биз INSIDE / OUTSIDE интерфейстерин ошол эле VLANларга дайындайбыз (сыртында өзүнүн VLANында, INSIDE өзүндө, бирок жалпысынан кластердин ичинде, топологияны караңыз), бир типтеги интерфейстер бир эле L2 сегментинде болушу маанилүү.

  3. Лицензиялар:

    • Учурда ASAv орнотуунун эч кандай лицензиясы болбойт жана 100 кбит/сек менен чектелет.
    • Лицензияны орнотуу үчүн Smart-аккаунтуңузда токен түзүү керек: https://software.cisco.com/ -> Smart программалык камсыздоону лицензиялоо
    • Ачылган терезеде баскычты басыңыз Жаңы Токен

    ASA VPN Load-Balancing кластерин жайылтуу

    • Ачылган терезеде жигердүү талаа бар экенин жана белги коюлганын текшериңиз Экспорттук башкарылуучу функцияларга уруксат берүү... Бул талаа активдүү болбосо, сиз күчтүү шифрлөө жана, демек, VPN функцияларын колдоно албайсыз. Эгер бул талаа активдүү болбосо, активдештирүү өтүнүчү менен аккаунтуңуздун жамаатына кайрылыңыз.

    ASA VPN Load-Balancing кластерин жайылтуу

    • Баскычын баскандан кийин Токен түзүү, биз ASAv лицензиясын алуу үчүн колдоно турган токен түзүлөт, аны көчүрүңүз:

    ASA VPN Load-Balancing кластерин жайылтуу

    • Ар бир жайгаштырылган ASAv үчүн C,D,E кадамдарын кайталаңыз.
    • Токенди көчүрүүнү жеңилдетүү үчүн, келгиле, telnet'ке убактылуу уруксат берели. Келгиле, ар бир ASAны конфигурациялайлы (төмөндөгү мисал ASA-1деги орнотууларды көрсөтөт). telnet сырткы менен иштебейт, эгер сизге чындап керек болсо, коопсуздук деңгээлин 100гө алмаштырып, сыртка кайтарыңыз.

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

    • Smart-Account булутунда белгини каттоо үчүн, сиз ASA үчүн Интернетке кирүү мүмкүнчүлүгүн беришиңиз керек, чоо-жайы бул жерде.

    Кыскасы, ASA керек:

    • HTTPS аркылуу интернетке кирүү;
    • убакыт синхрондоштуруу (туурараак, NTP аркылуу);
    • катталган DNS сервери;
      • Биз ASAга телнет байланышып, 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>

    • Түзмөктүн лицензияны ийгиликтүү каттаганын жана шифрлөө параметрлери бар экенин текшеребиз:

    ASA VPN Load-Balancing кластерин жайылтуу

    ASA VPN Load-Balancing кластерин жайылтуу

  4. Ар бир шлюзда негизги SSL-VPN орнотуңуз

    • Андан кийин, SSH жана 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 
    !

    • ASDM иштеши үчүн, алгач аны cisco.com веб-сайтынан жүктөп алышыңыз керек, менин учурда бул төмөнкү файл:

    ASA VPN Load-Balancing кластерин жайылтуу

    • AnyConnect кардары иштеши үчүн, ар бир колдонулган кардар иш столунун OS (Linux / Windows / MAC колдонууга пландаштырылган) үчүн ар бир ASAга сүрөт жүктөшүңүз керек, сизге файл керек болот. Headend Deployment Package Аталышында:

    ASA VPN Load-Balancing кластерин жайылтуу

    • Жүктөлгөн файлдарды, мисалы, FTP серверине жана ар бир жеке ASAга жүктөөгө болот:

    ASA VPN Load-Balancing кластерин жайылтуу

    • SSL-VPN үчүн ASDM жана Self-Signed сертификатын конфигурациялайбыз (өндүрүштө ишенимдүү сертификатты колдонуу сунушталат). Виртуалдык кластердик даректин (vpn-demo.ashes.cc) коюлган FQDN, ошондой эле ар бир кластер түйүнүнүн тышкы дареги менен байланышкан ар бир FQDN тышкы DNS зонасында ТЫШКЫ интерфейстин IP дарегине чечилиши керек (же эгер порт багыттоо udp/443 (DTLS) жана tcp/443(TLS) колдонулса, карталанган дарекке. Сертификатка коюлуучу талаптар боюнча толук маалымат бөлүмдө көрсөтүлгөн Тастыктаманы текшерүү документтер.

    !
    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               

    • ASDM иштеп жатканын текшерүү үчүн портту көрсөтүүнү унутпаңыз, мисалы:

    ASA VPN Load-Balancing кластерин жайылтуу

    • Туннелдин негизги орнотууларын жасайлы:
    • Корпоративдик тармакты туннель аркылуу жеткиликтүү кылып, Интернетти түз иштетели (эгер туташкан хостто коргоо жок болсо, эң коопсуз ыкма эмес, вирус жуккан хост аркылуу кирип, корпоративдик маалыматтарды көрсөтүүгө болот, опция бөлүү-туннель-политика туннелл бардык хост трафикти туннелге киргизет. Ошого карабастан бөлүү туннель VPN шлюзун түшүрүүгө жана хосттун интернет трафигин иштетүүгө мүмкүндүк берет)
    • Туннелдеги хостторго 192.168.20.0/24 субнеттен адрестерди чыгаралы (10дон 30га чейин бассейн (№1 түйүн үчүн)). VPN кластеринин ар бир түйүнүнүн өзүнүн бассейни болушу керек.
    • Биз ASA боюнча жергиликтүү түзүлгөн колдонуучу менен негизги аутентификацияны жүргүзөбүз (бул сунушталбайт, бул эң оңой ыкма), аутентификацияны аркылуу жүргүзгөн жакшы. LDAP/RADIUS, же андан да жакшысы, галстук Көп факторлуу аутентификация (MFA)Мисалы, 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
    !

    • (КОЛДООЧО): Жогорудагы мисалда биз алыскы колдонуучулардын аутентификациясы үчүн ITUдагы жергиликтүү колдонуучуну колдондук, ал албетте лабораториядан башкасы начар колдонулат. Мен аныктыгын текшерүү үчүн орнотууну кантип тез ыңгайлаштырууга мисал келтирем RADIUS сервер, мисалы колдонулат 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 
    !

    Бул интеграция аутентификация процедурасын AD каталог кызматы менен тез интеграциялоого гана эмес, ошондой эле туташкан компьютер ADга таандык экендигин ажыратууга, бул аппарат корпоративдик же жеке экендигин түшүнүүгө жана туташкан түзүлүштүн абалын баалоого мүмкүндүк берди. .

    ASA VPN Load-Balancing кластерин жайылтуу

    ASA VPN Load-Balancing кластерин жайылтуу

    • Келгиле, Transparent NAT конфигурациясын кардар менен корпоративдик тармактын ресурстарынын ортосундагы трафик сызылып калбашы үчүн конфигурациялайлы:

    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

    • (МИЛДЕТТҮҮ): Биздин кардарларды ASA аркылуу Интернетке чыгаруу үчүн (пайдаланууда tunnelall параметрлери) PAT аркылуу, ошондой эле алар туташкан ТЫШКЫ интерфейс аркылуу чыгуу үчүн, төмөнкү орнотууларды жасашыңыз керек.

    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 
    !

    • Кластерди колдонууда, ички тармакты колдонуучуларга кайтаруучу трафикти кайсы АСА багыттоо керектигин түшүнүү үчүн иштетүү өтө маанилүү, ал үчүн кардарларга берилген маршруттарды / 32 даректи кайра бөлүштүрүү керек.
      Учурда биз кластерди конфигурациялай элекпиз, бирок бизде FQDN же IP аркылуу өзүнчө туташтырылган VPN шлюздары бар.

    ASA VPN Load-Balancing кластерин жайылтуу

    Биринчи ASAнын маршруттук таблицасында туташкан кардарды көрөбүз:

    ASA VPN Load-Balancing кластерин жайылтуу

    Биздин бүт VPN кластерибиз жана бүт корпоративдик тармак кардарыбызга маршрутту билиши үчүн, биз кардар префиксин динамикалык маршрутташтыруу протоколуна кайра бөлүштүрөбүз, мисалы OSPF:

    !
    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

    Эми бизде экинчи ASA-2 шлюзунан кардарга маршрут бар жана кластердин ичиндеги ар кандай VPN шлюздарына туташкан колдонуучулар, мисалы, корпоративдик программалык телефон аркылуу түз байланыша алышат, ошондой эле колдонуучу сураган ресурстардан трафикти кайтара алышат. каалаган VPN шлюзуна келиңиз:

    ASA VPN Load-Balancing кластерин жайылтуу

  5. Келгиле, Load-Balancing кластерин конфигурациялоого өтөлү.

    192.168.31.40 дареги Виртуалдык IP катары колдонулат (VIP - бардык VPN кардарлары алгач ага туташат), бул даректен Мастер кластер аз жүктөлгөн кластер түйүнүнө REDIRECT жасайт. Жазганды унутпаңыз алдыга жана артка DNS жазуу кластердин ар бир түйүнүнүн ар бир тышкы дареги / FQDN үчүн да, VIP үчүн да.

    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)#

    • Биз эки туташкан кардар менен кластердин ишин текшеребиз:

    ASA VPN Load-Balancing кластерин жайылтуу

    • ASDM аркылуу автоматтык түрдө жүктөлгөн AnyConnect профили менен кардар тажрыйбасын ыңгайлуураак кылалы.

    ASA VPN Load-Balancing кластерин жайылтуу

    Биз профилди ыңгайлуу жол менен атайбыз жана аны менен биздин топтук саясатты байланыштырабыз:

    ASA VPN Load-Balancing кластерин жайылтуу

    Кардардын кийинки туташуусунан кийин, бул профиль автоматтык түрдө жүктөлүп алынат жана AnyConnect кардарына орнотулат, андыктан туташуу керек болсо, жөн гана аны тизмеден тандаңыз:

    ASA VPN Load-Balancing кластерин жайылтуу

    Биз бул профилди ASDM аркылуу бир гана ASAда түзгөндүктөн, кластердеги башка ASAлардагы кадамдарды кайталоону унутпаңыз.

корутундусу: Ошентип, биз тез арада жүктү автоматтык балансташтыруу менен бир нече VPN шлюздарынын кластерин жайгаштырдык. Жаңы ASAv виртуалдык машиналарын жайгаштыруу же аппараттык ASAларды колдонуу аркылуу жөнөкөй горизонталдуу масштабдоо менен кластерге жаңы түйүндөрдү кошуу оңой. өзгөчөлүктөргө бай AnyConnect кардары аркылуу коопсуз алыскы байланышты жакшыртат Поза (мамлекеттик баа), эң натыйжалуу борборлоштурулган башкаруу жана мүмкүндүк эсепке алуу системасы менен бирге колдонулат Identity Services Engine.

Source: www.habr.com

Комментарий кошуу