прозрачная NTLM-авторизация в squid

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

прозрачная NTLM-авторизация в squid

Сообщение Yuriy Levin » 19 янв 2004, 15:33

Возможно ли организовать на базе NTLM-авторизации прозрачную передачу пароля от Internet Explorer в Squid, если используется сеть без доменов WinNT?

Насколько я понимаю, наличие домена WinNT необходимо лишь для проверки достоверности переданных данных. Требуется осуществить прозрачную для пользователя авторизацию в squid. Знаю, что эта тема уже многократно обсуждалась, однако все предложенные решения подразумевают лишь автоматизацию проверки подлинности имени и пароля, которые пользователь вводит вручную. А хотелось бы сделать их передачу на прокс прозрачной, как то делает clntrust.
Yuriy Levin
 
Сообщения: 60
Зарегистрирован: 09 дек 2002, 13:24
Откуда: Минск

?

Сообщение skoltogyan » 20 янв 2004, 10:01

Т.е. если пользователь уже залогинился в домене иNT , запускает на станции IE и без дополнительных вопросов получает доступ к интернет ?

Щтатно на сквид нельзя. Для этого пприйдется пиать и клиенскую приблуд и к свкиду прикручивать.

Что-бы сквид спрашивал пароль у юзверя и серялся по доменй NT - можно.

То, что Вы хотите делается при помощи IIS +AD
skoltogyan
 
Сообщения: 2037
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Re: ?

Сообщение Yuriy Levin » 20 янв 2004, 11:30

skoltogyan писал(а):Т.е. если пользователь уже залогинился в домене иNT , запускает на станции IE и без дополнительных вопросов получает доступ к интернет ?

Щтатно на сквид нельзя. Для этого пприйдется пиать и клиенскую приблуд и к свкиду прикручивать.

Как раз можно.

http://www.squid-cache.org/Doc/FAQ/FAQ-23.html#ss23.5
http://linux.yaroslavl.ru/docs/faq/squid/FAQ-23.html#ss23.5

Правда, как я понял, штатные хелперы к squid, которые все это реализуют, тут же сверяют имя и пароль в домене. А я бы хотел найти такой хелпер, который хотя бы просто позволял получить имя и пароль на машине со squid. Тогда его можно было бы сверить с NDS. Для этого уже существуют решения.

Эта задача из 2-ух частей: как передать реквизиты пользователя на прокси и как проверить их подлинность. Я думаю, что их можно решать и независимо друг от друга, т.е. получить имя и пароль от IE по NTLM протоколу, но проверить их уже не в домене, а в NDS. А NTLM протокол, судя по вышеуказанному FAQ'у, как раз и подразумевает отсутствие ручного ввода имени и пароля.
Yuriy Levin
 
Сообщения: 60
Зарегистрирован: 09 дек 2002, 13:24
Откуда: Минск

Сообщение Vadziku » 20 янв 2004, 11:57

По NTLM ты разве получаешь не хэш пароля?
Vadziku
 
Сообщения: 97
Зарегистрирован: 20 июл 2002, 15:46
Откуда: Almaty, Kazakhstan

Сообщение Константин Ошмян » 20 янв 2004, 13:35

Поскольку я организовывал работу Squid через NTLM, то позвольте встрять.

1. Нужно различать понятия "аутентификация" и "авторизация". Первое - выяснение того, что за пользователь к нам обращается (и подтверждение подлинности этой информации). Второе - принятие решения о том, что данному пользователю можно, а что - нет.
2. Протокол NTLM выполняет именно аутентификацию. При этом по сети передаётся имя пользователя, но не пароль - от пароля берётся лишь хэш, при вычислении которого используется ещё и некоторое переданное сервером случайное число (challenge), поэтому хэш получается каждый раз разным. Сквидовский хэлпер устроен так, что является как бы посредником - сам обращается к домен-контроллеру от имени клиента, запрашивает от него challenge, передаёт клиенту, а ответ клиента снова посылает домен-контроллеру и ждёт, что он ему ответит - OK либо FAIL. К самому паролю непосредственного доступа никто, кроме домен-контроллера, доступа не имеет (и это правильно).
3. NTLM-аутентификация действительно выполняется прозрачно для пользователя, но для этого нужно учесть некоторые моменты:
- браузер должен поддерживать этот механизм (MSIE и последняя Mozilla поддерживают, Netscape - скорее нет, чем да, с Opera-ой иногда возникали проблемы - пробовалось месяца два назад, надеюсь, что ситуация поменялась к лучшему) ;
- работает только на платформе Windows;
- пользователь должен быть "залогинен" в домен (например, если на Windows 98 в ответ на начальное приглашение нажать "Cancel", то никакой прозрачной аутентификации не будет - всплывёт окно "Введите имя/пароль/домен") ;
- передаваемое имя пользователя - это имя, полученное клиентом Microsoft Network, а не имя пользователя в NDS (в общем случае - могут не совпадать) ;
4. В любом случае - для проверки подлинности переданной через NTLM информации нужен доступ к домен-контроллеру (собственно, именно домен-контроллер-то этим и занимается, сквидовсий хэлпер - как говорилось выше - лишь посредник). Как решать задачу в отсутствие домена - я не знаю. Возможно, в случае NetWare 6 можно решить задачу, подняв на сервере NFAP, чтобы сам сервер прикидывался домен-контроллером - но это добавит отдельную задачу управления доменными паролями ("simple passwords" в Novell-овской терминологии).
5. Авторизация может выполняться, используя совершенно другой механизм - например, проверяя членство пользователя в каких-либо группах либо в контейнерах через LDAP, и этим в Squid-е занимается уже другой хэлпер.
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

А как при этом логи Выглядят ?

Сообщение skoltogyan » 20 янв 2004, 16:17

Спасибо, узнал новое.
А как при этом выглядят ЛОГИ сквида ?
skoltogyan
 
Сообщения: 2037
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Сообщение Yuriy Levin » 20 янв 2004, 16:46

Для аутентифицированных пользователей их можно привести к такому же виду, как и в BM.
Yuriy Levin
 
Сообщения: 60
Зарегистрирован: 09 дек 2002, 13:24
Откуда: Минск

Сообщение Константин Ошмян » 20 янв 2004, 18:13

skoltogyan писал(а):А как при этом выглядят ЛОГИ сквида ?
Примерно так:
1074490268.569 206 192.168.x.y TCP_DENIED/407 2626 GET http://www.yahoo.com/ - NONE/- text/html
1074490269.498 3 192.168.x.y TCP_DENIED/407 2688 GET http://www.yahoo.com/ - NONE/- text/html
1074490270.483 984 192.168.x.y TCP_MISS/200 41304 GET http://www.yahoo.com/ домен\юзер DIRECT/216.109.118.65 text/html
Первые две строки (где TCP_DENIED/407, прочерк вместо имени пользователя и "NONE/-" в поле способа доставки) - это обмен NTLM-сообщениями между MSIE и Squid-ом, третья строка - уже реально обслуженный запрос.
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига


Вернуться в Novell

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

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

cron