Настройка аутентификации в OpenVPN через Active Directory в CentOS 7

в 11:06, , рубрики: active directory, ldap, аутентификация, Настройка Linux

Представим что у нас уже есть настроенный OpenVPN, и мы решили сделать двухфакторную аутентификацию, включающую в себя проверку логина, пароля и членства пользователя в группе AD.

Традиционный openvpn-auth-ldap.so не существует в CentOS 7, поэтому рассмотрим вариант с использованием PAM.

1. В конфиг клиента добавляем строку, чтобы клиент запрашивал логин и пароль при соединении:

auth-user-pass

2. В конфиг сервера добавляем строку, включающую аутентификацию в OpenVPN через PAM:

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

3. Добавляем политику OpenVPN в PAM:

echo 'account required pam_ldap.so
auth required pam_ldap.so' >> /etc/pam.d/openvpn

3. Устанавливаем и включаем nslcd — этот модуль будет получать запросы от PAM и обращаться с ними к AD.

yum install nss-pam-ldapd -y
systemctl enable nslcd

5. Теперь редактируем параметры в /etc/nslcd.conf, чтобы они соответствовали примеру:

uri ldap://dc1.contoso.com
base dc=contoso,dc=com
binddn CN=ldapquery,OU=ServiceAccounts,OU=DomainUsers,DC=contoso,DC=com
bindpw P@ssw0rd

pagesize 1000
referrals off

filter passwd (&(objectClass=user)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))(!(objectClass=computer))(memberOf=CN=VPNUsers,OU=Groups,DC=contoso,DC=com))

map passwd uid sAMAccountName

binddn — путь к той учётной записи, которая будет соединяться с AD. Фильтр проверяет не отключен ли пользователь и состоит ли в указанной группе. Вообще на этом этапе настройки очень поможет AD Explorer.

6. Запускаем nslcd в консольном дебаг режиме

nslcd -d

и пытаемся подключиться через OpenVPN. Если возникнут ошибки — их сразу будет видно. Если всё в порядке, запускаем демона nslcd:

systemctl start nslcd

7. Готово!

Автор: varnav

Источник

Поделиться новостью

* - обязательные к заполнению поля