Данный способ интеграции устарел, и более не рекомендуется к эксплуатации, так как требует наличия пользовательской учетной записи для LDAP-обращений к контроллеру домена
1. Установка необходимого ПО
Первым делом следует установить ПО 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, а затем в раздел "Конфигурация" → "Корпоративная авторизация" → "Служба Active Directory". В представленном окне необходимо указать параметры взаимодействия к контроллером домена.
Затем задать полное FQDN имя домена, имя контроллера домена (только хост, без домена), логин и пароль вашей специальной сервисной учетной записи в домене (любой, которая имеет к доступ к домену - с её помощью будет производиться получение списка групп домена). Также необходимо указать URL веб-сервиса проверки NTML-пароля, подготовленный на предыдущем шаге. Ссылка (по умолчанию) на веб-сервис следующая: http://localhost/cgi/ntlmauth.cgi. После установки всех параметров необходимо обязательно сохранить настройки, используя кнопку "Сохранить".
Затем в интерфейсе администратора следует нажать на кнопку "Обновить список групп". При этом, будет запрошен контроллер с заданными учетными данными на предмет всех групп домена.
Результатом запроса будет полный список групп. Чекбоксами следует отметить интересующие группы (только их можно будет указывать в профилях аутентификации).
После выбора списка групп необходимо нажать кнопку "Сохранить". На этом настройка интеграции системы WNAM с MS AD завершена. Далее система WNAM сможет общаться к контроллерам домена и использовать их для проведения EAP-PEAP/MSCHAPv2 авторизации абонентов вашей сети.