У цій статті ми розглянемо крок -крокетку прозору (SSO -єдиний знак) аутентифікація Zabbix 4.0 (і вище) в Active Directory через протокол Кербероса.
Кінцевий результат: Переходячи до URL -адреси Zabbix, користувач автоматично автентифікується без введення облікових даних. Для цього користувача потрібно обрізати в Windows під обліковим записом домену, який пов'язаний з Vybbix. Також користувач повинен бути налаштований браузером (Cerberos підтримка та довірені довірені сайти для непереборності IE включені).
Зміст:
- Встановлення аутентифікації LDAP Zabbix в Active Directory
- Один знак налаштування (Apache2, KRB5-користувач)
- Налаштування браузера для аутентифікації Kerberos
- Налагодження та усунення проблем з автентифікацією Kerberos Apache
Стояти:
- Ubuntu Server 18.04 ЛТ;
- Домен Active Directory, функціональний рівень 2008 (або вище);
- Zabbix server 4.0.11, веб -сервер - apache2 (інструкції щодо встановлення Zabbix);
- Запис у DNS для домену.Місцевий.
Встановлення аутентифікації LDAP Zabbix в Active Directory
Зв'язування доменного користувача до Zabbix
Спочатку вам потрібно прив’язати користувачів домену до Zabbix. Для цього достатньо створити користувача з тим самим користувачем. Наприклад, якщо ваш вхід (атрибут - це SamaccountName) user_5, тоді користувач у Zabbix повинен мати однакове ім'я введення.
Зробіть це з кожним користувачем, який використовуватиме Zabbix.
Створення обліку Active Directory для спілкування Zabbix з доменом
Тепер вам потрібно створити окремого користувача в Active Directory, завдяки якому Zabbix буде прихильний до домену. На практиці ви можете використовувати будь -який обліковий запис домену, але створити спеціальний обліковий запис послуг назавжди. У моєму випадку це буде zabbix_admin. Щоб створити користувача в AD, я буду використовувати команду PowerShell New Duser:
New -aduser -name "zabbix_admin" -givenname "zabbix_admin" -surname "zabbix_admin" -samaccountname "zabbix_admin" -accountpassword (read host -assecurestring "пароль $") -displayname "zabbix_admin" -enabled $
Заповніть команду в консолі PowerShell та встановіть пароль користувача. Ваш новий користувач буде в контейнері користувачів у корені домену.
Налаштування автентифікації LDAP у веб -інтерфейсі Zabbix
Тепер ми перенастефігуємо Zabbix до автентифікації LDAP. У веб -інтерфейсі перейдіть до Адміністрація -> Аутентифікація, вкладка Налаштування LDAP. Увімкніть параметр Authentication LDAP та заповніть наступні поля.
HOST LDAP: LDAP: // DC1.Домен.Місцевий порт: 389 База DN: DC = домен, DC = локальний атрибут пошуку: SamaccountName Bind DN: CN = ZABBIX_ADMIN, OU = Користувачі, DC = домен, DC = локальний
Ви можете побачити опис кожного параметра в документації Zabbix https: // www.Zabbix.Com/documentation/current/raual/web_interface/frontendend_section/адміністрування/аутентифікація в розділі Аутентифікація LDAP.
Перш ніж завершити налаштування, обов’язково перевірте обґрунтованість ваших налаштувань, завершивши тестовий вхід (кнопка Тест). Вкажіть користувача (ми запустили його в Zabbix раніше) та його пароль від AD.
Якщо тест є успішним, тоді збережіть налаштування та переключіть тип авторизації в Zabbix з Інтернету на Ldap.
Включіть аутентифікацію HTTP (налаштування HTTP -> Увімкнути HTTP -аутентифікацію).
Налаштування аутентифікації LDAP завершено на цьому.
Порада. У разі недоступності сервера LDAP ви не зможете дістатися до Zabbix. Щоб перейти на внутрішню автентифікацію, перейдіть до MySQL та виконайте команду:Оновити Zabbix.Набір конфігурації authentication_type = "0" були configid = "1";
Один знак налаштування (Apache2, KRB5-користувач)
По -перше, у файлі /etc /hostName вкажіть ім'я FQDN сервера, яке повинно збігатися з записом DNS у вашому домені, у моєму випадку це Zabbix.Домен.Місцевий.
У файлі /etc /hosts також напишіть fqdn свого сервера на локальному IP та на IP вашого сервера:
127.0.0.1 localhost Zabbix.Домен.Місцеві 10.10.1.50 Zabbix.Домен.Місцевий
Для правильної роботи аутентифікації Kerberos необхідно синхронізувати час з контролером вашого домену. Покладіть пакет NTPDATE та надішліть його до контролера домену
Apt-get встановити ntp ntpdate
NTPDATE DC.Домен.Місцевий
Тепер нам потрібно генерувати файл Keytab. Кейтаб - Це файл, який містить SPN та зашифровані ключі. Keytab використовується для аутентифікації в різних системах, використовуючи Kerberos, не вводячи пароля.
Ви можете генерувати файл Keytab на контролері домену:
- Увійдіть до контролера домену та запустіть командний рядок з правами адміністратора. Перейдіть до каталогу C: \
- Введіть:
KTPASS -PRINC HTTP/ZABBIX.Домен.Місцевий@doomain.Локальний -mapuser zabbix_admin -pass strongpass -crypto all -ptype krb5_nt_principal -ut zabbix.Keytab -Setupn -SetPass
- Копіювати c: \ Zabbix -файл.Keytab для вашого сервера Zabbix у каталозі/etc/apache2/.
Ми встановлюємо необхідні пакети для Kerberos та модуля Apache2:
APT Встановіть KRB5-user libapache2-mod-auth-cherb
Налаштуйте KRB5-користувач. Праворуч файл конфігурації /etc/krb5.CNF:
[Реєстрація] за замовчуванням = файл:/var/log/krb5libs.Журнал KDC = Файл:/var/log/krb5kdc.Журнал admin_server = файл:/var/log/kadmind.log [libdefaults] default_realm = домен.Local default_keytab_name =/etc/apache2/zabbbix.keytab dns_lookup_kdc = false dns_lookup_realm = false farthable = true ticket_lifetime = 24h [царства] домен.Local = kdc = dc.Домен.Local default_domain = домен.Local Admin_Server = DC.Домен.Локальний [domain_realm] .Домен.Локальний = домен.Місцевий домен.Локальний = домен.Місцевий
Замініть свій домен, в деяких місцях домен написаний у формі заголовка - дотримуйтесь цього правила.
Примітка. Зверніть увагу на рядок за допомогою файлу keitab "default_keytab_name =/etc/apache2/zabbix.Keytab ", переконайтеся, що файл доступний на цьому шляху. Обов’язково надайте цьому файлу право читати для www-data, виконайтеChown www-data: www-data/etc/apache2/zabbbix.Кейтаб
Перевірте роботу автентифікації Kerberos у Linux:
Kinit -kv -p http/zabbix.Домен.Локальний -T/etc/apache2/Zabbix.Кейтаб
Ви можете зіткнутися з помилкою
Kinit: клієнт 'http/zabbix.Домен.Місцевий@doomain.Локальний 'не знайдено в базі даних Kerberos, отримуючи початкові облікові дані
У цьому випадку, перш за все, спробуйте увійти з іншого користувача, наприклад, ваш обліковий запис^
Kinit -pv login
Якщо автентифікація є успішною, то справа знаходиться у файлі справи. Переконайтесь, що ви правильно його створили. Перевірте правильність команди для створення файлу Keytab.
Перевірте наявність записів SPN для запису служби Zabbix в AD. У командному рядку контролера домену введіть:
Setspn -l zabbix_admin
Ви повинні побачити таке повідомлення, запис повинен бути у форматі HTTP/Zabbix.Домен.Локально, якщо немає записів, вам потрібно додати його.
setspn -a http/zabbix.Домен.Місцевий Zabbix_admin
Вам також потрібно перевірити, чи змінив користувач ім’я введення на http/Zabbix.Домен.Місцевий.
Якщо це не змінилося, то змініть його вручну.
Тепер вам потрібно змінити файл конфігурації apache2-/etc/apache2/sites -ailable/000.Конфігурація.
Під лінією сервера Zabbix.Домен.Місцеве додавання
AuthType Kerberos Authname "Kerberos authersiced" Krbauthrealms домен.Локальний #krbserviceename http/zabbix.Домен.Місцеве krbserviceEname будь -який krb5keytab/etc/apache2/zabbbix.Keytab krbmethodnegotiate на krbsavecredentials на krblocalusermapping на потребі дійсного користувача
Часто виявляється помилка, яка пов'язана з невідповідністю krbserviceEname з тим, що зареєстровано у файлі Keytab, щоб ви могли поставити будь -яке значення під час тестування. Після того, як все працює, введіть дійсну назву послуги. Ви можете перевірити команду Klist -le/etc/apache2/zabbix.Кейтаб
.
Налаштування браузера для аутентифікації Kerberos
Для того, щоб браузер Internet Explorer використовував аутентифікацію Kerberos на сайті, вам потрібно додати цю URL -адресу до місцевих інтранетських сайтів. Google Chrome успадковує ці налаштування Internet Explorer, тому вам не потрібно його налаштувати окремо.
Примітка. URL -адреса вашого сайту Zabbix повинна відсутня у списку надійних сайтів, інакше Керберос не буде працювати. Сайт повинен бути виписаний лише на вкладці Інтранет.Перейдіть до IE до Інтернет -параметрів -> безпека.
У Local Intranet натисніть сайти, поставте прапорці як на скріншоті та натисніть Advanced.
Напишіть URL -адресу вашого сервера Zabbix.
Перейдіть на вкладку Просунутий І увімкніть параметр Увімкнути інтегровану автентифікацію Windows.
Якщо ви не були позначені цим елементом, перезавантажте комп'ютер. За замовчуванням він увімкнено.
Ви також можете налаштувати це через групові політики
У браузері Mozilla firefox в Про: конфігурація Змінити адресу URL -адресу Zabbix Server у таких параметрах:
Мережа.Автоматичний-NTLM-Auth.Мережа довірених урівень.Переговори.Мережа делегації.Переговори.Довірені уріси
Якщо у вас є проблеми, зверніться до більш детальної статті про налаштування Kerberos у браузерах HTTPS: // WinitPro.ru/index.PHP/2018/01/22/Nastrojka-kerberos-autentifikacii-v-razlichnyx-brauzurax/
Після завершення цих етапів налаштування можна вважати завершеним. Під час звернення до URL -адреси Zabbix ви повинні автоматично бути автентифікованою без введення пароля ..
Налагодження та усунення проблем з автентифікацією Kerberos Apache
У разі проблем увімкніть режим налагодження в Apache2:
У файлі/etc/apache2/сайти доступні/000.Conf перед закриттям тегу, введіть:
LogLevel Trace8
Корисність Кістка Ви можете побачити кеш -кліщі kerberos:
Klist -a