Распоредување на ASA VPN кластер за балансирање на оптоварување
Во оваа статија би сакал да дадам чекор-по-чекор инструкции за тоа како можете брзо да ја распоредите најскалабилната шема во моментот VPN со далечински пристап базиран на пристап AnyConnect и Cisco ASA - Кластер за балансирање на оптоварување VPN.
Вовед: Многу компании ширум светот, поради моменталната ситуација со СОВИД-19, прават напори да ги префрлат своите вработени на работа од далечина. Поради широко распространетата транзиција кон работа на далечина, оптоварувањето на постоечките VPN порти на компаниите критично се зголемува и потребна е многу брза способност за нивно зголемување. Од друга страна, многу компании се принудени набрзина да го совладаат концептот за работа од далечина од нула.
Подготвив чекор-по-чекор инструкции за едноставна опција за распоредување на кластер за балансирање на оптоварување VPN како најскалабилна VPN технологија.
Примерот подолу ќе биде прилично едноставен од гледна точка на користените алгоритми за автентикација и авторизација, но ќе биде добра опција за брз почеток (што е нешто што сега им недостасува на многу луѓе) со можност за длабинска адаптација на вашите потреби за време на процесот на распоредување.
Кратки информации: Технологијата на кластер за балансирање на оптоварување на VPN не е неуспешна функција или функција за кластерирање во нејзината природна смисла; оваа технологија може да комбинира сосема различни модели на ASA (со одредени ограничувања) со цел да се вчитаат рамнотежа VPN конекции за далечински пристап. Нема синхронизација на сесии и конфигурации помеѓу јазлите на таков кластер, но можно е автоматски да се вчитаат балансирани VPN конекции и да се обезбеди толеранција на грешки на VPN конекциите додека барем еден активен јазол не остане во кластерот. Оптоварувањето во кластерот се балансира автоматски во зависност од обемот на работа на јазлите според бројот на VPN сесии.
За толеранција на грешки на специфични јазли на кластерот (ако е потребно), можете да користите датотека за датотеки, така што активната врска ќе биде обработена од Примарниот јазол на датотеката. Префрлањето на датотеки не е неопходен услов за да се обезбеди толеранција на грешки во кластерот Load-Balancing; во случај на дефект на јазолот, самиот кластер ќе ја префрли корисничката сесија на друг жив јазол, но без одржување на статусот на врската, што е токму она што датотеката обезбедува. Според тоа, овие две технологии може да се комбинираат доколку е потребно.
Кластерот за балансирање на оптоварување VPN може да содржи повеќе од два јазли.
Кластерот за балансирање на оптоварување VPN е поддржан на ASA 5512-X и повисоко.
Бидејќи секој ASA во кластерот VPN Load-Balancing е независна единица во однос на поставките, ние ги извршуваме сите чекори за конфигурација поединечно на секој поединечен уред.
Ние распоредуваме ASAv примероци од шаблоните што ни се потребни (ASAv5/10/30/50) од сликата.
Доделуваме интерфејси INSIDE/OUTSIDE на истиот VLAN (Надвор во сопствен VLAN, ВНАТРЕ во свој, но вообичаен во кластерот, видете ја топологијата), важно е интерфејсите од ист тип да се наоѓаат во истиот L2 сегмент.
Лиценци:
Во моментот на инсталацијата, ASAv нема да има никакви лиценци и ќе биде ограничен на 100 kbit/sec.
За да инсталирате лиценца, треба да генерирате токен во вашата сметка на Smart-Account: https://software.cisco.com/ -> Лиценцирање за паметен софтвер
Во прозорецот што се отвора, кликнете на копчето Нов токен
Проверете дали полето во прозорецот што се отвора е активно и полето за избор е означено Дозволете функционалност контролирана од извоз... Без ова активно поле, нема да можете да користите силни функции за шифрирање и, соодветно, VPN. Ако ова поле не е активно, ве молиме контактирајте го тимот на вашата сметка за да побарате активирање.
По притискање на копчето Создадете знак, ќе се создаде токен што ќе го користиме за да добиеме лиценца за ASAv, копирајте го:
Ајде да ги повториме чекорите C, D, E за секој распореден ASAv.
За да го олесниме копирањето на токенот, ајде привремено да овозможиме телнет. Ајде да ја конфигурираме секоја ASA (примерот подолу ги илустрира поставките на ASA-1). телнет од надвор не работи, ако навистина ти треба, смени го безбедносното ниво на 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>
Проверуваме дали уредот успешно регистрирал лиценца и дали се достапни опции за шифрирање:
Конфигурирање на основниот 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, во мојот случај тоа е следнава датотека:
За да работи клиентот AnyConnect, треба да преземете слика на секоја ASA за секој употребен десктоп оперативен систем на клиент (планиран да користи Linux/Windows/MAC), ќе ви треба датотека со Пакет за распоредување на Headend Во насловот:
Преземените датотеки може да се подигнат, на пример, на FTP сервер и да се подигнат на секој поединечен ASA:
Конфигурираме ASDM и Self-Signed сертификат за SSL-VPN (се препорачува да се користи доверлив сертификат во производството). Воспоставениот FQDN на виртуелната адреса на кластерот (vpn-demo.ashes.cc), како и секој FQDN поврзан со надворешната адреса на секој јазол на кластерот мора да се реши во надворешната DNS зона до IP адресата на интерфејсот OUTSIDE (или до мапираната адреса ако се користи препраќање порта 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, не заборавајте да ја наведете портата, на пример:
Ајде да ги извршиме основните поставки на тунелот:
Ќе ја направиме корпоративната мрежа достапна преку тунел и ќе го поврземе интернетот директно (не е најбезбедниот метод во отсуство на безбедносни мерки на поврзувачкиот хост, можно е да се навлезе преку заразен домаќин и да се излезат корпоративни податоци, опција Сплит-тунел-политика тунел ќе го овозможи целиот сообраќај на домаќинот во тунелот. Сепак Сплит-тунел овозможува да се ослободи портата VPN и да не се обработува интернет сообраќајот на домаќинот)
Ќе издадеме хостови во тунелот со адреси од подмрежата 192.168.20.0/24 (базен од 10 до 30 адреси (за јазол #1)). Секој јазол во кластерот мора да има сопствен VPN базен.
Ајде да извршиме основна автентикација со локално креиран корисник на ASA (Ова не се препорачува, ова е наједноставниот метод), подобро е да се направи автентикација преку LDAP/RADIUS, или уште подобро, вратоврска Повеќефакторска автентикација (MFA), На пример, Cisco DUO.
(ИЗБОРЕН): Во горниот пример, користевме локален корисник на заштитниот ѕид за автентикација на далечински корисници, што секако е од мала корист освен во лабораторија. Ќе дадам пример за тоа како брзо да се прилагоди поставувањето за автентикација РАДИУС сервер, користен на пример Мотор за услуги за идентитет на Cisco:
Оваа интеграција овозможи не само брзо интегрирање на постапката за автентикација со услугата AD директориум, туку и да се направи разлика дали поврзаниот компјутер припаѓа на AD, да се разбере дали е корпоративен или личен уред и да се процени состојбата на поврзаниот уред.
Ајде да го конфигурираме 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 (при користење тунел опции) користејќи PAT, а исто така излезете преку истиот интерфејс OUTSIDE од каде што се поврзани, треба да ги направите следните поставки
Исклучително е важно кога се користи кластер да се овозможи внатрешната мрежа да разбере која ASA да го насочува повратниот сообраќај до корисниците; за ова е неопходно да се прераспределат рутите /32 адреси издадени на клиентите.
Во моментов, сè уште не сме го конфигурирале кластерот, но веќе имаме работни VPN порти на кои можете индивидуално да се поврзете преку FQDN или IP.
Го гледаме поврзаниот клиент во рутирачката табела на првиот ASA:
Така што целиот наш VPN кластер и целата корпоративна мрежа ја знаат рутата до нашиот клиент, ние ќе го редистрибуираме префиксот на клиентот во динамичен протокол за рутирање, на пример OSPF:
Сега имаме рута до клиентот од втората порта ASA-2 и корисниците поврзани со различни VPN порти во кластерот можат, на пример, да комуницираат директно преку корпоративен мек телефон, исто како што ќе пристигне повратниот сообраќај од ресурсите што ги бара корисникот на саканиот VPN портал:
Ајде да продолжиме со поставувањето на кластерот Load-Balancing.
Адресата 192.168.31.40 ќе се користи како виртуелна IP (VIP - сите VPN клиенти првично ќе се поврзат со неа), од оваа адреса Cluster Master ќе се ПРЕДИРЕСИРА во помалку вчитан јазол на кластерот. Не заборавајте да се регистрирате напред и назад записи DNS и за секоја надворешна адреса/FQDN на секој јазол на кластерот, и за ВИП.
Ја проверуваме работата на кластерот со два поврзани клиенти:
Ајде да го направиме искуството на клиентот поудобно со автоматски преземен AnyConnect профил преку ASDM.
Ние го именуваме профилот на пригоден начин и ја поврзуваме нашата групна политика со него:
По следното поврзување со клиентот, овој профил автоматски ќе се преземе и инсталира во клиентот AnyConnect, па ако треба да се поврзете, само треба да го изберете од списокот:
Бидејќи со користење на ASDM го создадовме овој профил само на еден ASA, не заборавајте да ги повторите чекорите на преостанатите ASA во кластерот.
Заклучок: Така, брзо распоредивме кластер од неколку VPN порти со автоматско балансирање на оптоварување. Додавањето нови јазли во кластерот е лесно, постигнувајќи едноставно хоризонтално скалирање со распоредување на нови виртуелни машини ASAv или користење на хардверски ASA. Клиентот AnyConnect богат со функции може значително да ги подобри вашите можности за безбедно далечинско поврзување користејќи го Поза (состојба на проценки), најефективно се користи во врска со централизиран систем за контрола на пристап и сметководство Мотор за услуги за идентитет.