Развертывание ASA VPN Load-Balancing кластера

    В данной статье я бы хотел привести пошаговую инструкцию того как можно быстро развернуть самую масштабируемую на текущий момент схему Remote-Access VPN доступа на базе AnyConnect и Cisco ASAVPN Load Balancing Cluster.


    Введение: Многие компании во всем мире ввиду текущей обстановки с COVID-19 предпринимают усилия по переводу своих сотрудников на удаленный режим работы. Ввиду массовости перехода на удаленную работу, критическим образом возрастает нагрузка на имеющиеся VPN шлюзы компаний и требуется очень быстрая возможность их масштабирования. С другой стороны, многие компании вынуждены второпях осваивать с нуля такое понятие как удаленная работа.


    Для того чтобы помочь бизнесу реализовать в кратчайшие сроки удобный, безопасный и масштабируемый доступ VPN для сотрудников, компания Cisco предоставляет на срок до 13 недель лицензии на многофункциональный SSL-VPN клиент AnyConnect. Также можно взять ASAv на тест (Виртуальная ASA для гипервизоров VMWare/Hyper-V/KVM и облачных платформ AWS/Azure) у авторизованных партнеров или обратившись к работающим с Вами представителям Cisco.


    Процедура выписки лицензий AnyConnect COVID-19 описана тут.


    Я подготовил пошаговую инструкцию простого варианта развертывания VPN Load-Balancing кластера как наиболее масштабируемой технологии VPN.


    Нижеуказанный пример будет довольно простым с точки зрения применяемых алгоритмов аутентификации и авторизации, но будет хорошим вариантом для быстрого старта (чего сейчас очень многим не хватает) с возможностью углубленной адаптации под свои нужды в процессе развертывания.


    Краткие сведения: Технология VPN Load Balancing Cluster это не failover и не функция кластеризации в её нативном понимании, данной технологией можно объединять совершенно различные модели ASA (с определенными ограничениями) с целью балансировки нагрузки Remote-Access VPN соединений. Cинхронизация сессий и конфигураций между нодами такого кластера отсутствует, зато возможна автоматическая балансировка нагрузки VPN соединений и обеспечение отказоустойчивости соединений VPN пока не останется хотя бы одной активной ноды в кластере. Нагрузка в кластере балансируется автоматически в зависимости от загруженности нод по количеству VPN сессий.


    Для отказоустойчивости конкретных нод кластера (если это требуется) можно применять файловер, таким образом, активное соединение будет обрабатываться Primary нодой файловера. Файловер не является необходимым условием обеспечения отказоустойчивости внутри Load-Balancing кластера, сам кластер в случае отказа ноды переведет сессию пользователя на другую живую ноду, однако без сохранения статуса соединения, что как раз обеспечивается файловером. Соответственно можно при необходимости комбинировать эти две технологии.


    VPN Load-Balancing кластер может содержать больше двух нод.


    VPN Load-Balancing кластер поддерживается на ASA 5512-X и выше.


    Поскольку каждая ASA в рамках VPN Load-Balancing кластера является независимой единицей с точки зрения проводимых настроек, то все этапы конфигурации мы проводим индивидуально на каждом отдельном устройстве.


    Подробности технологии тут


    Логическая топология приведенного примера:



    Первичное развертывание:


    1. Разворачиваем из образа экземпляры ASAv нужных нам шаблонов (ASAv5/10/30/50).


    2. Назначаем интерфейсы INSIDE/OUTSIDE на одинаковые VLAN (Outside в своем VLAN, INSIDE в своем, но общем в рамках кластера см. топологию), важном чтобы интерфейсы одного типа находились в одном L2 сегменте.


    3. Лицензии:


      • На момент установка ASAv не будет иметь никаких лицензий и будет ограничена производительностью 100кбит/сек.
      • Для установки лицензии Вам необходимо сгенерировать токен в Вашем кабинете Smart-Account: https://software.cisco.com/ -> Smart Software Licensing
      • В открывшемся окне после нажмите кнопку New Token
      • Убедитесь, что в открывшемся окне имеется активно поле и установлена галочка Allow export-controlled functionality… Без данного поля активного Вы не сможете использовать функции сильного шифрования и соответственно VPN. Если данное поле не активно, пожалуйста обратитесь к Вашей аккаунт-команде с запросом активации.
      • После нажатия кнопки Create Token, создастся токен, который мы будем использовать для получения лицензии на ASAv, скопируем его:
      • Повторим шаги C,D,E для каждой развернутой ASAv.
      • Для того чтобы было проще копировать токен, разрешим временно telnet. Настроим каждую ASA (пример ниже иллюстрирует настройки на ASA-1). telnet с outside не работает, если очень надо, смените security-level на 100 на outside, потом верните назад.
        !
        ciscoasa# conf t
        !
        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 сервер;
      • Заходим по telnet на наши ASA и проводим настройки для активации лицензии через Smart-Account.

      !
      ciscoasa# conf t
      !
      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>

      • Проверяем что устройство успешно зарегистрировало лицензию и опции шифрования доступны:


    4. Настраиваем базовый SSL-VPN на каждом шлюзе


      • Далее настраиваем доступ через SSH и ASDM:


        !
        ciscoasa# conf t
        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 Deployment Package в названии:


      • Скачанные файлы можно выложить, к примеру, на FTP сервер и закачать на каждую отдельную ASA:


      • Настраиваем ASDM и сертификат для VPN-шлюзов SSL-VPN (в продуктиве сертификат рекомендуется использовать доверенный). Установленный FQDN Виртуального адреса кластера (vpn-demo.ashes.cc), а также каждый FQDN ассоциированный с внешним адресом каждой ноды кластера должен разрешаться в внешней зоне DNS на IP адрес интерфейса OUTSIDE (либо на mapped адрес, если используется проброс порта udp/443 (DTLS) и tcp/443(TLS)). Детальная информация по требованиям к сертификату указана в разделе Certificate Verification документации.
        Ниже я приведу два примера настройки сертификатов шлюза


        • Self-Signed (крайне не рекомендуется в продуктиве)
          !
          vpn-demo-1(config)# asdm image flash:/asdm-7131.bin
          !
          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)# ssl trust-point SELF
          !
          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               
        • Сертификат, подписанный корпоративным CA:
          • Настраиваем TrustPoint:
            !
            vpn-demo-1(config)# asdm image flash:/asdm-7131.bin
            !
            vpn-demo-1# conf t
            vpn-demo-1(config)# crypto ca trustpoint ashes-ca
            vpn-demo-1(config-ca-trustpoint)#  enrollment terminal
            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$
            vpn-demo-1(config-ca-trustpoint)#  serial-number
            vpn-demo-1(config-ca-trustpoint)#  crl configure
            ! 
          • Аутентифицируем Trustpoint, импортируя ROOT сертификат с CA:
          • Копируем сертификат
          • Вставляем его в консоль ASA в запросе аутентификации:
          • Генерируем CSR и копируем его для выписки сертификата VPN-шлюза:
          • Переходим снова в портал CA для выписки сертификата с использованием полученного CSR:
          • Выписанный сертификат в текстовом виде, копируем его:
          • Далее импортируем подписанный сертификат в консоль ASA:
          • Проверяем импортированный сертификат шлюза и root-ca:
          • Устанавливаем на использование в SSL нового TrustPoint:
            !
            vpn-demo-1(config)# ssl trust-point ashes-ca
            !

      • Для проверки работы ASDM не забывайте указывать порт, например:


      • Проведем базовые настройки туннеля:


        • Сделаем доступным через туннель корпоративную сеть, а интернет пустим напрямую (не самый безопасный метод при отсутствии средств защиты на подключаемом хосте, возможно проникновение через зараженный хост и вывод корп. данных, опция split-tunnel-policy tunnelall пустит весь трафик хоста в туннель. Тем не менее Split-Tunnel дает возможность разгрузить шлюз VPN и не обрабатывать трафик Интернета хоста)
        • Выдадим хостам в туннель адреса из подсети 192.168.20.0/24 (пул с 10 по 30 адресов (для ноды #1)). На каждой ноде кластера VPN пул должен быть свой.
        • Проведем базовую аутентификацию локально созданным пользователем на ASA (Так делать не рекомендуется, это самый простой метод), лучше делать аутентификацию через LDAP/RADIUS, а еще лучше привязать Multi-Factor Authentication (MFA), например Cisco DUO.
          !
          vpn-demo-1(config)# http redirect outside 80
          !
          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)# 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
          !

      • (ОПЦИОНАЛЬНО): В вышеприведенном примере мы использовали локального пользователя на МСЭ для аутентификации удаленных пользователей, что конечно, кроме как в лаборатории слабо применимо. Я приведу пример того, как быстро адаптировать настройку для аутентификации на RADIUS сервере, для примера использован Cisco Identity Services Engine:


        !
        vpn-demo-1(config)# aaa-server RADIUS protocol radius
        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, понимать корпоративное это устройство или личное и проводить оценку состояния подключаемого устройства.


      • Сделаем настройку Transparent NAT чтобы трафик между клиентом и ресурсами сети корпоративной сети не натировался:


        !
        vpn-demo-1(config)# object network vpn-users
        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, а также выходить через тот же интерфейс OUTSIDE, откуда они соединяются нужно сделать следующие настройки


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

      • Крайне важно при использовании кластера дать возможность внутренней сети понять на какую ASA маршрутизировать обратный трафик к пользователям, для этого необходимо нужно сделать редистрибьюцию маршрутов /32 адресов, выдаваемых клиентам.
        На текущий момент кластер мы еще не настраивали, но у нас уже есть работающие VPN шлюзы, к которым можно индивидуально подключиться по FQDN или IP.

        Мы видим подключенного клиента в таблице маршрутизации первой ASA:

        Чтобы весь наш VPN кластер и вся корпоративная сеть знала маршрут до нашего клиента, проведем редистрибьюцию клиентского префикса в протокол динамической маршрутизации, к примеру OSPF:


        !
        vpn-demo-1(config)# access-list VPN-REDISTRIBUTE standard permit 192.168.20.0 255.255.255.0 
        !
        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 шлюз:



    5. Переходим к настройке Load-Balancing кластера.
      Адрес 192.168.31.40 будет использоваться как Virtual IP ( VIP — к нему будут первично соединяться все VPN клиенты), с этого адреса Master кластера будет делать REDIRECT на менее загруженную ноду кластера. Не забудьте прописать прямую и обратную DNS запись как для каждого внешнего адреса/FQDN каждой ноды кластера, так и для VIP.


      !
      vpn-demo-1(config)# crypto ikev1 enable inside
      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)# 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)#

      • Проверяем работу кластера с двумя подключенными клиентами:
      • Сделаем опыт работы клиента более удобным с автоматически загружаемым профилем AnyConnect через ASDM.

        Называем профиль удобным образом и ассоциируем нашу групповую политику с ним:

        После следующего подключения клиента данный профиль будет автоматически скачан и установлен в AnyConnect клиент, таким образом останется при необходимости подключения просто выбрать его из списка:

        Поскольку, используя ASDM мы создали этот профиль только на одной ASA, не забудьте повторить действия на остальных ASA кластера.


    Вывод: Таким образом, мы быстро развернули кластер из нескольких VPN шлюзов с автоматической балансировкой нагрузки. Добавить новые ноды к кластеру не составляет труда, получив простое горизонтальное масштабирование путем развертывания новых виртуальных машин ASAv или использования аппаратных ASA. Многофункциональный клиент AnyConnect может сильно расширить возможности безопасного удаленного подключения с использованием функции Posture (оценки состояния), наиболее эффективно применяемой совместно с системой централизованного контроля и учета доступа Identity Services Engine.

    Cisco
    Cisco – мировой лидер в области сетевых технологий

    Комментарии 24

      0
      Интересно, а была бы кому-нибудь интересна статья как можно на имеющемся железе в кратчайшие сроки развернуть удаленный доступ в корпоративную сеть?
      Причем бесплатно, без СМС и за 15 минут.
        0
        У каждого админа есть свой любимый скрипт инсталла и настройки OpenVPN или проброса ssh.
        У меня после прочтения данной статьи вопросы по производительности такой схемы.
        А также вопрос, как масштабировать горизонтально, если более одного аплинка?
          0
          Согласно рекомендуемого дизайна все аплинки от провайдеров приходят на маршрутизаторы периметра, которые терминируют BGP, отлеживают оптимальной входящего и исходящего трафика, балансировку нагрузки на каналы. Соответственно интерфейсы ASA находятся на Outside в поле адресного пространства и автономной системы принадлежащего заказчику.
          Масштабирование ограничено лишь суммарной производительностью нод кластера, может держать многие тысячи VPN соединений.
            0
            Почему начальные условия — схема сети — не выложена в шапку поста?
            Теперь подсчитайте бюджет такого решения для обслуживания, например 500Kpps шифрованного трафика.
            А потом я покажу бюджет решения на PC x86.
            Для экстрималов, можете поиграться с Mikrotik, на скольки десятках Мбит шифрованного траффика он «сдуется».
              0

              Схема сети чисто лабораторная. Изначальные условия и требования выложены по ссылке в начале поста. Данная статья дает возможность в условиях «пожара» быстро развернуть удаленный доступ для тысяч сотрудников. В Cisco множество технологий и возможностей построения Remote-Access VPN и описанная схема не является универсальным решением на все случаи жизни, она является самой масштабируемой тем не менее. Я наше оборудование Cisco как у реальных заказчиков вижу как работает под нагрузкой, так и в специализированных лабораториях тестирую на нагрузке, свои цифры производительности оно показывает. Попробуйте на Микротике с десяток тысяч VPN пользователей активных затерминировать активно работающих.
              Повторюсь, эта схема для больших и очень больших развертываний VPN. Для большинства подойдут схемы сильно более простые.

                0
                описанная схема не является универсальным решением на все случаи жизни, она является самой масштабируемой тем не менее

                То есть FirePower до сих пор не годится на замену ASA?
                  0
                  В текущей ситуации когда у заказчиков оказались дико перегружены VPN шлюзы я постарался в режиме «пожарного» реагирования написать инструкцию, которая бы ложилась в рамки нашей текущей возможности быстро выписать триалы на ASAv и AnyConnect для оперативного решения проблемы с Remote-Access VPN.
                  Конечно можно и на FTD развернуть VPN, но проблема именно в конкретной ситуации, никто (большинство) не планировал емкость своих концентраторов на вот такой сценарий «удаленки» COVID-19. Так как можем быстро выписать ASAv, вот и инструкция под него…
            0
            Каждому умному админу по SSH-Proxy и NGFW. )
              –1
              Не спасибо, NGFW вы оставьте себе пользоваться, а мы будем использовать решения с открытым кодом.
                0

                Я сам большой фанат решений с открытым кодом, только вот в большой корпорации такой подход не работает.

                  0
                  В большой корпорации обычно безопасники прописывают ТЗ. С них потом и спрос за утечки.
          0

          Дмитрий, спасибо, классно!
          Небольшое уточнение, для ASAv не надо дополнительно скачивать/устанавливать ASDM, он уже там есть в основном образе. Во flash его не видно, но он есть.


          Еще раз благодарю за подробное описание!

            0
            Спасибо, а я по привычке всегда заливаю! Век живи век учись!)
            0
            К сожалению, Cisco DUO пока в России не продаётся. Можно ли интегрировать другую систему MFA, например Google Authenticator?
              0
              Можно, я лично несколько раз собирал стенды где интегрировал OpenOTP и MFA Google Authenticator/Authy.
              0
              Все хорошо, а где софт то брать? Скачать не даёт с cisco.com
                0
                Обратитесь к своей аккаунт-команде Cisco, выложим и ASAv и AnyConnect.
                  0
                  Я узнал про существование аккаунт-менеджере после размещения заказа на миллион рублей, до этого он никак себя не проявлял, хотя в течении пары лет меньшими заказами купили железок и софта на несколько миллионов.
                0
                Во всем этом великолепии возникает только один вопрос — что делать с теми пользователями у которых адрес при подключении назначается статически из тех данных, что прописаны в учетке AD, ведь на различных нодах кластера пулы свои.
                Отправлять их на конкретный узел где для таких бедололаг настроен пул? Объявлять их хостовые маршруты при подключении по какому нибудь протоколу маршрутизации? или есть какое то более красивое решение?
                  0
                  Ну и это легко решить, авторизуйте клиентов на радиусе с назначением выдаваемого адреса атрибутом IETF-Radius-Framed-IP-Address.
                  Подробнее можно почитать здесь в разделе Enforcing Static IP Address Assignment for AnyConnect Tunnels, а ISE в свою очередь может читать этот параметр из LDAP как динамический атрибут о чем рекомендую посмотреть здесь.
                    0
                    То что легко выдать статический адрес с радиуса — это понятно.
                    Вопрос в том, что на различных нодах ВПН кластера используется свой уникальный пул, а куда подключается пользователь в случае коннекта к кластеру — зависит от нагрузки шлюзов и далеко не факт, что он попадет на железку, на которой настроен пул в который входит его статический адрес.
                    Собственно отсюда и вопрос — как правильно выдавать статику в случае настроенного VPN кластера. Варианты которые вижу я описал в своем первом комментарии. Может вендор скажет как правильно?
                      0
                      Назначаемый Вами через Radius атрибут IETF-Radius-Framed-IP-Address адрес не обязан входить в настроенный на шлюзе пул.
                  0
                  Дмитрий, добрый день! Спасибо за статью!
                  Я правильно понял, что бы сделать такой LB кластер как минимум «внешние» интерфейсы должны быть в одной сети? Есть ли возможность собрать кластер когда ноды находятся в разных датацентрах, с разными IP адресами?
                  + как быть в случае NAT, когда внешний интерфейс ASA спрятан за другим файрволлом, например? Что указывать в качестве VIP адреса? Публичнный или внутренний?
                  Спасибо!
                    0
                    Добрый день.
                    L2 сегмент должен быть единый для внутренних интерфейсов и отдельный L2 сегмент для внешних интерфейсов. Таким образом, если растянуть L2 на разные ЦОД нет возможности, то надо организовывать несколько кластеров. Завтра в рамках CiscoClub буду рассказывать.
                    По поводу NAT, есть соответствующая настройка в рамках блока конфигурации vpn load-balancing, называется она собственно nat, и дает возможность задать адрес как IPv4, так и IPv6 при использовании NAT на вышестоящем устройстве для идентификации конкретного члена кластера.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое