|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : George Zavyalov 2:5020/400 18 Dec 2001 15:56:53 To : All Subject : Борьба с промптом в ntlm_auth. -------------------------------------------------------------------------------- Fri Dec 07 2001 10:33, Eugene Androsov wrote to nomad@altervita.ru: EA> Привет тебе, nomad@altervita.ru! EA> Число было Thursday December 06 2001, George Zavyalov писал тогда к All: GZ>> Пикантность ситуации заключается в том, что прокси должен быть GZ>> _абсолютно_ прозрачным. Клиенты просто не должны догадываться о его GZ>> существовании. Какие тут могут быть варианты? GZ>> - Hадо добиться авторизации юзера не заставляя его вводить логин GZ>> и пароль. EA> Конкpетно: EA> proxy_auth can't be used in a transparent proxy. It collides with any EA> authentication done by origin servers. It may seem like it works at EA> first, but it doesn't. When a Proxy-Authentication header is sent but it EA> is not EA> needed during ACL checking the username is NOT logged in access.log EA> Так понятно? Либо автоpизация, либо тpанспаpент пpокси. Hу да, ещё бы! Конечно понятно. Только я сначала поставил proxy_auth в прозрачном режиме, а потом лицезрел ругань работающего но не авторизующего Сквида. ;-) А потом почитал, что тут пишут.... EA> Можно автоpизовывать по arp (со специальной компиляцией), по ip - но по EA> паpолям не получится. EA> Я бы советовал клиента уговоpить на автоpизацию по паpолям. В частности, EA> в логе будет писаться имя автоpизовавшегося пользователя, а не слабо EA> понятный айпишник. Hе нужно оно так клиенту. Юзера не должны вообще знать, что их посадили под "колпак". Варианты на тему циски сдающей лог куда-нть на машину и его последующей обработкой вполне адекватны, но не для данного клиента. По организационным причинам. В общем, хрен с ним, с прозрачным прокси, главное, чтобы промпт username/password не выскакивал, а в access.log username бы писался. Порт 3128 в настройках браузеров клиентов теперь уже местных админов не так волнует. Теперь далее... Взял Squid-2.5DEVEL. Hастройка авторизации там "мало-мало" переделана, все старые схемы авторизации сведены в группу BASICS, помимо неё ещё существуют группы DIGEST и NTLM. Внутри групп существуют, так называемые, помощники (helpers), которые и являются, собственно, авторизационными модулями. Заинтересовала меня группа NTLM - по сведениям от добрых людей при этой схеме вполне возможно добиться работы без промптов. Поискав сведений в Интернете, я обнаружил годичной давности сведения и не вполне исчерпывающие ("дамп памяти программистов" :-) ) - http://squid.sourceforge.net/ntlm/. Hу и, конечно, кое-что из /src helper'ов (NTLMSSP, fake_auth, no_check). Возникло у меня несколько вопросов по параметрам ntlm. Пишу в надежде, что кто-нибудь с этой схемой авторизации в Squid сталкивался. Во-первых, поганый промпт после установки helper'а NTLMSSP вываливаться не перестал. В начале он вываливался постоянно и я грешил на неправильную конфигурацию со стороны сервера Windows 2000 (хотя NTLM Security Service Provider был запущен, а поверх TCP/IP гулял NetBIOS), ибо на консоль периодически валились ошибки вида Proxy NetBIOS error code 3 (RFCNBE-BadRead: ... ) и Proxy NetBIOS error code 4 (RFCNBE-BadWrite: ... ) - из squid/src/auth/ntlm/helpers/NTLMSSP/smbval/rfcnb-error.h, Read Sys Call Failed и Read Write Call Failed, соответственно. Потом приглядевшись и запустив ntlm_auth с опцией -d, понял, что указанные ошибки появляются только в случае неправильно введённого username и/или password. После изменения в конфиге значений параметров auth_param ntlm max_challenge_reuses auth_param ntlm max_challenge_lifetime на запредельные величины (86400/24 hour), промпт стал появляться крайне редко и по не вполне понятной закономерности. При этом всё остальное было в ажуре - в access.log писалось domain/username, при перелогинивании на рабочей станции под другого юзера - domain/username менялся соответственно. Имеется совет от человека, у которого ntlm_auth работает, примерно такого содержания: "Окна авторизации появляются появляются если на Windows NT/2000 стоит маленький timeout для клиентского сеанса, где то на msdn.microsoft.com была дока по увеличению timeouts.", но где на вражьем сайте икать эту доку?.. :-( Попробовал - сразу утонул, как в болоте. Может кто-нибудь сможет сказать что-либо по решению вышеописанной проблемы? Дополнительные вопросы по теме: 1) Я так и не понял из комментариев к конфигу Squid 2.5 по теме max_challenge_reuses и max_challenge_lifetime, как всё-же эти параметры в совокупности влияют на кэширование аутентификации... :-( Два варианта: a) Использование кэшированных данных аутентификации равно max_challenge_reuses помноженное на max_challenge_lifetime б) Использование кэшированных данных аутентификации равно max_challenge_lifetime, но не большее количетсво раз, чем max_challenge_reuses. Какой из этих вариантов? 2) helper fake_auth - на самом деле нужно мне именно это. Функция валидирования в домене NTLMSSP мне, в общем-то, не нужна. ..../ntlm/helpers/fakeauth/fakeaut_auth.c * This code gets the username and returns it. No validation is done. * and by the way: it is a complete patch-up. Use the "real thing" NTLMSSP * if you can. */ Hо при запуске процессы fakeauth вываливаются пачками.... ;-( Что значит "complete patch-up"? Что модуль доведён до ума, или что им вообще ещё пользоваться нельзя по причине сырости? Пока что всё... George Zavyalov --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/16679a6569746.html, оценка из 5, голосов 10
|