You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Данный способ интеграции основан на запуске отдельного сервиса, который занимается маршрутизацией запросом от WNAM ко внутренним компонентам или доменам. При его использовании вам не понадобится настраивать nginx, samba или другие инструменты. После установки работой с конфигурационными файлами займется сам сервис. Он написан на python3 и требует для своей работы ряда библиотек (преимущественно поддержки протокола LDAP). Его работа в режиме веб-сервиса обеспечивается инструментарием flask. 

Внимание: вы можете настроить взаимодействие сервиса авторизации WNAM с доменом как на том же сервере, где работает ПО WNAM, как и на любом другом соседнем Linux-сервере. 

Схема взаимодействия компонентов представлена на рисунке:




Для сервера, не имеющего выхода в Интернет, существует вариант автоматической оффлайн-инсталляции, при котором все *.deb и python-пакеты ставятся из заранее подготовленного архива.


Необходимо установить следующий набор пакетов:

apt install python3-flask python3-dnspython python3-ldap3 python3-pyasn1 python3-pyasn1-modules python3-six python3-gssapi krb5-user libkrb5-dev python3-pycryptodome winbind python3-apscheduler sudo libcurl4-nss-dev python3-cryptography libgpgme-dev python3-apt python3-pip

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

mkdir -p /home/wnam/adctool/logs
tar zxvf adctool.tgz -C /home/wnam
chown -R wnam:wnam /home/wnam/adctool

cd /home/wnam/adctool
pip3 install -r requirements.txt

Задайте права на нужные файлы:

cat > /etc/sudoers.d/wnam << SUDO
wnam ALL = NOPASSWD: /usr/bin/net
wnam ALL = NOPASSWD: /usr/bin/wbinfo
wnam ALL = NOPASSWD: /usr/bin/systemctl
SUDO

chmod +x /home/wnam/adctool/*.py

chmod a+s /usr/bin/wbinfo 

chmod a+s /usr/bin/ntlm_auth

chown wnam /etc/samba/smb.conf

Создайте systemd-скрипт для нового сервиса:

cat > /etc/systemd/system/adctool.service << EOF
[Unit]
Description="WNAM Active Directory tools service"
After=network.target

[Service]
WorkingDirectory=/home/wnam/adctool
ExecStart=/usr/bin/flask run
Restart=on-failure
SuccessExitStatus=143
RestartSec=10
User=wnam
Group=wnam
StandardOutput=append:/home/wnam/adctool/logs/application.log
StandardError=append:/home/wnam/adctool/logs/console.log

[Install]
WantedBy=multi-user.target

EOF

Посмотрите, и возможно отредактируйте конфигурационный файл /home/wnam/adctool/.flaskenv:

FLASK_APP=ad_tools.py
FLASK_RUN_HOST=0.0.0.0 # можно убрать по завершению тестов
FLASK_RUN_PORT=9080
FLASK_DEBUG=True # можно убрать по завершению тестов 

Посмотрите, и возможно отредактируйте конфигурационный файл /home/wnam/adctool/config.json:

{
"kcache_refresh": 3600,
"root_path": "/home/wnam/adctool"
}

Включите сервис, и запустите его

systemctl enable adctool
systemctl start adctool

Посмотрите в лог-файле /home/wnam/adctool/logs/console.log результат запуска сервиса, нет ли явных ошибок.

Перейдите в административный интерфейс WNAM, в раздел "Конфигурация - Службы каталогов". Вы увидите окно, которое показывает:

  • Статус взаимодействия с интеграционной службой adctool, с возможностью отправки команды на её перезапуск
  • Список подключенных доменов, с информацией:
    • Название домена, имя контроллера домена
    • Типы и статус интеграционных сервисов (LDAP, IPA/LDAP и NTLM-коннекторы)
    • Число доменных групп, найденных и отмеченных к дальнейшему использованию в профилях аутентификации


Продолжите настройку, подключив вашу систему к службам каталога:

Active Directory. Допустимо создать несколько коннекторов к разным доменам Active Directory, но для EAP_PEAP авторизации (через механизм NTLM) будет работать только один.

FreeIPA. Допустимо создать несколько коннекторов к разным доменам FreeIPA, и для EAP_PEAP авторизации могут работать все, где вы включите принудительное хранение хэша пароля в каталоге.


  • No labels