Linux, Squid и NTLM-авторизация

Обсуждение технических вопросов по продуктам Novell под Linux, а также *nix систем

Linux, Squid и NTLM-авторизация

Сообщение Игорь Вершинин » 23 сен 2005, 11:30

Во всех статьях, которые я находил в Инете, указывается как настроить NTLM-авторизацию (это когда пользователь логинится в домен НТ, а сквид, используя эту информацию, прозрачно авторизует пользователя при доступе в Инет) в пределах одного сервера. Т.е. на сервере стоит первичный домен на Samba и туда же вставляют Squid.
Понятно, что эта конфигурация скорее лабораторная, нежели рабочая. Во-первых, такой вариант гораздо менее масштабируем по количеству пользователей, во-вторых, с точки зрения безопасности и т.п. тоже как-то страшно, в-тертьих, ... еще есть ряд аргументов.
Надо сделать так, чтобы на одном сервере внутри сети стояла Samba с первичным контроллером домена, а на другом, где гейт в Инет, стоял Squid и всех прозрачно авторизовывал. Такое возможно?
Как вариант решения была идея поднять на сервере со Squid вторичный контроллер на Samba. Но решение какое-то некрасивое и громоздкое.
Аватара пользователя
Игорь Вершинин
 
Сообщения: 387
Зарегистрирован: 05 июн 2002, 20:34
Откуда: Волгоград

Сообщение Константин Ошмян » 23 сен 2005, 11:54

Ну, у нас работает - вообще без Самбы. Только NTLM - не авторизация, а аутентификация, это всё-таки разные вещи. Пользователи берутся из реального домена AD, права (кому куда и когда можно/нельзя ходить) раздаются на основе членства в группах, которое проверяется через LDAP.

Т.е. аутентификация (подтверждение, кто есть кто) - через NTLM. Авторизация (определение прав) - через LDAP. И то, и другое завязано на обращение к контроллеру домена Active Directory. Сам Squid при этом работает на Sun-е (под Solaris-ом), пользователей несколько сотен, браузер MSIE 6.0 SP1 аутентификацию выполняет прозрачно для пользователя, в случае наиболее популярных "отлупов" (нет прав, запрещённый сайт, нерабочее время и т.п.) выводит вежливое, но конкретное сообщение о причине на трёх языках (английский/латышский/русский) - коллектив многоязычный. Работает уже более двух лет, достаточно стабильно.

А в чём вопрос-то?
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Сообщение Андрей Тр. aka RH » 23 сен 2005, 16:58

Константин Ошмян писал(а):Пользователи берутся из реального домена AD.. браузер MSIE 6.0 SP1 аутентификацию выполняет прозрачно для пользователя
Т.е. пользователи предварительно логинятся в домен АД ( кстати, так это домен или АД ? или все же в АД так и остались домены ? ) ? и именно поэтому получается прозрачная ? А вот если в АД просто существуют аккаунты, с паролями, совпадающими с пользовательскими ( в еДире, куда реально логинятся эти пользователи ), то получится ли прозрачная аутентификация ?
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Константин Ошмян » 23 сен 2005, 17:25

Андрей Тр. aka RH писал(а):
Константин Ошмян писал(а):Пользователи берутся из реального домена AD.. браузер MSIE 6.0 SP1 аутентификацию выполняет прозрачно для пользователя
Т.е. пользователи предварительно логинятся в домен АД ( кстати, так это домен или АД ? или все же в АД так и остались домены ? ) ? и именно поэтому получается прозрачная ? А вот если в АД просто существуют аккаунты, с паролями, совпадающими с пользовательскими ( в еДире, куда реально логинятся эти пользователи ), то получится ли прозрачная аутентификация ?
Да, именно так - пользователи логинятся в Microsoft Network, в домен Active Directory (домены там так и остались, но это другая тема). Т.к. есть готовый логин в Microsoft Network, то далее MSIE пытается те же самые credentials использовать и при NTLM-аутентификации к Сквиду. При успехе эта аутентификация получается прозрачной, если не получилось (например, на Windows 9x в MS Network не зашли либо клиента для MS Network вообще нет) - выскакивает окошко: "Введи имя/пароль/домен". При этом, насколько я понимаю (возможно, ошибочно), куда именно пользователь через MS Network залогинился (локально или в домен, да и в какой именно домен) - роли не играет, т.к. Сквид будет в любом случае лезть на тот контроллер домена, который указан в его настройках.

Залогинен ли при этом пользователь в eDirectory (и кем), роли не играет, т.к. про него Internet Explorer ничего не знает.
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Сообщение Андрей Тр. aka RH » 23 сен 2005, 17:32

Константин Ошмян писал(а):Залогинен ли при этом пользователь в eDirectory (и кем), роли не играет, т.к. про него Internet Explorer ничего не знает.

Это я понимаю, просто меня интересует немного другой случай. Когда пользователи логинятся в еДир, а этот еДир каким-то образом синхронизирован с АД ( и нужные группы тоже, по которым пускать / не пускать в Инет ). Т.е., конечно, при этом они логинятся еще и локально на рабочей станции.
Константин Ошмян писал(а):При этом, насколько я понимаю (возможно, ошибочно), куда именно пользователь через MS Network залогинился (локально или в домен, да и в какой именно домен) - роли не играет, т.к. Сквид будет в любом случае лезть на тот контроллер домена, который указан в его настройках.
Ага .. логично, я тоже вот так думаю ( точнее - надеюсь :) ). Интересно, кто-нибудь реально это проверял ..
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Константин Ошмян » 23 сен 2005, 17:55

Андрей Тр. aka RH писал(а):[...] меня интересует немного другой случай. Когда пользователи логинятся в еДир, а этот еДир каким-то образом синхронизирован с АД ( и нужные группы тоже, по которым пускать / не пускать в Инет ). Т.е., конечно, при этом они логинятся еще и локально на рабочей станции.
Константин Ошмян писал(а):При этом, насколько я понимаю (возможно, ошибочно), куда именно пользователь через MS Network залогинился (локально или в домен, да и в какой именно домен) - роли не играет, т.к. Сквид будет в любом случае лезть на тот контроллер домена, который указан в его настройках.
Ага .. логично, я тоже вот так думаю ( точнее - надеюсь :) ). Интересно, кто-нибудь реально это проверял ..
Ну вот я сейчас проверил. Завёл себе на своей машине локального пользователя с таким же именем и паролем, как и у доменного, перелогинился только локально (этим пользователем), открыл MSIE - пускает, аутентифицирует прозрачно, ничего не спрашивает.
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Сообщение Андрей Тр. aka RH » 23 сен 2005, 18:08

Большое спасибо. Просто у меня у самого в данный момент нет возможности проверить.
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Александр Читалкин » 23 ноя 2005, 19:33

Для прозрачной аутентификации в домене squid использует компонент под названием winbind. Работает эта фишка, насколько мне известно, только в IE. Также, рабочая станция должна быть включена в домен, а пользователь должен в него войти. Подключения к другим службам каталогов с помощью других клиентов, отличных от MS, не играют никакой роли. В будущих ситемах win механизм, благодаря которому работае winbind, будет отключен по соображениям безопасности.
Аватара пользователя
Александр Читалкин
 
Сообщения: 112
Зарегистрирован: 13 ноя 2002, 23:29
Откуда: Москва

Сообщение Константин Ошмян » 24 ноя 2005, 13:13

Александр Читалкин писал(а):Для прозрачной аутентификации в домене squid использует компонент под названием winbind. Работает эта фишка, насколько мне известно, только в IE.
Позволю себе не согласиться.
1. Для аутентификации Squid использует внешние прогораммы - хелперы (helpers), их в комплект поставки входит несколько для разных механизмов аутентификации и стыковки с разными службами (опять же - внешними по отношению к Squid-у). Какой именно из них выбрать - дело администратора. Мы, например, пользуемся хелпером ntlm_auth.
2. Насколько прозрачной будет аутентификация зависит не столько от сервера, сколько от клиента. Под "фишкой" Вы, видимо, имели в виду не упомянутый Вами winbind, а механизм NTLM - аутентификация по этому протоколу, действительно, работает прозрачно лишь у MSIE. Однако нами такая конфигурация была выбрана отнюдь не поэтому, а из-за бОльшей безопасности его по сравнению с другими вариантами, позволявшими стыковать Squid с внешними службами каталога.
3. Про вход пользователя в домен я уже говорил чуть выше.
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Сообщение Андрей Тр. aka RH » 24 ноя 2005, 14:01

Спасибо за комментарии, я тут недавно перечитывал эту ветку, для меня до сих пор актуальную. Насчет будущего - откуда такие данные, это что ли про Висту ? Т.е. я в раздумьях, имеет ли смысл городить огород с NTLM-аутентификацией, если через год-два придется это дело как-то менять ( хотя к тому времени, вероятно, появятся какие-то новые возможности и у браузеров, и у Сквида и пр. ).

Насчет клиентов - все же, как я понял из вышенаписанного, пользователю необязательно в явном виде логиниться в домен, достаточно только в Виндоуз ( на рабочей станции ) существовать локальному аккаунту с именем и паролем, идентичными имени и паролю пользователя в некоем домене - через который настроена аутентификация Сквида ( с помощью NTML-хелпера ).

Собственно, указание домена в настройках Сквида ( хелпера ) является единственной ассоциацией данного пользователя с доменом, правильно ли я понимаю ? Вопрос в том, необходимо ли наличие на рабочей станции клиента для сетей M$ с прописанным в нем доменом ? Как я понимаю, в данном случае - нет, ведь никакого контакта между рабочей станцией и собственно доменом не происходит ( они физически могут находиться в разных сетях ). Так или нет так ?
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Александр Читалкин » 24 ноя 2005, 19:06

Для аутентификации Squid использует внешние прогораммы - хелперы (helpers), их в комплект поставки входит несколько для разных механизмов аутентификации и стыковки с разными службами (опять же - внешними по отношению к Squid-у). Какой именно из них выбрать - дело администратора. Мы, например, пользуемся хелпером ntlm_auth

Совершенно согласен. Под словом "компонент" я подразумевал компонент Squid, который называется winbind. Он включает в себя authentication helper для механизма аутентификации NTLM, с автоматическим получением учетных данных от MSIE, конструкцией вида domain\user. Зовется он wb_ntlmauth. А также для схемы basic, под названием wb_auth. Работают они с демоном winbindd, который находиться в комплекте Samba. В результате, для работы с доменом используется протокол NTLM SSP, и пароль на проверку не передается по сети в открытом виде, в отличие от стандартного сквидовского auth_ntlm. Разработчики Squid официально рекомендуют использование Winbindd для работы с Windows-доменами.

Надо заметить, что в Самба третьей версии предлагает свой собственный, безопасный auth_ntlm, и использование хелперов Squid'а не требуется. Squid'овский winbind будет вскоре исключен из дистрибутивов.

Насчет клиентов - все же, как я понял из вышенаписанного, пользователю необязательно в явном виде логиниться в домен, достаточно только в Виндоуз ( на рабочей станции ) существовать локальному аккаунту с именем и паролем, идентичными имени и паролю пользователя в некоем домене - через который настроена аутентификация Сквида ( с помощью NTML-хелпера ).

Собственно, указание домена в настройках Сквида ( хелпера ) является единственной ассоциацией данного пользователя с доменом, правильно ли я понимаю ? Вопрос в том, необходимо ли наличие на рабочей станции клиента для сетей M$ с прописанным в нем доменом ? Как я понимаю, в данном случае - нет, ведь никакого контакта между рабочей станцией и собственно доменом не происходит ( они физически могут находиться в разных сетях ). Так или нет так ?

MSIE передает учетные данные в виде domain\user (кстати, только после третьего отлупа TCP_DENIED/407 от сквида). После чего эти данные проверяются на DC домена. Формально, каждый пользователь получает доступ к сквиду при наличии действующей учетки в домене. Однако, на практике, winbindd не давал положительный ответ сквиду от домена, если клиент не включен в этот домен - может MSIE не отправляет данные? Тут могу запросто ошибаться, эксплуатировать вышеописанный механизм приходилось по большей части на машинах-участниках домена.
Аватара пользователя
Александр Читалкин
 
Сообщения: 112
Зарегистрирован: 13 ноя 2002, 23:29
Откуда: Москва


Вернуться в *nix

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

cron