Вы здесь

Безопасность. Начало 08. SSL VPN

В настоящее время существует два типа пользовательских VPN:
SSL VPN и IPSec VPN и каждая из них имеет свои преимущества и недостатки.

Основное преимущество SSL VPN есть простота его внедрения: все браузеры поддерживают SSL, все провайдеры пропускают и не ограничивают SSL.
Некоторые виды доступа через SSL VPN можно осуществить буквально любым браузером и на любой платформе.

IPSec VPN считается более безопасным протоколом.

SSL и TLS

Очень часто в технической литературе можно встретить понятия SSL и TLS.

Оба протокола являются cryptographic protocols, обеспечивающие безопасную передачу данных поверх интернет(e-mail, web browsing, instant messaging).
Протоколы обеспечивают confidentiality, integrity, authentication services.
SSL и TLS работают на уровне Session Layer модели OSI или выше.
Протоколы могут использовать public key infrastructure (PKI) а также сертификаты для аутентификации и передачи друг другу симметричных ключей.
Также как и IPSec для шифрования данных они используют симметричные ключи.

Большинство безопасных передач на браузере производятся через SSL или TLS.
Изначально появился SSL, его разработала компания Netscape.
TLS является дальнейшим развитием SSL, а также стандартом, разработанным Internet Engineering Task Force (IETF).
Например TLS 1.0 основан на SSL3.0.
Что конкретно использовать SSL или TLS решают сами браузеры: предпочтителен TLS но возможно переключение и на SSL.
bezopasnost._nachalo_07._ssl_vpn_02_ciscomaster.ru.jpg

Таким образом, важно понимать, что используя термин SSL мы подразумеваем SSL или TLS.
К примеру Cisco SSL VPN реально использует TLS.

Операции SSL

Итак, SSL используется в большинстве онлайновых сервисах, требующих безопасности.
Давайте рассмотрим пошагово, что происходит когда клиент подключается к банковскому серверу, использующему SSL:

  • Клиент инициализирует подключение к серверу на его IP адрес и порт 443. В качестве источника используется соответственно IP клиента и порт выше чем 1023
  • Происходит стандартный процесс TCP подключения, использующий three-way handshake
  • Клиент запращивает подключение по SSL и сервер отвечает высылая свой digital certificate, который содержит public key этого сервера.
  • Получив сертификат, клиент должен решить: доверять этому сертификату или нет.
    Здесь начинают работать механизмы PKI.
    Если digital certificate подписан CA, которой клиент доверяет + сертификат валидный по дате + серийник сертификата не числится в certificate revocation list (CRL) - клиент может доверять сертификату и использовать public key этого сертификата.
  • Клиент генерирует симметричный ключ shared secret, который будет использоваться для шифрования данных между клиентом и сервером. Далее клиент шифрует shared secret с использованием public key и передает это серверу.
  • Сервер, используя свой private key, расшифровывает полученный симметричный ключ shared secret.
  • Обе стороны теперь знают shared secret и могут шифровать SSL Session.

Типы SSL VPN

SSL VPN можно разделить на два вида:

  • Clientless SSL VPN - также называется Web VPN. Не требует установки клиента. Ограниченные возможности.
  • Full Cisco AnyConnect Secure Mobility Client SSL VPN Client - полноценный SSL клиент, требующий установки на клиента ПО, обеспечивающее полноценный доступ к корпоративной сети

Настройка SSL VPN

  1. Копируем файл Anyconnect PKG.
    В нашем случае это anyconnect-win-3.1.08009-k9.pkg
  2. Указываем на файл pkg, и включаем сервис Webvpn Anyconnect service.
    webvpn anyconnect image disk0:/anyconnect-win-3.1.08009-k9.pkg 1 enable outside2 anyconnect enable
  3. Исключаем (exempt) трафик SSL WebVPN от проверок на outside interface ACL. Нам нужно либо сделать в ACL правила permit, либо использовать команду:
    msk-asa-01(config)# sysopt connection permit-vpn
  4. Для удобства настроим перенаправление с 80 на 443:
    http redirect outside2 80
  5. Создадим IP address pool. Эти адреса будут выдаваться удалённым пользователям.
    ip local pool vpnpool_pool 192.168.93.10-192.168.93.254 mask 255.255.255.0
  6. Создаём NAT exemption для трафика между LAN Network и сетью vpnpool. Мы делаем данное исключение, поскольку шифрованный трафик не должен проходить через NAT. Данный шаг необходим в случае если на ASA настроен этот NAT.
    object network vpnpool_obj
    object network vpnpool_obj subnet 192.168.92.0 255.255.255.0 object-group network RFC1918_objg network-object 192.168.0.0 255.255.0.0 network-object 172.16.0.0 255.240.0.0 network-object 10.0.0.0 255.0.0.0 nat (inside,outside) source static RFC1918_objg RFC1918_objg destination static vpnpool_obj vpnpool_obj no-proxy-arp route-lookup
  7. Создаём Split-Tunnel ACL, данная настройка позволит пользователям при подключении по VPN одновременно пользоваться интернетом. Без этой настройки в туннель будет заворачиваться весь трафик.
    access-list split-tunnel_acl standard permit 192.168.10.0 255.255.255.0

    Данная настройка будет заворачивать в туннель только трафик в сети той же RFC1918.

  8. Создаём Group Policy.
    Мы можем создать несколько Group Policy, и в каждой настроить сетевые атрибуты типа DNS server addresses, split-tunneling settings, default domain, протокол(SSL или IPSec) и т.д.
    group-policy anyconnect_gp internal group-policy anyconnect_gp attributes dns-server value 192.168.10.5 vpn-tunnel-protocol ssl-client ssl-clientless split-tunnel-policy tunnelspecified split-tunnel-network-list value split-tunnel_acl webvpn anyconnect keep-installer installed anyconnect dpd-interval client 20 anyconnect ask none default anyconnect
  9. Создадим Tunnel Group.
    Tunnel Group в интерфейсе ASDM называется как Connection Profile.
    Tunnel Group должна в себя включать только что нами настроенную Group Policy и объединяет её с IP address pool.
    Мы можем создать несколько таких групп, а пользователь при логине может выбрать для себя нужную Tunnel Group со всеми нужными характеристиками: наследуемые параметры из Group Policy + address-pool
    tunnel-group vpn-users_tg type remote-access tunnel-group vpn-users_tg general-attributes address-pool vpnpool_pool default-group-policy anyconnect_gp tunnel-group vpn-users_tg webvpn-attributes group-alias vpn_users-alias enable webvpn tunnel-group-list enable

    Последняя команда позволяет пользователям выбирать для себя tunnel-group.
    Для пользователей данная группа будет выглядеть с именем "vpn_users-alias"

Anyconnect уже должно заработать, - можно заходить под админской учёткой.

Мониторинг SSL VPN

  • ASDM: Monitoring > VPN > VPN Statistics > Sessions
  • Из CLI:
    vpn# show uauth Current Most Seen Authenticated Users 1 1 Authen In Progress 0 0 remote access VPN user 'vpn_video_user1' at 192.168.92.25, authenticated access-list #ACSACL#-IP-video_dacl-54ddc357 (*)
    vpn# show access-list access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096) alert-interval 300 access-list split-tunnel_acl; 1 elements; name hash: 0xb6fb0e access-list split-tunnel_acl line 1 standard permit 192.168.10.0 255.255.255.0 (hitcnt=0) 0x13482529 access-list #ACSACL#-IP-video_dacl-54ddc357; 1 elements; name hash: 0x6c7d7b7f (dynamic) access-list #ACSACL#-IP-video_dacl-54ddc357 line 1 extended permit ip any4 host 192.168.10.45 (hitcnt=0) 0x4ce5deb8

    Смотрим кто залогинен

    show vpn-sessiond summary
    show vpn-sessiond anyconnect

    Выкинуть юзера из впн:

    vpn-sessiondb logoff name langemakj

Debug SSL VPN

debug webvpn anyconnect

Tags: 

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image