Авторизация Zabbix LDAP Active Directory

Авторизация через LDAP Active Directory в Zabbix вещь удобная, поскольку позволяет использовать один логин для входа как в систему так и в веб-интерфейс мониторинга. В данной статье заметка как сделать это максимально безопасно.

Что такое Zabbix и как его установить в Ubuntu показано в этом курсе.

Пользователь для локального входа в Zabbix

Одной из ошибок может стать перевод всех пользователей Zabbix на авторизацию в AD. Иногда могут случится непредвиденные обстоятельства с доменом или с самим сервером мониторинга, которые не позволят авторизоваться через LDAP. Чтобы это не стало проблемой необходимо предусмотреть сервисную учетную запись, с которой вы всегда сможете войти в Zabbix и что-то исправить.

Для этих целей сделайте отдельную группу, например LocalZabbix_Admins, в свойствах которой установите параметр Frontend Access в значение Internal

Группа для локального доступа в Zabbix

Затем создайте отдельного пользователя с административными привилегиями и добавьте его в эту группу.

Настройка аутентификации Zabbix в Active Directory

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

Затем в разделе Administration\Authentification перейдите на вкладку LDAP Settings и укажите параметры:

  • LDAP Host — адрес контроллера домена;
  • Port — порт службы LDAP 389 или 636 если используете зашифрованный LDAPs;
  • Base DN — базовый корень поиска учетных записей для авторизации, можно сузить до конкретной OU при необходимости;
  • Search attribute — атрибут по которому будет происходить поиск учетной записи в LDAP для авторизации. В случае с AD укажите sAMAccountName;
  • Bind DN — DN пользователя от имени которого будет происходить работа с LDAP для поиска и авторизации учетных записей;
  • Bind Password — пароль указанной выше учетной записи;
  • Test authentication — после заполнения всех полей правильными данными можно протестировать работоспособность связки указанием логина и пароля из домена.
Zabbix аутентификация в Active Directroy через LDAPS

Настоятельно рекомендуется использовать для аутентификации в рабочем домене протокол LDAPS, он как правило по умолчанию включен на контроллере домена, либо настраивается с использованием локального Центра Сертификации в несколько кликов мышкой.

Без использования LDAPS все данные аутентификации, включая пароли учетных записей, передаются в открытом виде и могут быть легко скомпрометированы!

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

Не работает аутентификация LDAPS в Zabbix на Ubuntu

В моем случае прямое указание в настройках Zabbix не позволило подключится к AD по защищенному протоколу LDAPS. Может помочь следующая манипуляция: в файле /etc/ldap/ldap.conf добавить следующую строчку:

 TLS_REQCERT allow 

В качестве дополнительной альтернативы можно попробовать прописать корневой сертификат доменного центра сертификации в доверенные на сервере мониторинга Zabbix. Идея тут в том, что LDAPS использует для работы сертификат подписанный доменным центром сертификации (если он у вас имеется). Добавив сертификат ЦС в доверенные вы обеспечите прохождение валидации сертификата контроллера домена на сервере Zabbix. Подробнее о том как это сделать писал тут. В любом случае сделать это будет не лишним для дальнейшей работы.

Добавление пользователей из домена в Zabbix

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

Добавление доменного пользователя в Zabbix

В качестве Alias необходимо указать логин пользователя в домене, остальные данные как обычно. Пароль при авторизации не используется, но эти поля обязательны к заполнению.Группы согласно необходимости.

После всех настроек необходимо переключить режим аутентификации по умолчанию на LDAP

Переключение аутентификации на LDAP в Zabbix

Если вы все сделали правильно то после этих манипуляций вы сможете войти в WEB-интерфейс Zabbix с доменным пользователем, которого добавили. Для безопасности не забудьте настроить веб-сервер на использование HTTPS.

В дополнение к данной теме:

Создание SSL сертификата в Linux подписанного доменным центром сертификации.

Ошибки, опечатки, критика, дополнения — прошу в комментарии!

Оцените статью
Добавить комментарий

Внимание! Нажимая кнопку "Отправить комментарий" вы соглашаетесь с политикой конфиденциальности сайта.

  1. Евгений

    Бесполезная штука. Один фиг — пускает только по паре логин/пароль. Зачем эти пляски с LDAP, когда того же пользователя с его паролем можно завести как внутреннего?

    Ответить
    1. dkplayer автор

      Вы не понимаете зачем нужна единый каталог пользователей? Ну скажем если у вас не домашняя сеть, а корпоративная с десятками или сотнями серверов и сотнями пользователей, то что вам будет удобнее: 1) заводить на каждом сервере локального пользователя для каждого пользователя или 2) один раз настроить LDAP? Ну и следующая задача поддерживать актуальные пароли локальных пользователей 🙂

      Ответить
      1. Тимур

        Так и я не совсем понимаю работe Ldap на заббигс. Вы всё равно создаете пользователя в этом пункте(Добавление пользователей из домена в Zabbix)
        Если каждого доменного пользователя надо добавлять, что бы он мог входить в заббигс.
        Допустим, есть два пользователя в домене: Пупкин и Степкин. По сути я мне надо так же их создать этих двух пользователей в заббигс, что бы они могли войти?! , так чем отличается от внутренего входа?!
        Единственное, это пароли не следишь и всё.
        Если я не так понял, прошу пояснить мне. Спасибо.

        Ответить
  2. Wadim

    У меня странная ситуация. Может быть встречалось такое.
    В домене есть пользователь «tacacs». Он создан для того чтобы TACACS-Server мог делать запросы к LDAP. TACACS-Server работает — пользователи на сетевых устройствах аутентифицируются под доменными учётками.
    Беру этого же пользователя для Zabbix. Настраиваю все через LDAPS. У меня тоже Ubuntu, поэтому тест стал проходить только после добавления строки в etc/ldap/ldap.conf.
    Делаю доменного пользователя tacacs админом и могу зайти под ним на Zabbix. Всё OK.
    НО!
    Создаю пользователя с такойже учёткой как у меня в домене, ставлю ему такой же пароль как в домене (просто для определенности). Зайти на Zabbix с этой доменной учеткой не могу. (пишет Incorrect user name or password or account is temporarily blocked.) Перевожу учетку в группу с локальной Zabbix-аутентификацией — попадаю на Zabbix без проблем. После многочисленных неудачных попыток это доменная учетка блокируется на Zabbix-Server.
    Куда можно копать? 🙂

    Ответить
    1. dkplayer автор

      Не видя всей конфигурации могу только сделать общие предположения. Проверить настройки LDAP в Zabbix. Base DN возможно пользователь, которым вы авторизуетесь не входит в область поиска, возможно атрибут поиска не соответствует имени пользователя.

      Ответить
      1. Wadim

        Да, понимаю что телепатов не существует и невозможно удаленно конфиги понять. Просто бьюсь уже пару дней вот и решил спросить.
        Настроек ldap в Zabbix не так много и они полностью совпадают с настройками TACACS:
        setenv LDAP_SERVER_TYPE = «microsoft»
        setenv LDAP_HOSTS = «ldaps://10.10.10.10:636»
        setenv LDAP_SCOPE = sub
        setenv LDAP_BASE = «dc=domainname,dc=intra»
        setenv LDAP_FILTER = «(&(objectclass=user)(sAMAccountName=%s))»
        setenv LDAP_USER = «tacacs»
        setenv LDAP_PASSWD = «password»
        В TACACS-е пользователи аутентифицируются без проблем.
        Заметил такую вещь, если я ставлю настроку «искать пользователей от имени моей личной учетки» (Bind DN CN=wsch,OU=…), то могу под своей личной учеткой (wsch) залониниться на Zabbix. НО тогда не может залониться пользователь tacacs, хотя имеет админские права.
        Имеется в Zabbix log коннектов или какой-нибудь инструмент чтоб коннект протестить?

        Ответить
        1. dkplayer автор

          Раз настройки полностью совпадают, то в Zabbix в Search attribute, я предполагаю с ваших слов, видимо прописали (&(objectclass=user)(sAMAccountName=%s)), а нужно просто sAMAccountName. Как собственно и написано в статье и в официальной документации: https://www.zabbix.com/documentation/current/ru/manual/web_interface/frontend_sections/administration/authentication

          Ответить
          1. Wadim

            setenv LDAP_FILTER = «(&(objectclass=user)(sAMAccountName=%s))» Это кусочек конфиг-файла TACACS, с его (TACACS) синтаксисом. Естественно в заббиксе я пишу только sAMAccountName. Похоже что всю документацию я уже перечитал :).
            Я нашёл подобную проблему на форуме: https://www.zabbix.com/forum/in-russian/381400-ldap-%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F
            Но к сожалению у меня не та проблема.
            Я уже установил LDAP-браузер на машину с Zabbix. Если я присоединяюсь к LDAP-серверу под пользователем “tacacs” то могу видеть у доменных пользователей поле “sAMAccountName”. То есть у пользователя “tacacs” хватает прав. Это еще раз подтверждается корректной работой сервера TACACS
            Имеется ли в Zabbix log коннектов или какой-нибудь инструмент чтоб коннект протестить?

  3. Wadim

    Победил! 🙂
    Отчитываюсь, раз кучу раз спросил.
    Не обращал внимание на кнопку «Change password» в меню LDAP Settings. Всегда рассуждал: зачем мне менять пароль, ведь он в домене забит. Но я не замечал рядом с кнопрой подпись «Bind password».

    Ответить
    1. dkplayer автор

      Это пароль пользователя, которого вы указываете в Bind DN. От его имени zabbix ходит в ldap за проверкой пользователей.

      Ответить
      1. Wadim

        Да, я сам протупил. Внизу окна LDAP Settings есть место чтобы забить пользователя и пароль для тестов. Вот я туда специального доменного пользователя «tacacs» с паролем и заносил.

        Ответить