Аутентификация по LDAP на Cisco ISR c проверкой группы пользователя в AD

Появилась потребность авторизовывать пользователей под доменными учетными записями при подключении по Cisco Easy Vpn. Ниже описанный способ должен работать на ISR роутерах Cisco, таких как 1800х, 1900х.

Не буду подробно расписывать настройку самого Easy Vpn, ниже будет только то что касается аутентификации по LDAP.

Т.к. я использую ldap для авторизации Easy Vpn подключений, то в aaa профиле добавляю такой способ аутентификации. Так же я оставил возможность использовать локальные учётки

aaa authentication login EVPN local group ldap
aaa authorization network EVPN local group ldap

В isakmp профиле для Easy Vpn прикреплен isakmp authorization и client authentication list

crypto isakmp profile EVPN_USERS
client authentication list EVPN
isakmp authorization list EVPN

Для работы авторизации необходимо будет ниже указать имя и пароль учётки, которая обладает админскими правами в домене. Рекомендую завести отдельную учётку под это дело.

Чтобы был понятен конфиг ниже, представим что:
Имя домена у нас — mydomain.example.com
Имя учётки с правами админа для работы авторизации — DomainAdmin, её пароль — DomainPass
Имя группы AD, пользователям которой разрешёно подключатся по Easy Vpn — EVPN
Имя пользователя, который состоит в группе — i.ivanov

Настраиваем коннект к ldap серверу, т.к. соединение работает без шифрования и по стандартному порту 389, то этих параметров просто нет в конфиге

# Создаем конект к контроллеру
ldap server DC
# ip адрес контроллера с AD 
ipv4 192.168.0.100
# таймаут подключения к контроллеру в случае обрыва соединения
timeout retransmit 20
# Указываем админскую учётку с паролем, после ввода пароль будет зашифрован в password 7
bind authenticate root-dn CN=DomainAdmin,CN=Users,DC=mydomain,DC=example,DC=com password DomainPass
# Указываем корень домена для поиска пользователя
base-dn DC=mydomain,DC=example,DC=com
# Фильтр, который разрешает авторизацию только пользователям в группе EVPN
search-filter user-object-type user)(memberOf=cn=EVPN,cn=Users,dc=mydomain,dc=example,dc=com

На фильтре остановимся подробнее — там нет опечаток в синтаксисе, всё точно так и должно быть, это своеобразный хак, т.к. циска сама допишет нужные куски синтаксиса в запросе в сторону ldap.

Вот так этот фильтр выглядит в дебаге:

(&(objectclass=user)(memberOf=cn=EVPN,cn=Users,dc=mydomain,dc=example,dc=com)(cn=i.ivanov))

Жирным я выделил именно тот кусок, который мы засунули в фильтр. Остальное циска дописывает сама.

Видимо, в этот фильтр заложили изначально только смену objectclass с user на что либо другое. Но как видим, при желании сюда можно запихнуть практически любое выражение.

В итоге, при такой конфигурации к Easy Vpn смогут подключиться только пользователи, состоящие в группе EVPN.

0

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

Ваш e-mail не будет опубликован.