Как подружить samba+squid+w2k/2k3

Автор: Bumper

Если PDC на Win2000:

1. Собираем и настраиваем Samba 3.0.4, думаю и любая ветка 3-ей версии самбы пойдет.
./configure --prefix=/usr/local/samba --with-winbind --with-winbind --enable-auth="ntlm,basic" --enable-external-acl-helpers="wbinfo_group"

Я предпочитаю что бы все собранные пакеты лежали у меня в /usr/local/, поэтому указанное здесь значение ключа --prefix= может не совпадать с вашим.

Далее как обычно: make && make install

Затем: chown -R root:squid /usr/local/samba/var/locks/winbindd_privileged/   иначе NTLM работать не будет.  ;)

Пробуем добавить машину в домен:

./net join -w "domain" -u "domainadmin"

Пример моего smb.conf

[global]
        nt acl support = yes
        nt status support = yes
        dos charset = CP866
        unix charset = KOI8-R
        dns proxy = no
        encrypt passwords = yes
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        max log size = 50
        hosts allow = 192.168.33.0/24 127.0.
        password server = *
        allow trusted domains = yes
        security = domain
        unix password sync = Yes
        log level = 4
        local master = no
        server string = Golem Server
        workgroup = domaingroup
        log file = /var/log/samba.%m
        netbios name = Golem
        guest account = nobody
        winbind separator = +
        winbind use default domain = yes
        winbind uid = 10000-20000
        winbind gid = 10000-20000
        winbind enum users = yes
        winbind enum groups = yes
        template shell = /bin/bash

На этом с samba пока закончили.

2. Настраиваем Squid

На сборке и ключах необходимых для работы Squid я останавливаться не буду, они ничем не отличаются от тех что указаны в документации по Sams.

Идем в каталог с squid.conf и вносим необходимые изменения

auth_param ntlm children 5
auth_param ntlm program /usr/local/samba/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes

auth_param basic children 5
auth_param basic program /usr/local/samba/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

3. Тестирование связки samba + squid

Запускаем winbindd, и демоны samba.

Пробуем авторизоваться через winbind:

./wbinfo -a user%passwd

Ответ должен быть:
plaintext password authentication succeeded
challenge/response password authentication succeeded

Проверим NTLM авторизацию через сквид: ./ntlm_auth --helper-protocol=squid-2.5-basic

Вводим: domain+user password

Если получаем ответ:
[2004/12/02 14:38:42, 3] utils/ntlm_auth.c:check_plaintext_auth(292)
  NT_STATUS_OK: Success (0x0)
OK

Значит все отлично. Если нет, то смотрим логи на предмет ошибок. И незабываем контролировать запущен ли демон winbindd и правильно ли прописаны в /etc/nsswitch.conf параметры:

passwd: files winbind
group: files winbind

4. Самое основное, тестирование работы Интернет через IE.

Ошибки и проблемы с которыми столкнулся я:

Пользователей не пускает в инет, смотрю логи, вижу что там при попытке открыть сайт есть и IP адрес и имя пользователя. Казалось бы, должно все работать на ура !!!

1101982084.521     19 192.168.33.197 TCP_IMS_HIT/304 217 GET http://www.porta.ru/images/service/pic03.gif IGOR NONE/- image/gif
1101982084.567    116 192.168.33.197 TCP_MISS/200 2833 GET http://mirror.holder.ru/wwwporta/mimages/13038.gif IGOR DIRECT/62.118.251.89 image/gif
1101982084.604    205 192.168.33.197 TCP_MISS/200 1342 GET http://mirror.holder.ru/wwwporta/mimages/2009.gif IGOR DIRECT/62.118.251.89 image/gif
1101982084.743    211 192.168.33.197 TCP_MISS/200 1643 GET http://mirror.holder.ru/wwwporta/mimages/11902.gif IGOR DIRECT/62.118.251.89 image/gif
1101982084.749    117 192.168.33.197 TCP_MISS/200 1790 GET http://mirror.holder.ru/wwwporta/mimages/11903.gif IGOR DIRECT/62.118.251.89 image/gif
1101982084.816    124 192.168.33.197 TCP_MISS/200 1331 GET

Проверяю файл default.sams там пользователь IGOR указан как domainname\igor
В настройках sams отметил галочкой только "Имя пользователя выводится ПРОПИСНЫМИ буквами" остальные галки снал, все сразу заработало. И еще, ntlm_auth сравнивает то, что ему поступает от sams с именами пользователей в домене (поле идущее за "User logon name (pre-Windows 2000)" у нас они заведены были черти как, у кого то с заглавной буквы у кого все малые, у кого то все прописные. Благо их немного, перештамповали всех к единому знаменателю, теперь у всех имена прописными указаны.

Если PDC на Win2003 Server:

При попытке завести 2.2.7 в домен /usr/local/samba/bin/smbpass -j "domain" -U "domaindmin" получаем "NT_STATUS_ACCESS_DENIED". Поэтому схема добавления в домен меняется, сначала необходимо на PDC в Active directory добавить компьютер, на котором установлена samba, поставив галочку "назначить учетной записи статус пред-Windows 2000 компьютера". После этого уже использовать - /usr/local/samba/bin/smbpass -j ну и т.д.

Что касается samba 3.0, то тут меняется только утилита добавления машины в домен: с smbpasswd на net join.