Cisco AnyConnect SSL VPN: заменили IPSec-клиент и перестали объяснять VPN по телефону
Перевели удалённый доступ с IPSec-клиента на Cisco AnyConnect SSL VPN поверх ASA 5500. Работает за NAT, не требует прав администратора, поддерживает Windows и Mac.
Cisco ASA 5500 Series с SSL VPN AnyConnect становится стандартом для удалённого доступа в корпоративной среде
Несколько месяцев назад у одного из клиентов накопилась типичная боль: удалённый доступ работает, но плохо. Cisco VPN Client под IPSec - классика, надёжная схема, мы сами её ставили ещё пару лет назад. Только вот сотрудники периодически не могут подключиться из гостиниц, домашних роутеров и офисов заказчиков - потому что провайдер или промежуточное NAT-устройство режет UDP 500 или ESP-пакеты. Каждый раз - звонок в поддержку. Каждый звонок - объяснение одного и того же: «попробуй перезагрузить, попробуй с телефонной точки доступа, а какой у тебя роутер дома».
Поддержка в итоге попросила что-то с этим сделать.
Почему SSL VPN решает конкретно эту проблему
IPSec работает на сетевом уровне и требует, чтобы между клиентом и сервером нормально проходил протокол ESP (IP 50) или UDP 500/4500 при NAT-T. Корпоративные файрволы и гостиничные роутеры с этим справляются не всегда - фильтруют, не транслируют, или просто не умеют. Разобраться почему именно в данном конкретном отеле не работает - можно, но это каждый раз отдельный квест.
SSL VPN поверх HTTPS - это TCP 443. Порт, который открыт практически везде, где есть интернет. Промежуточные NAT-устройства с ним справляются, потому что умеют транслировать обычный веб-трафик. Технически это другой слой - туннель инкапсулируется внутрь TLS-сессии - но с точки зрения промежуточной сети выглядит как HTTPS-соединение к серверу.
Именно это и стало главным аргументом в пользу перехода, а не маркетинг или желание попробовать новое.
Что поставили и как это устроено
У клиента стояла ASA 5510 - подходящая платформа, нужна была только соответствующая лицензия AnyConnect. Cisco ASA 5500 поддерживает SSL VPN через AnyConnect начиная с 8.x, у нас был 8.2 - вполне рабочий вариант.
Схема работы такая: пользователь заходит браузером на веб-интерфейс ASA по HTTPS, скачивает небольшой клиент AnyConnect, тот устанавливается и устанавливает туннель. При последующих подключениях клиент запускается напрямую, без браузера. При наличии новой версии - обновляется автоматически с ASA. Администратор обновляет пакет на ASA один раз, клиенты получают новую версию сами при следующем подключении.
Несколько деталей, которые оказались важными при внедрении:
- Установка без прав администратора. AnyConnect умеет ставиться в режиме web-deploy с временным повышением привилегий через ActiveX или Java - пользователю не нужны локальные права администратора для первоначальной установки. Это сняло отдельный класс проблем: у части сотрудников рабочие ноутбуки без прав администратора, и с Cisco VPN Client они вообще не могли установить клиент самостоятельно.
- Поддержка Mac OS X. Cisco VPN Client под Mac всегда был отдельной историей - версии отставали, совместимость с обновлениями OS X была непредсказуемой. AnyConnect поставляется для Mac в том же пакете на ASA, никаких отдельных телодвижений.
- Split tunneling настроили: через VPN ходит только корпоративный трафик по нужным подсетям, остальной интернет идёт напрямую. Без этого у пользователей с медленными домашними каналами будет замедление всего браузера.
- Аутентификация через AD. ASA подключается к LDAP, пользователи вводят доменный логин и пароль. Никаких отдельных учёток для VPN, никакой синхронизации паролей вручную.
Что изменилось после перехода
Первая неделя показала: звонки в поддержку по теме «VPN не подключается из-за сети» прекратились. Не снизились - именно прекратились. Несколько сотрудников, которые вообще не могли работать удалённо из командировок, теперь подключаются без проблем.
Один момент, который поначалу вызвал вопросы: при первом подключении браузер показывает диалог загрузки, и часть пользователей не понимала, что делать. Пришлось написать короткую инструкцию на одну страницу со скриншотами. После этого вопросов не было.
На Windows XP в редких случаях Java-апплет для начальной установки ведёт себя странно - помогает предварительно включить Java в браузере. Мелочь, но стоит иметь в виду при развёртывании.
Что с безопасностью
Переход на SSL VPN не означает, что безопасность хуже - шифрование TLS с нормальными настройками (AES-256, сильные cipher suites) даёт вполне достаточный уровень. На ASA мы ограничили слабые cipher suites и настроили минимальную версию TLS. Сертификат - от корпоративного CA клиента, пользователи видят доверенный сертификат без предупреждений браузера.
Дополнительно настроили группы подключения: разные сотрудники попадают в разные group-policy с разными ACL. Бухгалтерия видит свой сегмент, разработчики - свой. Это было возможно и с IPSec, но в AnyConnect/ASA настраивается несколько удобнее через group-policy и dynamic access policies.
Итог на сегодня
Прошло несколько недель после миграции. Клиент доволен - не потому что мы убедительно объяснили преимущества SSL VPN, а потому что поддержка перестала получать звонки про VPN. Это понятный и измеримый результат.
IPSec site-to-site между площадками остался как был - там он работает нормально и менять его смысла нет. Замена коснулась только remote access. Инфраструктура удалённого доступа в рамках сопровождения - это именно тот класс задач, где правильный выбор протокола и клиента напрямую влияет на количество инцидентов.