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

Compare with Current View Page History

« Previous Version 3 Next »

Подключение сервера WNAM в домен требуется для:

  • проверки учетных данных пользователя сети (логин/пароль)
  • получения списка всех групп домена
  • проверки членства пользователя в заданной группе
  • получение NTML хэша пароля при EAP/MSCHAPv2 авторизации

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

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

Первым делом, установите ПО Samba:

apt-get install samba

Отредактируйте его файл конфигурации /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

Проверяем: 

testparam

Запускаем:

systemctl unmask samba
systemctl enable samba
systemctl restart samba

Вносим сервер в домен:

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

Создаем в домене тестовую учётку wifitest с паролем wifitest

Проверяем авторизацию через Samba и контроллер домена:

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

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

server {
listen 80 default_server;

root /var/www/html;

server_name _;

location / {
    try_files $uri $uri/ =404;
}

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;
}

}

Сам скрипт проверки ntlmauth.cgi можно загрузить здесь. Он представляет собой примитивную обёртку над командой /usr/bin/ntlm_auth. Положите его в папку /home/wnam/cgi/ , дайте скрипту права +x.

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

/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.


  • No labels