Данный способ интеграции устарел, и более не рекомендуется к эксплуатации, так как требует наличия пользовательской учетной записи для LDAP-обращений к контроллеру домена

1. Установка необходимого ПО

Можно настроить взаимодействие сервиса авторизации WNAM с доменом как на сервере, где работает ПО WNAM,  так и на любом другом соседнем Linux-сервере. Именно поэтому взаимодействие производится через веб-скрипт.

Первым делом следует установить ПО Samba, используя команду:

apt-get install samba winbind

Далее необходимо отредактировать файл конфигурации /etc/samba/smb.conf:

[global]
workgroup = <имя_вашего_домена>
server string = %h server (Samba, Ubuntu)
dns proxy = no
security = ads
password server = <полное_имя_вашего_контроллера_домена>
realm = <полное_имя_вашего_домена>
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes

Затем проверить работоспособность командой: 

testparm

и запустить ПО Samba:

systemctl unmask samba
systemctl enable samba
systemctl restart samba

/etc/init.d/nmbd restart

/etc/init.d/smbd restart

После запуска ПО Samba следует внести сервер в домен, используя команды:

net ads join -U <ваш_логин_в домене>

затем

/etc/init.d/winbind restart

Далее необходимо создать в домене тестовую учётную запись (логин: wifitest, пароль: wifitest) и проверить авторизацию через ПО Samba и контроллер домена:

ntlm_auth --request-nt-key --domain=<имя_домена> --username=wifitest --password=wifitest

После проверки работоспособности авторизации следует создать веб-сервис, через который система WNAM будет совершать проверку пароля. Для этого следует установить nginx (который должен быть установлен при установке системы WNAM) и отредактировать файл /etc/nginx/sites-available/wnam следующим образом:

server {
listen 80 default_server;

root /var/www/html;

server_name _;

         location / {
            proxy_pass http://127.0.0.1:8080/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 120;
            proxy_connect_timeout 120;
        }

location ~ ^/cgi {

    root /home/wnam/cgi;
    rewrite ^/cgi/(.*) /$1 break;

    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    fastcgi_param SCRIPT_FILENAME /home/wnam/cgi$fastcgi_script_name;
}

}

Далее необходимо установить модуль FastCGI:

apt install fcgiwrap

systemctl restart nginx

Сам скрипт проверки ntlmauth.cgi можно загрузить по ссылке здесь. Скрипт представляет собой примитивную обёртку над командой /usr/bin/ntlm_auth. После загрузки скрипта его следует переместить в папку /home/wnam/cgi/ (при необходимости следует создать папку для скрипта) и выдать скрипту права "на исполнение":

mkdir /home/wnam/cgi

cd /home/wnam/cgi

wget -O ntlmauth.cgi https://netams.com/files/wnam/misc/ntlmauth.cgi

chmod +x ntlmauth.cgi

Необходимо убедиться, что скрипт доступен для вызова со стороны FastCGI-движка. Для этого следует выполнить команду:

chmod a+x /home/wnam && chmod a+x /home/wnam/cgi

Также придется добавить пользователя, от которого работает nginx (скорее всего это www-data) и его скрипты в группу winbindd_priv, а также установить права на каталог, где находится сокет winbindd:

usermod -a -G winbindd_priv www-data

chown root:www-data /var/lib/samba/winbindd_privileged/

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

/usr/bin/ntlm_auth --request-nt-key --username=wifitest --challenge=89b2cc47d4571192 --nt-response=7413e0e319aa658f2214baadb65c131da88b767ab7771f17
wget -O - 'http://localhost/cgi/ntlmauth.cgi?username=wifitest&challenge=89b2cc47d4571192&nt-response=7413e0e319aa658f2214baadb65c131da88b767ab7771f17'

Если всё работает корректно, то на запрос должен вернуться хэш в виде ответа:

NT_KEY: 535A15A134F3555A8089A772D0591D4C

Если такой ответ получен, можно продолжить настройку взаимодействия с Active Directory на стороне системы WNAM. Если ответ не получен, следует выполнить команду (данный способ рекомендуется использовать в крайнем случае):

chmod a+s /usr/bin/ntlm_auth

Можно обратиться в службу технической поддержки компании ООО "Нетамс" по адресу: support@netams.com

2. Настройка взаимодействия с доменом

Система WNAM поддерживает работу с несколькими доменами, но для этого необходимо организовать несколько виртуальных машин (по числу доменов), на которых работает настроенная выше конструкция samba+nginx+ntlmauth.

Для настройки следует перейти в интерфейс администратора системы WNAM, а затем в раздел "Конфигурация" → "Корпоративная авторизация" → "Служба Active Directory". В представленном окне необходимо указать параметры взаимодействия к контроллером домена.

Затем задать полное FQDN имя домена, имя контроллера домена (только хост, без домена), логин и пароль вашей специальной сервисной учетной записи в домене (любой, которая имеет к доступ к домену - с её помощью будет производиться получение списка групп домена). Также необходимо указать URL веб-сервиса проверки NTML-пароля, подготовленный на предыдущем шаге. Ссылка (по умолчанию) на веб-сервис следующая: http://localhost/cgi/ntlmauth.cgi. После установки всех параметров необходимо обязательно сохранить настройки, используя кнопку "Сохранить".

Затем в интерфейсе администратора следует нажать на кнопку "Обновить список групп". При этом,  будет запрошен контроллер с заданными учетными данными на предмет всех групп домена.

Данная операция может занять минуту.

Результатом запроса будет полный список групп. Чекбоксами следует отметить интересующие группы (только их можно будет указывать в профилях аутентификации).

После выбора списка групп необходимо нажать кнопку "Сохранить". На этом настройка интеграции системы WNAM с MS AD завершена. Далее система WNAM сможет общаться к контроллерам домена и использовать их для проведения EAP-PEAP/MSCHAPv2 авторизации абонентов вашей сети.


  • No labels