Возможно вы искали: 'Secret Service: Securi...'

June 04 2025 21:55:48
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96551654
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18421
• Обзор The Walking ... 18867
• Обзор DMC: Devil M... 19942
• Обзор на игру Valk... 15936
• Обзор на игру Stars! 17827
• Обзор на Far Cry 3 18018
• Обзор на Resident ... 16082
• Обзор на Chivalry:... 17577
• Обзор на игру Kerb... 18036
• Обзор игры 007: Fr... 16680
Превью о играх
• Превью к игре Comp... 18018
• Превью о игре Mage... 14523
• Превью Incredible ... 14778
• Превью Firefall 13542
• Превью Dead Space 3 16396
• Превью о игре SimC... 14789
• Превью к игре Fuse 15492
• Превью Red Orche... 15602
• Превью Gothic 3 16403
• Превью Black & W... 17420
Главная » Статьи » Разное » Авторизация Windows-пользователей в SQUID на основе их доменных аккаунтов. (freebsd squid samba domain auth)

Авторизация Windows-пользователей в SQUID на основе их доменных аккаунтов. (freebsd squid samba domain auth)

Ключевые слова: freebsd, squid, samba, domain, auth, (найти похожие документы)

From: Дмитрий Новиков <dmn@nnz.ru>
Newsgroups: http://www.artmagic.ru/labs/
Date: Mon, 4 Dec 2002 13:01:37 +0000 (UTC)
Subject: Авторизация Windows-пользователей в SQUID на основе их доменных аккаунтов.

Оригинал: http://www.artmagic.ru/labs/sqlandwin.shtml

Авторизация доступа к Интернет
на основе Windows NT' 2000 авторизации.

Вступление

Классическим решением сандарта предприятия для организации
Интернет-сервисов является сервер под управлением UNIX. Практически
всегда для Web и FTP трафика используют кеширующий сервер SQUID,
который также является стандартом de facto.
Стандартным способом предоставления доступа к SQUID-серверу является
доступ на основе специалицированных списков доступа (Access Lists или
ACL). В свою очередь списки доступа обычно строятся на основе
IP-сетей, которым разрешен доступ к SQUID. Например, определим ACL,
которая описывает сеть 10.128.0.0/16 (или с маской 255.255.0.0). и
ACL, которая описывает вообще все адреса
squid.conf:
acl net10128 src 10.128.0.0/16
acl all src 0.0.0.0/0
а теперь разрешим ей доступ к Интернет ресурсам
http_access allow net10128
а всем остальным - запретим:
http_access deny all

После этого, только компьютерам из заданной сети разрешен доступ к
Интернет. При использовании Internet-ресурсов, в лог-файл squid
записывается информация о конкретном адресе, запросившем конкретный
Интернет-ресурс:
acess.log:
1032862411.262 96 10.128.15.4 TCP_MEM_HIT/200 2581 GET
http://www.ru/eng/images/ssilki.jpg board/sag NONE/- image/jpeg

Здесь присутсвует дата, размер ресурса, IP-адрес станции, зпросившей
ресурс, и сам ресурс. Из такого рода записей можно подсчитать трафик
как по станции, так и по под-сети.
Однако приведенная выше технология позволяет контролировать трафик по
IP-адресу Интернет-пользователя. В большинстве случаев этот способ
вполне подходит, однако при этом необходимо, чтобы за конретным
компьютеров всегда работал конкретный человек.
Это условие выполняется не всегда и тогда учет трафика нарушается. Вот
типичные условия, при которых требуется другая схема авторизации в
Интернете:
* Различные пользователи работают на одном и том же рабочем месте
(например, посменно)
* Пользователи вообще не привязаны к конкретным компьютерам.
* Пользователи работают в терминальных сессиях терминального
сервера. Тогда вообще весь Интернет-трафик идет с IP-адреса
сервера.

Поэтому часто встает проблема учета трафика не на основе IP, а на
основе другой информации.

Авторизация на основе логина и пароля

Логичным решением поставленной во вступлении проблемы является
авторизация в SQUID по логину и раолю. Такая возможность в SQUID,
естесвенно предусмотрена. В SQUID для этого разработана возможность
авторизовать через внешнюю программу, которая просто "говорит" "да или
"нет" на определенног о пользователя и пароль. Т.о. Можно производить
авторизацию по учетной записи умеет производить авторизацию через
учетные записи UNIX, через текстовые файлы и т.п.
Например, для того чтобы пользователь авторизовался через файл
/usr/local/squid/passwd формата Веб-авторизации (формат Apache), нужно
скомпилировать squid вместе с этим модулем (--enable-auth="ncsa;
подробнее см. документацию к SQUID). И в конфиг SQUID добавить ACL и
разрешающее правило:

Разрешает доступ пользователям dima petya vasya, пароли которых будут
проверены через файл /usr/local/squid/passwd
acl MYUSERS proxy_auth dima petya vasya
http_access allow MYUSERS
http_access deny all
authenticate_program /usr/local/squid/bin/ncsa_auth
/usr/local/squid/etc/passwd *)
*) для версии 2.4

При этом, это решает поставленные в "Введении" проблемы, однако
добавляет некоторые неудобства пользователям и администратору:
* При первичном входе в Интернет пользователю нужно набратьв
броузере логинпароль для доступа к SQUID. И каждому пользователю
необходимо помнить свои параметры.
* Администратору необходимо вести базу логинов и паролей в файле.

Авторизация через учетные записи Windows

При работе в Windows-сетях каждый пользователь при входе в сеть
проходит авторизацию в NT(2000)-домене. Было бы здорово использовать
эти данные для авторизации SQUID. Тогда решаются проблемы ведения в
SQUID отдельной базы данных пользователей и, как оказалось, можно
решить проблему запроса логинапароля в броузере при входе в Интернет.
Главная проблема при решении авторизации через Windows-домен - найти и
настроить программу для авторизации заданного пользователя в
Windows-домене. Команда SQUID рекомендует пользоваться программой
winbindd, которая является частью проекта SAMBA (реализация Windows
сервера и клиента под UNIX), SQUID, начиная с версии 2.5 поддерживает
различные схемы авторизации по логинупаролю, включая basic и NTLM (NT
Lan Manager). Basic-схема предназначена для авторизации через ввод
логинапароля в броузере, а NTLM-схема предназначена для
автоматического приема броузером логина, пароля и домена, под которыми
пользователь зарегистрировался в Windows-домене. Т.о. с помощью
NTLM-авторизации можно автоматически регистрироваться в SQUID без
ручного подтверждения логина и пароля.

Практическое решение построения системы авторизации через Windows
домен.

Практическое решение проблемы было найдено опытным путем и может быть
не самым изящным и правильным. Но прелесть его в том, что оно доделано
да конца и работает.

Исходные данные

1.Компьютер, подключенный к Интернет с установленной ОС: FreeBSD 4.4
(версия и сама ОС не имеют принципиального значения)
2.Сеть, содержащая около 200 Windows-станций, включая терминальные
серверы и клиенты
3.Около 250 аккаунтов в домене под управлением Windows 2000 Advanced
сервер (домен WORK и 4 доверительных домена).
Задача.
Обеспечить авторизацию пользователей на SQUID через учетные записи
Windowы наиболее удобным способом.

План действий
1.Установка и конфигурация SAMBA.
* Итак первое, что надо сделать - установить SAMBA для того,чтобы
уметь авторизоваться в Windows-домене. Я установил версию
2.2.6pre2. Причем, важно скомпилировать SAMBA с поддержкой
winbind, т.е. С параметрами
--with-winbind
--with-winbind-auth-challenge

Примечание:
В FreeBSD SAMBA была собрана из портов (ports) и оказалось, что с
текущей версией не собирается библиотека CUPS. Поэтому SAMBA была
собрана без нее (--without_cups).
* После установки, SAMBA нужно настроить на домен Windows сети и на
использование winbind:
[global]
workgroup = WORK - Имя нашего Windows-домена
netbios name = vGATE - Имя сервера (необязательно)
server string = vGate
hosts allow = 10.128. 127. - Для безопасности.
winbind separator = +
winbind use default domain = yes
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
Следует обратить внимание на 2 вещи:
1. Сначала в параметре password server был указан только PDC
(Primary) и winbind не смог найти контроллер домена. Все
заработало когда был добавлен BDC (Exch).
2. Оба имени - это NetBIOS имена и для того, чтобы они равильно
интерпретировались в IP я прописал их в /usr/local/etc/lmhosts
10.128.1.40 Primary
10.128.1.34 Exch
* После этого необходимо заригестрировать SAMBA в домене Windows.
Для этого нужэно набрать команду:
/usr/local/sbin/smbpass -j WORK (наш домен) -r Primary(наш PDC)
-UAdministrator
После этого, следует ввести пароль админиcтратора домена.
Наблюдались проблемы с samba 2.2.4 и регистрацией в нашем ломене -
именно поэтому была поставлена версия 2.2.6 из портов.
Далее можно запустить nmbd (/usr/local/sbin/nmbd -D) лучше с
включенным дебагом (-d9) и посмотреть в лог-файл, что сеть
нормально видна.
* Далее можно смело пускать winbindd (/usr/local/sbin/winbindd -d9)
- тоже с дебагом и посмотреть как он себя "чувствует" в нашей
сети. Спустя примерно секунд 10, можно проверить а запустился ли
winbind и функционирует ли он.
* Для взаимодействия с winbind служит команда wbinfo. Проверить
"видит" ли она winbindd вообще можно командой wbinfio -p. Если она
ответит: 'ping' to winbindd succeeded, то значит все в порядке.
Иначе надо смотреть в лог-файл winbindd и понимать почему он не
запустился. (На самом деле запускается он всегда, да вот на
запросы отвечает только если правильно видит сеть). Далее можно
попробовать проверить а видит ли winbindd сервер с паролями
пользователей (wbinfo -t). Сервер должен сказать "Secret is good".
Если получен ответ "Secrets is bad" то скорее всего проблемы с
библиотеками winbindd.
1. Остановите smbd и winbindd
2. Удалите файлы secrets.tdb и MACHINE.SID (последнего может и
не быть)
3. На PDC удалите запись о компьютере и одождите удаления его из
кэша (примерно 10 минут)
4. cp nsswitch/libnss_winbind.so /libln
5. ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.1
6. ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2
7. В файле /etc/nsswitch.conf должен содержать стро вида
passwd: files winbind
group: files winbind
8. Запустите smbd
9. Запустите winbindd
10. Добавте машину в домен, как указано выше.
11. Проверьте правильность работы командой wbinfo -t

Если выдержать нужный интервал в пункте 3, то всё должно заработать.

И, наконец, можно попробовать авторизоваться из UNIX в Wondows
домен:
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)

Если неправильный пароль, то
error code was NT_STATUS_WRONG_PASSWORD (0xc000006a)
Could not authenticate user dmn%doct with plaintext password
challenge/response password authentication faile
error code was NT_STATUS_WRONG_PASSWORD (0xc000006a)
Could not authenticate user dmn with challenge/response

Все это значит, что модуль wbinfo наконец настроен и правильно
функционирует. Можно приступать к настройке SQUID.

2.Теперь нужно настроить SQUID.
* Для начала, нужно отметить, что NTLM схему поддерживает SQUID,
начиная с версии 2.5. Поэтому я скачал версию 2.5.PRE13.
* Далее, SQUID нужно скомпилировать с поддержкой схем авторизации и
модулем
winbind../configure -enable-auth="ntlm,basic"
--enable-basic-auth-helpers="winbind"
--enable-ntlm-auth-helpers="winbind"
* Теперь можно проверить а понимает ли SQUID-овский авторизатор
winbind. Для этого нужно запустить:
/usr/local/squid/libexec/wb_auth -d
И ввести вручную имя пароль (через пробел).
Если все работает корректно, то программа выдаст
/wb_auth[91945](wb_basic_auth.c:129): Got 'dmn XXXXX' from squid
(length: 10).
/wb_auth[91945](wb_basic_auth.c:55): winbindd result: 0
/wb_auth[91945](wb_basic_auth.c:58): sending 'OK' to squid
* После этого, нужно настроить squid, чтобы он корректно работал на
основе IP-авторизации (см введение).
* Теперь осталось подключить авторизацию к SQUID. Для этого в
конфиге SQUID нужно описать в схемы авторизации через winbind
auth_param ntlm program /usr/local/squid/libexec/wb_ntlmauth
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutesauth_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 будет спрашивать пароль.
* Дальше нужно сделать соответсвующую ACL и параметр доступа. Важно,
чтобы это шло после описания авторизаций.
acl myusers proxy_auth REQUIRED
http_access allow myusers
http_access deny all
Теперь остается запустить SQUID и все проверить.

Что должно быть
* Если пользователь авторизовался в домене, то IE не спросит пароль,
а пойдетт сразу в Интернет. Причем, в лог-файле SQUID будет
бесценная информация, а кто это был:
1032943720.839 180 10.128.36.5 TCP_CLIENT_REFRESH_MISS/200 1280
GET http://www.ru/eng/images/demos.jpg workdmn DIRECT/194.87.0.50
image/jpeg
Т.е. Это был пользователь dmn из домена work.
* Если пользователь не авторизовался в домене - его спросят логин и
пароль. Если он введет логинпароль такой же, как при входе в
домен, то его пустят в Интернет.
* Если пользователь пользуется не IE (например, Mozilla, Netscape,
Opera), он будет должен набрать свой логин и пароль для
авторизации в Windows.
* Если аккаунт в Windows-домене закрыт, то и доступ в Интернет будет
закрыт.

Примечания
* Winbind корректно авторизует не только в заданном домене, но и в
Trust-доменах, TRUST-домены можно посмотреть командой wbinfo -m
* Вообще у команды wbinfo есть масса полезных функций, подробнее их
можно узнать wbinfo -h
* По умолчанию для FreeBSD 4.4 из портов устанавливается версия
SQUID 2.4. Она не подходит. Пакет нужно качать с сайта
www.squid-cache.org.
* Пути к программам для различных ОС могут быть разными

Ссылки
* Документация по SQUID: http://www.squid-cache.org
* FAQ по SQUID как надо настраивать WinBIND авторизацию:
http://www.squid-cache.org/Doc/FAQ/FAQ-23.html
* Документация по SAMBA: www.samba.org
* Поиск по группам новостей через http://www.google.com по поисковым
словам squid winbind wb_auth ntlm

Отзывы и дополнения присылайте Дмитрию Новикову на адрес dmn@nnz.ru

Дополнения после публикации на http://www.linux.org.ru
Господин с ником "and3008" дополняет и разъясняет:
1. Авторизация при прозрачном кэшировании НЕВОЗМОЖНА!
2. Про безопасность: NTLM действительно является не безопасной штукой.
По крайней мере версия 1.0 В WinNT 4.0 с SP3 и выше и Win2000
используется NTLM версии 2.0 В Самбе он так же используется по
умолчанию (с версии 2.2.0 кажись). plain-text используется когда
клиент (браузер) не умеет авторизоваться по NTLM. На сегодняшний день
это умеет делать только IE 4.X и выше. Пароль при plain-text
авторизации все же не передается в чистом виде. Применяется
кодирование base64. Так что школьники-кулхацкеры вероятно отдохнут. :)

3. Лирическое отступление по поводу паролей. Более-менее надежной
является аутентификация через Kerberos, но дядя Билл сделал в W2K свою
реализацию Kerberos и таперича его низя использовать из других
(отличных от Windows) систем. В связи с этим Самба доселе не может
подружиться с W2K доменом в режиме native.

4. Аутентификация NTLM не работает в случае если кэши работают в
режиме "ёлки". Авторизацию NTLM over HTTP не работает через иерархию
прокси. Это ФАКТ!

Много вопоросов было как авторизовать опреленные группы из Wondows
домена. Господин с ником "debosh2k" разъясняет:
Для авторизации групп - --enable-external-acl-helpers="winbind_group"
(это при компилировании SQUID) далее идем в
$src/helpers/external_acl/winbind_group и читаем readme. Пишем три
строки в конфге (SQUID) и тащимся.
PS. Есть еще wbinfo_group тамже - враппер на перле.
595 Прочтений •  [Авторизация Windows-пользователей в SQUID на основе их доменных аккаунтов. (freebsd squid samba domain auth)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Авторизация Windows-пользователей в... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка