Настройка LDAPS для OpenVPN

В одной из предыдущий статей я уже рассказывал о том, как установить сервер OpenVPN и настроить LDAP аутентификацию. Эта публикация немного расширит конфигурацию LDAP аутентификации – добавит безопасности. Обращение к LDAP серверу будет осуществляться с использование TLS. С одной стороны изменения минимальны в плане конфигурации, но есть ряд моментов, которые необходимо учитывать.

Настройка LDAPS для OpenVPN

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

Я храню конфигурацию подключения к LDAP вот в этом файле – /etc/openvpn/ldap/auth.conf. У вас файл может быть другой. Моя рабочая конфигурация для LDAPS:

nano /etc/openvpn/ldap/auth.conf
<LDAP>
    # LDAP server URL
    URL       ldaps://dc01.itproblog.ru
    # Bind DN (If your LDAP server doesn't support anonymous binds)
    BindDN   "CN=adm,CN=Users,DC=itproblog,DC=ru"
    # Bind Password
    Password  Qwerty123
    # Network timeout (in seconds)
    Timeout   15
    # Enable Start TLS
    TLSEnable no
    # Follow LDAP Referrals (anonymously)
    FollowReferrals no
</LDAP>
<Authorization>
    # Base DN
    BaseDN        "DC=itproblog,DC=ru"
    # User Search Filter
    SearchFilter  "(&(sAMAccountName=%u)(memberOf=CN=VPNAccess,OU=Users',OU=VTH,DC=itproblog,DC=ru))"
    # Require Group Membership
    RequireGroup  false
</Authorization>

А теперь я перечислю ряд условий, которые необходимы для правильной работы LDAPS.

  1. Поскольку для обращения к LDAP серверу по TLS используется сертификат, то и обращаться к серверу нужно по имени, а не по IP-адресу. Причем имя должно соответствовать тому, на которое выписан сертификат.
  2. По крайней мере для Active Directory опция TLSEnable не работает.
  3. В директиве URL необходимо использовать опцию ldaps, а не ldap.
  4. Если вы используете сертификат от доверенного ЦС или от Let’s Encrypt, то дополнительных действий не требуется.
  5. Если вы используете самоподписанный сертификат или сертификат от внутреннего ЦС, то добавьте его в доверенные сертификаты операционной системы.

Да, возможно есть еще какие-то нюансы, но я столкнулся только с пунктами, которые перечислил выше.

Кстати, не плохо еще проверить доступность 636/TCP порта. Я проверял вот так:

ldapsearch -x -H ldaps://dc01.itproblog.ru -b "dc=itproblog,dc=ru"
# extended LDIF
#
# LDAPv3
# base <dc=itproblog,dc=ru> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C090C77, comment: In order to perform this opera
 tion a successful bind must be completed on the connection., data 0, v4563

# numResponses: 1

Да, привязка не завершиться успешно, но по крайней мере, понятно, что нужный мне порт открыт.

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

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