Данный способ интеграции основан на запуске отдельного сервиса, который занимается маршрутизацией запросом запросов от WNAM ко внутренним компонентам или системы WNAM к серверам доменам. При его использовании вам не понадобится настраивать потребуется ручная настройка nginx, samba или другие инструменты. После установки работой с конфигурационными файлами займется сам сервис. Он других инструментов. Сервис написан на языке python3 и требует для своей работы ряда библиотек (преимущественно поддержки протокола LDAP). Его работа в режиме веб-сервиса обеспечивается инструментарием flask. Внимание: вы можете
Warning |
---|
Можно настроить взаимодействие |
...
системы авторизации WNAM с доменом аналогично как на |
...
самом сервере, |
...
на котором работает ПО WNAM, |
...
так и на любом другом соседнем Linux-сервере. |
...
Схема взаимодействия компонентов представлена на рисунке:
Info |
---|
Для сервера, не имеющего выхода в Интернет, существует вариант автоматической оффлайн-инсталляции, при котором все *.deb и python-пакеты ставятся устанавливаются из заранее подготовленного архива. Последующие обновления actool можно производить скриптом https://www.netams.com/files/wnam/misc/upgrade-adctool.sh |
Необходимо установить следующий набор пакетов:
apt
install python3install 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-dotenv python3-apt python3-pip
Затем запросите запросить и получите получить у нашей службы техподдержки компании Netams интеграционный модуль, он который поставляется в виде архива. Распакуйте, и распаковать его:
mkdir -p /home/wnam/adctool/logs
tar zxvf adctool.tgz -C /home/wnam
chown -R wnam:wnam /home/wnam/adctoolcd /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
wnam ALL = NOPASSWD: /usr/bin/mv
wnam ALL = NOPASSWD: /usr/bin/ntlm_auth
SUDOchmod +x /home/wnam/adctool/*.pychmod a+s /usr/bin/wbinfochmod a+s /usr/bin/ntlm_authchown 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.targetEOF
ПосмотритеСоздать, и возможно отредактируйте отредактировать при необходимости конфигурационный файл /home/wnam/adctool/.flaskenv:
FLASK_APP=ad_tools.pyTrue #
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 следует проверить результат запуска сервиса , нет ли явных на предмет ошибок.
Затем необходимо проверить, открывается ли тестовый интерфейс этого инструмента. Он Тестовый интерфейс доступен по адресу http://адрес_сервера:9080/. В нормальном корректном режиме работы он должен показать показывать список тестовых ссылок, которые отображают статус взаимодействия с контроллерами доменов, позволяют получить список групп, пройти проверку прав пользователя и т.п. (можете можно поменять имена доменов и учетных записей в URL). Не забудьте в В продуктивном режиме следует отключить такой тестовый доступ (укажите в указать в директории /home/wnam/adctool/.flaskenv параметр FLASK_RUN_HOST=127.0.0.1).
Если тестовый интерфейс показывает отображает ошибку, например, сообщения вродетипа:
Traceback (most recent call last):File "/usr/lib/python3/dist-packages/flask/cli.py", line 330, in __call__...ImportError: cannot import name 'SAFE_RESTARTABLE' from 'ldap3' (/usr/lib/python3/dist-packages/ldap3/__init__.py)
значитЭто означает, что модули Python не установились как следует. Попробуйте Необходимо заменить в файле /etc/systemd/system/adctool.serviceservice параметр:
ExecStart=/usr/bin/flask run
на
ExecStart=/usr/local/bin/flask run
и затем выполнитедалее выполнить команду:
systemctl daemon-reload && systemctl restart adctool
Когда интеграционный модуль заработает успешно, перейдите будет работать корректно, следует перейти в административный интерфейс системы WNAM , в раздел "Конфигурация - " → "Службы каталогов". Вы увидите окно, которое показываетОкно отобразит следующие данные:
- Статус взаимодействия с интеграционной службой adctool , с возможностью отправки команды на её перезапуск.
- Список подключенных доменов , с информацией:
- Название название домена, имя контроллера домена;
- Типы типы и статус интеграционных сервисов (LDAP, IPA/LDAP и NTLM-коннекторы);
- Число число доменных групп, найденных и отмеченных к дальнейшему использованию в профилях аутентификации.
Продолжите Продолжить настройку, подключив вашу систему к службам каталога:
- Active Directory. Допустимо создать несколько коннекторов к разным доменам Active Directory, но для EAP_PEAP-авторизации (через механизм NTLM)
...
- работает только один коннектор.
- FreeIPA. Допустимо создать несколько коннекторов к разным доменам FreeIPA, и для EAP_PEAP-авторизации
...
- работают все коннекторы, где
...
- включена функция принудительного хранения хэша пароля в каталоге.