Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Сеть
Другие разделы библиотеки:
   БИБЛИОТЕКА Сеть    
Автор статьи:
Дата: 30.07.2003

Простая авторизация пользователей Squid в домене M$

последние исправления: 17.05.2003

1. Введение и отказ от обязательств.
Все, что здесь написано, не является каким-то официальным документом и не претендует на полноту
и исключительность. К созданию этого опуса меня побудили повторяющиеся вопросы (на форумах
http://linuxportal.ru и ) о том, как сделать то, что вынесено в заголовок. Здесь я опишу только то, что сделал я и только то, что у меня гарантированно работает.
Ну и под занавес немного примечаний. Я не обязываю вас делать то, что здесь описано и не утверждаю, что мои действия абсолютно правильны и что по-другому поступить невозможно. Это всего лишь описание моих действий, а не руководство к вашим действиям. Если вы решите действовать также, то все возможные последствия останутся на вашей совести и я не гарантирую того, что у вас все будет работать так же, как и у меня.

2. Что для этого нужно и где это взять.
- кэширующий прокси-сервер squid. Я использовал версию squid-2.4.DEVEL2, взятую с
- программу авторизации по протоколу smb на Win-машинах - smb_auth-0.05, взятую с

- samba-2.2.2 для smb_auth (точнее - только файлы nmblookup и smbclient), . Версия 2.2.7 также работает.

О том как собирать каждую из этих программ читайте в их файлах INSTALL.

3. Подстраиваем контроллер домена.
На контроллере домена (у меня это две w2k AS + TS) в папке %SystemRoot%\SYSVOL\sysvol\your_domain_name\scripts или,
короче говоря, в шаре NETLOGON надо создать файл под названием proxyauth. Его содержимое значения не имеет, так как smb_auth проверяет права на чтение этого файла и через прокси пройдут только те пользователи домена, которым разрешено читать этот файл.

4. Конфигурируем сквид.
В файле squid.conf (обычно находится в /etc/squid, но бывает всякое ) надо найти раздел под названием
"OPTIONS FOR EXTERNAL SUPPORT PROGRAMS", а в нем опцию "authenticate_program". Она должна выглядеть примерно так:

authenticate_program /path/to/smb_auth -W ИМЯ_ВАШЕГО_ДОМЕНА

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

acl domainusers proxy_auth REQUIRED

и указать правило для этого списка:

http_access allow domainusers

Все, теперь надо выйти в шелл и скомандовать

# squid -k reconfigure

У меня после этого все заработало как надо.

5. Примечания.
а) Правило "http_access allow domainusers" стоит прописать после всех правил allow, но перед всеми правилами deny, потому что сквид будет запрашивать авторизацию у всех, кто к нему придет и пытаться их проверять на контроллере домена. Поэтому если есть необходимость пустить кого-то напрямую, то либо пропишите это правило перед правилом про domainusers, либо вообще в обход сквида при помощи ipchains/iptables.

Наверное все это справедливо и для ftp_access и WinNT 4.0, но я этого не проверял.

б) Некоторые пользователи в моей сети используют в качестве логинов русский текст и из-за этого не могут авторизоваться. Проблема решилась правкой одной строки в скрипте /usr/bin/smb_auth.sh:

authinfo=`$SAMBAPREFIX/bin/smbclient "//$dcname/$AUTHSHARE" -I $dcip -d 9 -E -W "$DOMAINNAME" -c "get $authfilebs -" -U $USER 2>/dev/null`

Выделенный фрагмент необходимо добавить, в оригинале его нет.

6. Автор.
San АНДРЕЕВ.

Обоснованные исправления и дополнения приветствуются.



Все статьи раздела "Сеть"
©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: