авторизация zabbix ldap active directory – блог злобного админа

Начался процесс инициализации

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

По завершении установки нас приветствует окно настройки домена. На этом этапе нам нужно определить роль домена.

Для этого есть четыре опции:


Для создания нового домена, выбираем первую опцию –

Create a new UCS domain

, далее мы сможем посмотреть процесс создания домена

Введение

Мы хотим добиться того, чтобы наши пользователи сохранялись в LDAP, аутентифицировались через LDAP (direct или pam) и чтобы вы имели некоторый инструмент для управления этими всем понятным для человека способом.

Таким образом, мы можем использовать все программное обеспечение, поддерживающее LDAP, или возвратимся к модулю LDAP PAM, который будет действовать как шлюз PAM-> LDAP.

Более подробную информацию о идее LDAP можно найти в Википедии: LDAP wikipedia

Мы видим окно, в котором нас предупреждают о том, что компания собирает статистику о наших действиях в магазине

Жмем

Continue

. Рекомендуется поставить галочку напротив пункта

Do not show this message again

, чтобы не наблюдать при каждом входе данное сообщение

После чего начинаем установку

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

После чего начинается процесс применения финальных настроек

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Начинаем обновление системы жмем software update

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

На следующем этапе нам предлагают выбрать программные компоненты, которые мы хотим включить в первоначальную установку


На текущем этапе, оставляем все по умолчанию.

1.2. Configuring OpenLDAP

Next we must configure OpenLDAP.

Apache mod_auth_ldap

Чтобы получить авторизацию LDAP в apache, вам необходимо загрузить модуль mod_auth_ldap

LoadModule mm_auth_ldap_module modules/mod_auth_ldap.so

Теперь достаточно изменить .htaccess:

Finish! установка univention успешно завершена

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

В открывшемся окне install release update

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

В случае, если нам необходимо удалить файлы

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

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

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

Инсталлятор предлагает сохранить конфигурацию. Если все устраивает –

Continue

Инсталлятор просит подтвердить предстоящие изменения – Yes

Вводим свою почту

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Выбор местоположения


Поскольку мы выбрали русский язык, в данном списке нам предлагают выбрать

Russian Federation

Выбор раскладки клавиатуры

Из-за предыдущих шагов нам предлагают русскую раскладку, меняем на

American English

Где мы выбираем следующие пункты

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

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

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

Другие приложения, поддерживающие ldap

  • Postfix
  • Courier IMAP
  • jabberd
  • eGroupware

Задаем ему пароль

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Инсталлятор предлагает нам указать некоторую информацию о нас

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

После чего, основываясь на указанные нами данные в предыдущем шаге, генерирует доменное имя. Его можно изменить, тогда нам понадобится ввести полное доменное имя. Рекомендуется выбирать поддомен домена DNS, которым мы управляем. Например, если мы зарегистрировали домен livelinux.org, мы можем использовать ldap.livelinux.org. ldap в данном случае – имя хоста.Выделенная база LDAP определяется автоматически.

На скриншоте представлено конечное имя домена

Используйте сеанс

Чтобы использовать информацию о сеансе, вы можете импортировать и использовать промежуточное программное обеспечение Parser Parser:

var cookieParser =require("cookie-parser");
app.use(cookieParser());

Ищем приложение nextcloud

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Конфигурация клиента

Под клиентом я имею в виду машину, которая подключается к LDAP-серверу для получения пользователей и авторизации.

Это может быть и машина, на которой работает LDAP-сервер.

В обоих случаях мы должны отредактировать три файла: /etc/ldap.conf, /etc/nsswitch.conf и /etc/pam.d/system-auth

Начнем с ldap.conf, клиента ldap:

Миграция / добавление данных в каталог

Теперь, когда у нас есть работающий сервер LDAP, мы должны заполнить его данными, либо создать, либо перенести записи.

Я покажу вам, как переносить существующие записи из обычных /etc/ passwd, /etc/shadow, /etc/groups

Первый шаг – настроить mogrationtools.

Конфигурационный файл в Gentoo находится в /usr/share/migrationtools/migrate_common.ph.

Как правило, вам нужно изменить только эти моменты:

$DEFAULT_BASE = "dc=domain,dc=com";
$EXTENDED_SCHEMA = 1;

Теперь вы готовы перенести данные (на самом деле это работает даже без команды export):

export ETC_SHADOW=/etc/shadow
./migrate_base.pl > /tmp/base.ldif
./migrate_group.pl /etc/group /tmp/group.ldif
./migrate_hosts.pl /etc/hosts /tmp/hosts.ldif
./migrate_passwd.pl /etc/passwd /tmp/passwd.ldif

Теперь у нас есть данные в формате, понятном серверу LDAP.

Пожалуйста, откройте один из файлов с текстовым редактором, чтобы привыкнуть к синтаксису.

После этого мы можем добавить данные из ldifs.

ldapadd -D "cn=Manager,dc=domain,dc=com" -W -f /tmp/base.ldif
ldapadd -D "cn=Manager,dc=domain,dc=com" -W -f /tmp/group.ldif
ldapadd -D "cn=Manager,dc=domain,dc=com" -W -f /tmp/passwd.ldif
ldapadd -D "cn=Manager,dc=domain,dc=com" -W -f /tmp/hosts.ldif

Вы можете попробовать найти некоторые данные:

Настройка openldap

OpenLDAP состоит из slapd и slurpd-демона.

Этот способ охватывает один сервер LDAP без репликации, поэтому мы сосредоточимся только на slapd.

Я также предполагаю, что вы установили и инициализировали установку OpenLDAP (в зависимости от системы / распространения).

Если да, перейдем к части конфигурации.

В моей системе (Gentoo) конфигурация OpenLDAP хранится в /etc/openldap, нас интересует файл /etc/openldap/slapd.conf.

Но сначала мы должны сгенерировать пароль для администратора LDAP, чтобы поместить его в файл конфигурации:

slappasswd -h {md5}

Конфигурация выглядит так:

Настройка аутентификации zabbix в active directory

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

Настройка жесткого диска

Это можно сделать вручную (пункт Manual), однако для большинства случаев подойдет и дефолтный вариант –

Guide – use entire disk and set up LVMLVM (Logical Volume Manager) – подсистема, позволяющая объединить несколько дисков в один, а затем разбить его удобным образом.

Далее инсталлятор предлагает нам выбрать диск и предупреждает, что после подтверждения диск будет отформатирован

Необходимо указать схему разбиения. Я выбираю пункт по-умолчанию All files in one partition

После инсталлятор просит подтверждения применяемого разделения и предупреждает о форматировании диска, выбираем Yes

Настройка и запуск сервиса аутентификации nginx-ldap-auth

Для запуска сервиса nginx-ldap-auth будем использовать docker. Для начала нужно клонировать репозиторий с сервисом с github:

Настройка контейнера nginx для авторизации в active directory (ldap)

Мы проверили работу демона аутентфикации nginx-ldap-auth, теперь можно перейти к настройке Nginx. В данной статье, покажу, как настроить авторизацию для docker registry с учетной записью Active Directory. Nginx будем запускать в docker контейнере. Создадйте Dockerfile:

FROM nginx
COPY nginx-ldap-auth.conf /etc/nginx/conf.d/nginx-ldap-auth.conf

В директории с Dockerfile создадйте файл конфигурации nginx-ldap-auth.conf. Содержание файла:

Настройка часового пояса


Мой выбор –

Moscow

Наш файл загрузился

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Не работает аутентификация ldaps в zabbix на ubuntu

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

 TLS_REQCERT allow 

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

Непосредственно процесс установки


Инсталлятор предупреждает нас, что страница будет перезагружена после завершения обновления

Первый запуск, подтверждение почты и обновление системы

После установки системы нас ждет инструкция по открытию

Web Management Interface

в браузере

Открываю браузер и пишу в адресной строке 192.168.0.103

где 192.168.0.103 — ip адрес сервера, который мы назначили при установке

Браузер предупреждает меня о небезопасности сайта, после чего я попадаю на главную страницу

Первый пункт – выбор типа установки.

Выбираем самый оптимальный вариант –

Start with default settings

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

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

Пользователь создан. авторизуемся под ним в nextcloud

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Nextcloud встречает нас разделом Все файлы, где хранятся предустановленные по умолчанию файлы

Если у Вас есть опыт взаимодействия с облачными хранилищами, то Вы без труда разберетесь в интерфейсе

После установки нам снова предлагают авторизоваться

Авторизуемся под пользователем

Приложение установлено

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Продемонстрировать заявку

Это очень простое приложение. Это позволяет войти в систему с помощью сервера LDAP или на вашем собственном сервере (если у вас есть сервер, доступный с сервера Bluemix). После входа в систему вы увидите ссылки двух других страниц, которые они используются для демонстрации разрешения. Чтобы получить доступ к странице, пользователю необходимо быть членом определенной группы LDAP.

Сделать время ожидания сеанса

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

Это очень простой алгоритм, который не должен потреблять слишком много памяти или процессора без потребления. Проверьте список сеансов, если у любого сеанса есть старый флаг (у него есть поле «Old», и значение этого поля верно), затем удаляет его. Если это не так, создайте это поле и установите его на true. Используйте функцию SetInterval в час, чтобы сделать это один раз.

Поскольку мы запускаем эту операцию каждый час, сеанс может получить «старый» флаг после запуска в течение 1 секунды, или он находится недалеко от 1 часа без старого флага. Однако каждая сессия сохранит старый флаг в час, поэтому нет сеанса, чтобы быть удалена перед запуском в течение 1 часа, и нет сеанса для выживания 2 часа.

var sessionLifetime =60;setInterval(function(){for(var sessionID in sessions)if(sessions[sessionID].old)delete sessions[sessionID];else
            sessions[sessionID].old =true;}, sessionLifetime *60*1000);

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

Следующий пункт – выбор языка установки

Поддерживаемые языки: английский, французский и немецкий. Выбираем

Russian

. Установка продолжится на английском, но это необходимый шаг, т.к. следующий пункт (

Select your location

) предлагает страны на выбор, основываясь на выбранном нами языке

Следующий этап – подтверждение настроек

Авторизация Zabbix LDAP Active Directory - Блог злобного админа

Соглашение об именовании

Записи в LDAP хранятся в дереве, называемое информационным деревом каталога. Корень дерева называется суффиксом, который называется контейнером. Эти контейнеры могут быть организационными единицами, местами и тому подобное. Листья дерева являются каждым сущностью.

Одним из примеров этой структуры можно увидеть на рисунке ниже. Суффикс o = просто-технический. Под ней есть некоторые ветви: ou = Chouth (представляет пользователям) и ou = группы (представляют группу). Под ветвями пользователя есть два объекта, которые представляют собой один пользователь: uid = alice и uid = bicll.

Авторизация Zabbix LDAP Active Directory - Блог злобного админа
Чтобы получить зону (DN) (полный идентификатор объекта), вы можете получить от самого объекта до корня дерева, не собирайте все идентификаторы и отделите их с помощью запятой. Например, Алиса отличается UID = ALICE, OU = люди, O = Simple-Tecch.

Создать ваше приложение должно сделать

В этом уроке я покажу, как обеспечить решения аутентификации и разрешения на приложения Node.js Bluemix с использованием существующей инфраструктуры LDAP.

Создать сеанс

  1. Объявите глобальный ассоциированный массив для хранения сеансов.
var sessions ={};
  1. При проверке входа пользователя постройте структуру для управления информацией сеанса. Обычно информация LDAP является глобальной, но поскольку это приложение позволяет пользователям выбирать свой собственный сервер LDAP для тестирования, разные пользователи могут иметь разные параметры LDAP. Затем объясняет поле AuthList, это поле будет обрабатывать авторизацию.
var sessionData ={
    ldap:{
        url: req.body.ldap_url,
        dn: req.body.ldap_dn,
        passwd: req.body.ldap_passwd,
        suffix: req.body.ldap_suffix
    },
    uid: req.body.uid,
    passwd: req.body.passwd,
    dn:"",
    authList:{}};
  1. Если вы получите более полезную информацию для пользователей во время входа в систему, они могут быть сохранены в переменных данных сеанса.

ldapResult.on('searchEntry',function(entry){
    sessionData.dn = entry.dn;
    sessionData.name = entry.object.cn;
  1. Чтобы определить, что пользователь реален, вы получите уникальный идентификатор (желательно случайного идентификатора, потому что любые злоумышленники, которые могут угадать идентификатор сеанса, могут замаскировать в законные пользователи). Хранить данные сеанса под этим ключом.
var sessionID =logon(sessionData);...varlogon=function(sessionData){var sessionID = uuid.v1();
    sessions[sessionID]= sessionData;return sessionID;};
  1. Храните идентификатор сеанса в cookie в вашем браузере. На данный момент вы обычно перенаправляете пользователь на веб-страницу, содержащую фактический контент.
res.setHeader("Set-Cookie",["sessionID="  sessionID]);
res.redirect("main.html");

Средства администрирования ldap

Есть несколько инструментов, которые я рекомендую использовать для администрирования сервера OpenLDAP

Установка пароля для root пользователя


Инсталлятор предупреждает нас о том, что пароль должен быть надежным. Он может содержать буквы, цифры и знаки препинания. Минимальная длина – 8 символов. На скриншоте активирован чек-бокс

Show Password in Clear

, отображающий вводимый мною пароль

Шаг 1. подключитесь к серверу ldap

Для подключения к серверу LDAP вы можете использовать пакет LDAPJS. Подключение к серверу LDAP обычно требует следующей информации:

  • URL-адрес сервера, который содержит имена хостов, порты и зашифрованы ли связь.
  • Суффикс, это дерево, где хранится магазин.
  • Отличительное имя (DN) пользователя, который выполняет аутентификацию на сервер.
  • Пароль пользователя.

Если ваш сервер LDAP не может быть доступен из Интернета (потому что это нормально), вам необходимо использовать службу Bluemix Secure Gateway. Для получения инструкций см. «Использование службы BlueMix Secure Gateway для подключения к вашему центру обработки данных».

Шаг 3. сессия управления

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

Шаг 4. используйте группу для авторизации

Во многих приложениях некоторые функции могут быть использованы только для выполнения пользователя конкретной рабочей роли. Типичный способ выразить эти рабочие роли в LDAP – представлять их в качестве члена группы. Групповые объекты обычно имеют класс объекта GroupOfnames и атрибут элементов Multi-Value. Недвижимость нескольких значений может иметь несколько значений в этом случае, вы можете иметь DN всех членов в группе.

В этом приложении есть две страницы, которые обеспечивают ограниченные права доступа, MEN.HTML и Women.html. Как вы думаете, Алиса запрещена доступа к MEN.HTML, законопроект отключен доступа к Women.html. Эти группы CN = женщины, OU = группы, O = Simple-Tech и Cn = Men, OU = группы, O = Simple-Tech.

Ниже приведен способ попросить член группы получить доступ к веб-странице:

  1. Если у вас есть статические страницы, вы можете разместить их в отдельном каталоге. В этом приложении я размещен / ограничен (общедоступная страница, которая может быть общедоступна, размещена в / публике).
  2. Создайте ограниченный список страниц и фильтр LDAP, который получает их. В этом руководстве я использовал CN = <имя группы>.

Вывод

С техниками, описанными в этом уроке, вы должны иметь возможность использовать внутренний интерфейс репозитория пользователя и LDAP для обеспечения решений аутентификации и авторизации для приложений Node.js Bluemix или любых приложений Node.js, которые могут получить доступ к серверу LDAP.

MicrosoftTM Active Directory имеет интерфейс LDAP, но есть также некоторые тонкие различия. В будущем учебное пособие я представим, как использовать Active Directory в качестве хранилища для вашего приложения Node.js.

Перепечатать

Похожее:  Pam-Python реализует двухфакторную аутентификацию SSH SMS - Русские Блоги

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

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