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

Compare with Current View Page History

« Previous Version 16 Next »

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

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

Внимание! Взаимодействие с другими системами управления доменом, или другими LDAP-серверами, в настоящее время не поддерживается. Если вам это требуется - пишите на support@netams.com 

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

Запускаем:

systemctl unmask samba
systemctl enable samba
systemctl restart samba

/etc/init.d/nmbd restart

/etc/init.d/smbd restart

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

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 сможет общаться к контроллером домена, и использовать его для проведения EAP-PEAP/MSCHAPv2 авторизации абонентов вашей сети.


  • No labels