Сразу хочу отметить, — не собираюсь устраивать холивар на счет того, что лучше — ASDM or console: на вкус и цвет все фломастеры разные…Я предпочитаю ASDM и настройки такого плана произвожу именно через нее. Поэтому статья будет насыщенна картинками (скринами)
Итак, приступим. Начнем с настройки LDAP сервера (в нашем случае это DC ActiveDirectory), для этого переходим в Configuration > DeviceManagement > Users/AAA > AAA Server Groups и создаем группу, назовем ее OFFICE, Protocol указываем LDAP
Configuration Cisco ASA AAA Server Groups
Для того, чтобы добавить сервер в созданную группу, нам необходимо предварительно создать LDAP Atribute Map. Для этого переходим в соответствующий раздел: Configuration > DeviceManagement > Users/AAA >LDAP Attribute Map и создаем новую карту: в нашем случае это Map Name: AD, Mapping of Attribute Name > LDAP Attribute Name: memberOf, Cisco Attribute Name: IETF-Radius-Class
LDAP Attribute Map
Теперь можно добавить сервер (настроить подключение к контроллеру домена), указываем интерфейс, через который будем подключаться, IP адрес DC, Server Type: Microsoft, Base DN, Naming Attribute: sAMAccountName, Login DN, Login Password, только что созданную карту LDAP Attribute Map: AD, Group Base DN:
AAA Server — Microsoft DC
Add AAA Server
После добавления сервера делаем проверку, проходим аутентификацию учетной записью AD:
Test AAA Server — Authentication
Теперь можно добавить сертификат удостоверяющего центра (используется Microsoft CA, в рамках статьи о его настройке рассказывать не буду, единственное о чем следует обязательно помнить: Cisco ASA не воспринимает сертификаты с Signature algorithm RSASSA-PSS, который Microsoft предлагает использовать по умолчанию. мы меняли на sha512RSA):
Identity Certificates Signature algorithm RSASSA-PSS — sha512
Переходим Configuration > DeviceManagement >Certificate Management > Identity Certificates и импортируем в формате PKCS12 (*.pfx сертификат + private key):
Identity Certificates Signature algorithm sha512RSA (ECDSA 521 bits)
С подготовительными действиями закончили, можно переходить к настройке профилей для AnyConnect VPN. Для примера, будем использовать 2 профиля, у которых будут разные IP Address Pools и соотв. ACL, Dynamic Access Policies, Group Policies и соответственно 2 группы ActiveDirectory. При подключении пользователей по ВПН используем политику «Туннелирование только указанных сетей», так называемый Split Tunneling, чтобы не гнать весь пользовательский траффик через впн. Но это «на любителя», может кому-то, наоборот, такое потребуется — последнее время это очень актуально ;)
Начнем с IP Address Pools, для этого переходим в Configuration > Remote Access VPN > Network (Client) Access > Address Assignment > Address Pools
Создадим пул адресов (сегмент) для администраторов (назовем, например VPN_Admins):
Address Assignment — Address Pools
Далее создадим политику (это основная часть настроеек профиля, в которой можно задат: протоколы, которые будут использоваться для туннелей, время доступа, количество одновременных логинов, закрыть доступы к определенным VLAN, выставить таймауты, задать DNS серверы, настроить Split Tunneling, клиентский файерволл и тд и тп) — в общем этой настройке следует уделить особое внимание! Итак, начнем: Configuration > Remote Access VPN > Network (Client) Access > Group Policies, Add Internal Group Policy
Все выставленные параметры сугубо индивидуальны — в нашем случае немного параноидальны Указаны протоколы, которые допускаются для создания туннеля (Tunneling Protocols), временной период для доступа по ВПН (Access Hours), количество одновременных подключений с одной учетной записью (Simultaneous Logins), максимальное время для сеанса и пр.:
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Add Internal Group Policy
Следующая полезная настройка — вкладка Servers, в которой мы можем указать внутр. ДНС серверы, для пользователей ВПН AnyConnect, чтобы они могли обращаться к внутренним ресурсам по имени:
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Edit Internal Group Policy — Servers
Теперь перейдем к еще одной интересной опции — настройке Split Tunneling. Как я уже писал ранее — будем использовать политику «туннелирование только указанных сетей» (мы не заворачиваем в туннель весь траффик пользователей и разрешаем доступ к локальным ресурсам — опция «Local Lan Access» далее будет отдельно рассмотрена):
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Edit Internal Group Policy > Advanced > Split Tunneling >
Ранее мы указали к каким сетям\хостам мы разрешили доступ, теперь ограничим доступ к ним по протоколам\портам (еще один ACL):
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Edit Internal Group Policy > Advanced > AnyConnect Client > Client Firewall > Private Network Rule
В итоге, после подключения к впн AnyConnect клиентом, можно увидеть маршруты в сторону туннеля и правила файерволла:
AnyConnect Client > Route Details
AnyConnect Client > Firewall
Теперь можно перейти непосредственно к созданию профиля AnyConnect, переходим Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profiles >, Add AnyConnect Connection Profile
и указываем: Name, Aliases, далее Authentication Method (AAA and certificate), AAA Server Group, Client Address Pools, Group Policy — все созданное ранее!
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profiles > Add AnyConnect Connection Profile > Basic
И теперь небольшой «лайфхак» — мы из пользовательского сертификата вытащим значение E-mail и с помощью регулярки
(значение E-mail должно быть
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profiles > Add AnyConnect Connection Profile > Advanced > Authentication > Username Mapping from Certificate
Когда профили настроили — мы уже можем подключаться, потому как будет отрабатывать политика по умолчанию DfltAccessPolicy для всех пользователей, прошедших аутентификацию (у нее самый высокий приоритет). Мы же хотим, чтобы для разных групп ActiveDirectory использовался свой профиль и отрабатывала своя групповая политика \ политика доступа. Поэтому, переходим: Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies и запрещаем DfltAccessPolicy (на самом деле не запрещаем, а делаем Terminate с уведомлением пользователя — хорошая диагностика того, что пользователь не включен в требую группу ActiveDirectory):
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies
Terminate connection from users who are not in the access group
После того, как политику по умолчанию запретили, — создадим новую:
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies > Add Dynamic Access Policy
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies > Add Dynamic Access Policy with AAA Attributes
где g_vpn_level_01 — созданная в ActiveDirectory группа безопасности, куда мы включаем необходимые админские учетки, для подключения по ВПН AnyConnect с профилем VPN-ADMINS:
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies > Add Dynamic Access Policy with AAA Attributes > Get AD Groups
ну и заключительный «штрих» — рекомендую сохранить созданный профиль в файл (полезно, например, для синхронизации профилей для StandBy unit при Failover конфигурации):
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Client Profile
После того, как профиль сохранен — его можно немного «потюнинговать»: помните я говорил про опцию"Local Lan Access"? Она как раз здесь настраивается. А еще здесь же можно настроить выбор хранилища сертификатов; автообновление клиента AnyConnect; разрешить\запретить возможность подключения к компьютеру через рдп, при подключенном впн; указать версию протокола (IPv4 or IPv6 or both); параметры сертификатов и серверов; мобильные политики. В общем — есть, что «подкрутить» под ваши нужды!
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Client Profile > Edit
Для второй группы — «VPN-USERS» проделываем тоже самое…
P.S.: для любителей консоли — выложу конфигурацию позже
P.P.S: не сочтите за рекламу, — просто самому очень нравится: Duo Security
Итак, приступим. Начнем с настройки LDAP сервера (в нашем случае это DC ActiveDirectory), для этого переходим в Configuration > DeviceManagement > Users/AAA > AAA Server Groups и создаем группу, назовем ее OFFICE, Protocol указываем LDAP
Configuration Cisco ASA AAA Server Groups
Для того, чтобы добавить сервер в созданную группу, нам необходимо предварительно создать LDAP Atribute Map. Для этого переходим в соответствующий раздел: Configuration > DeviceManagement > Users/AAA >LDAP Attribute Map и создаем новую карту: в нашем случае это Map Name: AD, Mapping of Attribute Name > LDAP Attribute Name: memberOf, Cisco Attribute Name: IETF-Radius-Class
LDAP Attribute Map
Теперь можно добавить сервер (настроить подключение к контроллеру домена), указываем интерфейс, через который будем подключаться, IP адрес DC, Server Type: Microsoft, Base DN, Naming Attribute: sAMAccountName, Login DN, Login Password, только что созданную карту LDAP Attribute Map: AD, Group Base DN:
AAA Server — Microsoft DC
Add AAA Server
После добавления сервера делаем проверку, проходим аутентификацию учетной записью AD:
Test AAA Server — Authentication
Теперь можно добавить сертификат удостоверяющего центра (используется Microsoft CA, в рамках статьи о его настройке рассказывать не буду, единственное о чем следует обязательно помнить: Cisco ASA не воспринимает сертификаты с Signature algorithm RSASSA-PSS, который Microsoft предлагает использовать по умолчанию. мы меняли на sha512RSA):
Identity Certificates Signature algorithm RSASSA-PSS — sha512
Переходим Configuration > DeviceManagement >Certificate Management > Identity Certificates и импортируем в формате PKCS12 (*.pfx сертификат + private key):
Identity Certificates Signature algorithm sha512RSA (ECDSA 521 bits)
С подготовительными действиями закончили, можно переходить к настройке профилей для AnyConnect VPN. Для примера, будем использовать 2 профиля, у которых будут разные IP Address Pools и соотв. ACL, Dynamic Access Policies, Group Policies и соответственно 2 группы ActiveDirectory. При подключении пользователей по ВПН используем политику «Туннелирование только указанных сетей», так называемый Split Tunneling, чтобы не гнать весь пользовательский траффик через впн. Но это «на любителя», может кому-то, наоборот, такое потребуется — последнее время это очень актуально ;)
Начнем с IP Address Pools, для этого переходим в Configuration > Remote Access VPN > Network (Client) Access > Address Assignment > Address Pools
Создадим пул адресов (сегмент) для администраторов (назовем, например VPN_Admins):
Address Assignment — Address Pools
Далее создадим политику (это основная часть настроеек профиля, в которой можно задат: протоколы, которые будут использоваться для туннелей, время доступа, количество одновременных логинов, закрыть доступы к определенным VLAN, выставить таймауты, задать DNS серверы, настроить Split Tunneling, клиентский файерволл и тд и тп) — в общем этой настройке следует уделить особое внимание! Итак, начнем: Configuration > Remote Access VPN > Network (Client) Access > Group Policies, Add Internal Group Policy
Все выставленные параметры сугубо индивидуальны — в нашем случае немного параноидальны Указаны протоколы, которые допускаются для создания туннеля (Tunneling Protocols), временной период для доступа по ВПН (Access Hours), количество одновременных подключений с одной учетной записью (Simultaneous Logins), максимальное время для сеанса и пр.:
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Add Internal Group Policy
Следующая полезная настройка — вкладка Servers, в которой мы можем указать внутр. ДНС серверы, для пользователей ВПН AnyConnect, чтобы они могли обращаться к внутренним ресурсам по имени:
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Edit Internal Group Policy — Servers
Теперь перейдем к еще одной интересной опции — настройке Split Tunneling. Как я уже писал ранее — будем использовать политику «туннелирование только указанных сетей» (мы не заворачиваем в туннель весь траффик пользователей и разрешаем доступ к локальным ресурсам — опция «Local Lan Access» далее будет отдельно рассмотрена):
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Edit Internal Group Policy > Advanced > Split Tunneling >
Ранее мы указали к каким сетям\хостам мы разрешили доступ, теперь ограничим доступ к ним по протоколам\портам (еще один ACL):
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Edit Internal Group Policy > Advanced > AnyConnect Client > Client Firewall > Private Network Rule
В итоге, после подключения к впн AnyConnect клиентом, можно увидеть маршруты в сторону туннеля и правила файерволла:
AnyConnect Client > Route Details
AnyConnect Client > Firewall
Теперь можно перейти непосредственно к созданию профиля AnyConnect, переходим Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profiles >, Add AnyConnect Connection Profile
и указываем: Name, Aliases, далее Authentication Method (AAA and certificate), AAA Server Group, Client Address Pools, Group Policy — все созданное ранее!
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profiles > Add AnyConnect Connection Profile > Basic
И теперь небольшой «лайфхак» — мы из пользовательского сертификата вытащим значение E-mail и с помощью регулярки
(.*)@
отрежем от него @domain.ru
(значение E-mail должно быть
%AD username%@somedomain.ru
) и подставим его в поле Username при подключении.Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profiles > Add AnyConnect Connection Profile > Advanced > Authentication > Username Mapping from Certificate
Когда профили настроили — мы уже можем подключаться, потому как будет отрабатывать политика по умолчанию DfltAccessPolicy для всех пользователей, прошедших аутентификацию (у нее самый высокий приоритет). Мы же хотим, чтобы для разных групп ActiveDirectory использовался свой профиль и отрабатывала своя групповая политика \ политика доступа. Поэтому, переходим: Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies и запрещаем DfltAccessPolicy (на самом деле не запрещаем, а делаем Terminate с уведомлением пользователя — хорошая диагностика того, что пользователь не включен в требую группу ActiveDirectory):
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies
Terminate connection from users who are not in the access group
После того, как политику по умолчанию запретили, — создадим новую:
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies > Add Dynamic Access Policy
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies > Add Dynamic Access Policy with AAA Attributes
где g_vpn_level_01 — созданная в ActiveDirectory группа безопасности, куда мы включаем необходимые админские учетки, для подключения по ВПН AnyConnect с профилем VPN-ADMINS:
Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies > Add Dynamic Access Policy with AAA Attributes > Get AD Groups
ну и заключительный «штрих» — рекомендую сохранить созданный профиль в файл (полезно, например, для синхронизации профилей для StandBy unit при Failover конфигурации):
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Client Profile
После того, как профиль сохранен — его можно немного «потюнинговать»: помните я говорил про опцию"Local Lan Access"? Она как раз здесь настраивается. А еще здесь же можно настроить выбор хранилища сертификатов; автообновление клиента AnyConnect; разрешить\запретить возможность подключения к компьютеру через рдп, при подключенном впн; указать версию протокола (IPv4 or IPv6 or both); параметры сертификатов и серверов; мобильные политики. В общем — есть, что «подкрутить» под ваши нужды!
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Client Profile > Edit
Для второй группы — «VPN-USERS» проделываем тоже самое…
P.S.: для любителей консоли — выложу конфигурацию позже
P.P.S: не сочтите за рекламу, — просто самому очень нравится: Duo Security
Ramires
Пожалуйста, сделайте хабракат после первой картинки — статья занимает кучу места на главной.
VFedorV Автор
сорри — поправил. не думал что статью сразу на главную закинет :( а как же премодерация?