вторник, июля 25, 2006

SQUID с winbind (ntlm,basic) авторизацией

Сначала SAMBA (я ставлю 2)
./configure --with-winbind --with-winbind-auth-challenge --without-cups
make install

cd /usr/local/samba/lib
ee smb.conf

Содержимое smb.conf

workgroup=WORK - Имя нашего Windows-домена
netbios name=PDC - Имя сервера (необязательно)
server string=ProxyServer
hosts allow=10.128. 127. - Для безопасности.
winbind separator=+
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

cd /usr/local/etc/rc.d
ee winbindd.sh

содержимое winbindd.sh

#!/bin/sh
/usr/local/samba/bin/winbindd

После изменения 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".

В кронтаб (/etc/crontab) добавить ежедневное обновление аккаунта в домене
0 12 1-31 * 0-6 root /usr/local/samba/bin/smbpasswd -t NANE_WIN_DOMAIN -r NAME_PDS

Теперь SQUID
тянем последний SQUID
./configure --enable-delay-pools --enable-auth="ntlm,basic" --enable-basic-auth-helpers="winbind" --enable-ntlm-auth-helpers="fakeauth" --with-samba-sourses=/usr/local/src/samba (путь к исходникам установленной самбы)
make
make install

Тестируем авторизатор SQUID
/usr/local/squid/libexec/wb_auth -d
потом вводим
WIN_DOMAIN+USERNAME USER_PASSWORD

если все хорошо то результат что-то подобное
wb_auth[91945](wb_basic_auth.c:55): winbindd result: 1
wb_auth[91945](wb_basic_auth.c:58\): sending 'OK' to squid

cd /usr/local/bin/etc/rc.d
ee squid.sh

содержание squid.sh

#!/bin/sh
/usr/local/squid/sbin/squid

cd /usr/local/squid/etc правим squid.conf

# добавить в раздел auth_param
auth_param ntlm program /usr/local/squid//libexec/fakeauth_auth
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

# добавить в раздел ACCESS CONTROLS
acl password proxy_auth REQUIRED

# добавить в раздел TAG: http_access
http_access allow password

# добавить в раздел TAG: cache_effective_user
cache_effective_user www

# добавить в раздел TAG: forwarded_for on|off
forwarded_for off

cd /usr/local/squid/var
создать папку cache, хозяин www
у папки logs хозяин www

Создаем кеш SQUID
squid -z

Запускаем SQUID, пробуем

P.S. Более подробно смотрим ресурс Все о Samba

2 комментария:

smilealex комментирует...

а не могли бы Вы подсказать, как обеспечить аутетификацию пользователей SAMBA(LDAP), с применением квот на траффик..
Спасибо)

Айзятуллен Рамиль комментирует...

Посмотрите это http://sams.perm.ru/