antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 21 Апрель , 2010

Бесклиентское подключение (только с использованием браузера) — популярная топология. Это удобно, красиво и безопасно для внутренней сети. Но через браузер возможно обеспечить только связь протоколов, которые могут работать через него: HTTP(S), CIFS. Дополнительно можно пробросить и другие приложения (тонкий клиент), но только работающие по ТСР. Для этого используется Java.

Вообще говоря, настроить базово SSL VPN на ASA можно 2 командами

webvpn
  enable {INTERFACE}

При этом для аутентификации будет использоваться локальная база данных пользователей, попадать вы будете в туннельную группу DefaultRAGroup, а групповые настройки применятся из групповой политики DfltGrpPolicy (все эти смешные названия можно увидеть, только через sh run all). При включении SSL VPN шлюз будет использовать порт TCP/443 и самоподписанный сертификат для удостоверения «личности». Понятно, что все браузеры будут ругаться на самоподписанный сертификат, ибо ему нет доверия. Если на указанном интерфейсе также используется управление по ASDM на том же порту, то оно «переедет» на зарезервированный URL
https://{IP}/admin

Дальнейший тюнинг

Можно явно задать группу, в которую будет подключаться тот или иной клиент. Для этого есть несколько возможностей:

1. Задать для каждой группы свой уникальный URL. Например, зададим для туннельной группы GUEST свой URL https://{SERVER}/myguest

tunnel-group GUEST type remote-access
tunnel-group GUEST webvpn-attributes
   group-url https://{SERVER}/myguest enable

2. Выдавать в окошке для подключения не только запрос на логин/пароль, но и меню для выбора группы, в которую мы захотим подключиться. Для этого надо явно включить это меню
webvpn
   tunnel-group-list enable

И указать, как будет называться та или иная группа

tunnel-group GUEST webvpn-attributes
   group-alias MYGUEST enable

3. Задать на конкретного пользователя привязку к туннельной группе

user guest attributes
   group-lock value {TUNNEL-GROUP}

Мне больше всего нравится group-url. Должен обратить ваше внимание на то, что данные методы работают только в случае, когда пользователь идентифицируется своим логином и паролем (так по умолчанию). Если стоит задача идентифицировать пользователя его сертификатом, то там для привязки пользователя к группе используют либо OU поля subject сертификата и сопоставляют пользователю туннельную группу с тем же названием (если не найдено соответствия, то пускают в группу по умолчанию), либо же активируют так называемые правила сопоставления (по умолчанию отключены)

Tunnel-group-map enable rules

Далее, мы можем создать свой шаблон сопоставления атрибутов сертификата

crypto ca certificate map {MAP} {#}
   subject-name {co|attr|nc|ne} {ТЕКСТ1}
   issuer-name {co|attr|nc|ne} {ТЕКСТ2}

Как видно, в шаблоне может быть несколько абзацев и сравнивать мы можем как поле subject, так и поле issuer сертификата на полное (attr) или частичное (co) совпадение или несовпадение (ne,nc)

Что мы еще можем настроить?
Мы можем задать внешний вид окошка, который видит пользователь. Вплоть до указания полностью кастомизированной страницы, которую надо положить во flash ASA. Из консоли этого не сделать, но в ASDM есть прекрасный механизм, в котором вы можете визуально контролировать все вносимые изменения. Когда все изменения будут внесены, ASDM передаст на ASA XML файл с новой кастомизацией (customization)

Мы можем указать нормальный, а не самоподписанный сертификат. Сделать это можно, указав тот сервер сертификатов (trust-point), чей сертификат вы будете отсылать клиенту. Если этот сертификат имеет имя, которое разрешается в DNS, а также подписан доверенным корневым центром, то клиентский браузер не будет ругаться на такой сертификат. Задать сертификат можно так:

ssl trust-point {CA}

В этом же режиме можно явно указать, какой тип шифрования и хеширования применять для SSL VPN:

ssl encryption ?
   3des-sha1    Indicate use of 3des-sha1 for ssl encryption
   aes128-sha1  Indicate use of aes128-sha1 for ssl encryption
   aes256-sha1  Indicate use of aes256-sha1 for ssl encryption
   des-sha1     Indicate use of des-sha1 for ssl encryption
   rc4-md5      Indicate use of rc4-md5 for ssl encryption
   rc4-sha1     Indicate use of rc4-sha1 for ssl encryption

По умолчанию разрешено все.

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

tunnel-group {GROUPNAME} general-attributes
   authentication-server-group {AAASERVER}

Вы можете для разных интерфейсов (если SSLVPN может терминироваться не на одном интерфейсе) применить разные сервера, указав интерфейс явно:

authentication-server-group ({INTERFACE}) {AAASERVER}

Для вящего удобства вы можете создавать группы ссылок, которые будет видеть клиент при подключении в свою группу. Все групповые настройки делаются в режиме (сначала создаем группу как внутреннюю, а потом заходим в режим её настройки)

Group-policy {GROUPNAME} internal
Group-policy {GROUPNAME} attributes

Привязать групповую политику к туннельной группе можно командой

Tunnel-group {TUNNELGROUP} general-attributes
   Default-group-name {GROUPNAME}

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

Group-policy {GROUPNAME} attributes
   Webvpn

В этом режиме можно настроить сервер SSO, домашнюю страницу, привязку кастомизации и т.д. Привязка списка доступных ссылок тоже осуществляется здесь, но с версии 8.0 такой список хранится в виде XML и поэтому его проще настроить через ASDM и передать на ASA.

Еще один крайне важный момент: как пользователю явно указать, какие ресурсы ему будут доступны? Обычный список доступа тут неприменим, т.к. напомню, что ASA на самом деле открывает сессию от себя. Поэтому придумана спец.конструкция

access-list {ACLNAME} webtype permit {url|tcp} {УСЛОВИЯ}

в которой можно явно задать, какие ресурсы (URL) , будут доступны пользователям SSL VPN. Например, разрешим только RDP на адрес 10.1.1.100 и https на адрес 10.1.1.150 и порт 8443

access-list GUEST webtype permit url rdp://10.1.1.100
access-list GUEST webtype permit url https://10.1.1.150:8443

Применить данный специальный список доступа нужно в том же режиме (group-policy -> webvpn) командой

filter value {ACLNAME}

Предыдущая статья SNAF <<< >>> Следующая статья SNAF

 

Метки: , , , , ,
Опубликовано: Безопасность cisco

 

One Response to “ASA. Статья 13. SSLVPN. Часть 2 — настройка бесклиентского подключения”

comment rss - Trackback

  1. hipster208:

    В версии 8.0.2 привязка к OU в пользовательском сертификате не работает. Ни автоматически ни через правила.

» Оставить комментарий

Вы должны войти чтобы прокомментировать.