Авторизация OpenVPN в AD

Автор: Admin | 06.02.2015

Настройка авторизации OpenVPN сервера в домене Active Directory на примере Debian 7 Wheezy


Осуществляется при помощи плагина openvpn-auth-ldap. Подразумевается, что сам OpenVPN уже работает и необходимо только прикрутить авторизацию. Настроить плагин получилось далеко не сразу, вся суть в правильной строке SearchFilter конфига подключения к AD. Если бы удалось найти рабочее решение на других ресурсах, то эта заметка не была бы написана.

Поставить:

aptitude install openvpn-auth-ldap

В конфиг сервера /etc/openvpn/server.conf добавить строки:

plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/ldap
username-as-common-name

Создать файл /etc/openvpn/ldap со следующим содержимым:

<LDAP>
        URL             ldap://192.168.0.1
        BindDN          [email protected]
        Password        Password
        Timeout         15
        TLSEnable       no
</LDAP>

<Authorization>
        BaseDN          "ou=Users,dc=domain,dc=com"
        SearchFilter    "(&(objectCategory=person)(objectClass=user)(sAMAccountName=%u)(memberOf=CN=VPN,ou=Users,dc=domain,dc=com))"
</Authorization>

 

URL - адрес DC
BindDN - имя пользователя с правом чтения AD (обычный не привелегированный доменный пользователь).
Password - пароль этого пользователя.
BaseDN - контейнер в котором искать пользователей.
SearchFilter - фильтр, только при условии соблюдения которого, пользователю будет позволено соединиться. В данном случае, пользователь должен входить в доменную группу VPN.

Рестарт демона:

/etc/init.d/openvpn restart

В конфиге клиента добавить строку для запроса авторизации:

auth-user-pass

Если файл назван ldap.conf, то при каждом запуске в /var/log/syslog будет сыпаться ошибка:

ovpn-ldap: Options error: Unrecognized option or missing parameter(s) in /etc/openvpn/ldap.conf:1: LDAP (2.2.1)

Это происходит из-за того, что любой файл *.conf в директории /etc/openvpn/ демон считает своим конфигом и пытается запустить новый инстанс, парся его настройки. Естественно, синтаксис не верен и выходит данная ошибка. Во избежание ошибки следует сменить местонахождение файла и его путь в конфиге, например так /etc/openvpn/ldap/ldap.conf. Или просто переименовать, убрав расширение файла /etc/openvpn/ldap
Спасибо уважаемому yann за подсказку.

Комментарии к посту “Авторизация OpenVPN в AD

  1. Иван

    А как сделать запрос ввода пароля у клиента при автозапуске openvpn демона? Чтобы не из файла брать.ю а именно клиент вводил, несколько дней бьюсь, не хочется в файле хранить логин/пароль от AD.

    1. admin Автор записи

      Тут логика простая. Если это сервис, который запускается при старте системы, то пароль должен быть сохранен в файле. Если должен вводить пользователь, то пусть он и запускает впн клиента. Мне кажется это очевидным.

      1. Иван

        Да хотелось минимизировать работу пользователя с интерфейсом. Что бы вкличил — вввел пароль — работаешь.

          1. Иван

            Имеем: Сервер openvpn на pfsense с настроенной авторизацией через AD
            клиент на Raspberi Pi3 с системой Raspbian
            Цель сделать тонкий клиент который соедениться по openvpn и следом откроет на весь экран rdp сессию

            1. admin Автор записи

              Таким образом это сервис. Сохраняйте креды в файл и чмод 400 на него и владельцем рут, чтобы только он мог читать. Все.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *