Необходимо чтобы SAMBA была собрана с поддержкой winbind, т.е.
configure --with-winbind --with-winbind-auth-challenge
далее компилируем и инсталлируем:
make
make install
После установки, SAMBA нужно настроить на использование winbind и домен Windows.
Файл smb.conf должен содержать следующие строки:
[global]
workgroup = WORK - Имя нашего Windows-домена
netbios name = PDC - Имя сервера (необязательно)
server string = ProxyServer
hosts allow = 10.128. 127. - Диапазоны IP адресов, с которых могут обращаться к samba. Для безопасности.
winbind separator = +
Если у вас в сети только один домен и вы хотите при авторизации пользователя на PDC
использовать только имя пользователя без имени домена, можно прописать
winbind use default domain = yes
Иначе, если вы хотите использовать при авторизации конструкцию domain+user (у вас в сети несколько доменов), пропишите
winbind use default domain = no
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/winnt/%D/%U
template shell = /bin/bash
max log size = 50
security = domain
password server = Primary Exch - серверы паролей (PDC, BDC)
encrypt passwords = yes
Создайте каталог /etc/samsba/private.
После изменения smb.conf можно попробовать зарегистрироваться в домене Windows.
smbpasswd -j WORK (наш домен) -r Primary(наш PDC) -U Administrator
Необходимо чтобы первый вход с компьютера с samba был осуществлен из-под пользователя
домена windows, имеющего права администратора домена. В этот момент происходит обмен секретами между samba и контроллером домена.
Если регистрация в домене прошла успешно, будет выдано сообщение:
Joined domain YourDomain.
Далее запускаем демона WINBINDD:
winbindd -d9
и контролируем его работу:
команда wbinfo -p должна вернуть:
'ping' to winbindd succeeded
команда wbinfo -t должна вернуть:
"Secret is good".
Если это не так, заглядываем в логи winbind и разбираемся в чем дело.
Копируем библиотеку libnss_winbind.so в каталог /lib:
cp nsswitch/libnss_winbind.so /lib
создаем символические ссылки на нее:
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.1
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2
Изменяем файл /etc/nsswitch.conf. Он должен содержать строки вида
passwd: files winbind
group: files winbind
Перезапустите winbindd
Пробуем авторизовать пользователя в Windows домене:
wbinfo -a [домен+]пользователь_домена%пароль
если авторизация прошла успешно, будет выдано сообщение:
plaintext password authentication succeeded
error code was NT_STATUS_OK (0x0)
challenge/response password authentication succeeded
error code was NT_STATUS_OK (0x0)
в файл /etc/squid/squid.conf добавляем строки:
auth_param ntlm program /usr/lib/squid/wb_ntlmauth
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param basic program /usr/local/squid/libexec/wb_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
Причем важно чтобы NTLM авторизация шла первой, иначе будет применяться авторизация basic, и IE будет спрашивать пароль.