NTLM-авторизация,браузеры и негодяи…

Нарисовалась интересная задачка – авторизовывать пользователя через AD.
Собственно задачка для меня не нова – в нескольких сервисах я её уже реализовал – через LDAP, на одном, доступ к которому есть из “внешнего мира”, – через mod_auth_pam (winbindd на сервере установлен, настроен и работает как часы “Слава”) – т.е. как бы задачка – казалось бы вовсе не задачка…. Но! Но хочется людЯм чтоб “не выскакивало это окошечко”… Обратили внимание на SharePoint сервер, который (якобы) не спрашивает логин-пароль – объясняю – на самом деле спрашивает, просто этого не видно – говорят – ну и сделай так же – ну и делаю так же… НО! но “без проблем” это делать умеет только IE (Mozilla “в принципе” тоже умеет), а как же Ёпера, она же, убогая, не умеет ВАЩЕ NTLM ?
Забить на Оперу Допустим что Оперой не пользуются… а в принципе.. безопастна ли NTLM-авторизация? посмотрел на PHP NTLM GET LOGIN… судя по реализации можно смело предположить, что потенциальный негодяй может “завернуть” в base64_encode любой логин… (аналогичная история получится с mod_ntlm – первые версии своих “сервисов” делал через него, но после перестановки системы на сервере, он начал “конфликтовать” с разными модулями апача и мне надоело его править)…
Пока оставляю всё как есть – “клиент: форма -> клиент: des_encrypt ->сервер: ldap_connect->сервер: ldap_bind-> сервер: return (true || false) ”

В такой схеме (на мой взгляд) безопасно передаются данные и безопасно(а главное “честно”) проверяется пара логин-пароль согласно всем политикам AD – всякие блокировки по времени, expires и т.д. тогда как при NTLM можно с лёгкостью обойти все эти механизмы

А собственно вопрос – а верно ли я понял, что NTLM – “АЦтой” ? А есть ли способ использовать NTLM прозрачно для клиента и безопасно для сервера?

27.12.05  |   | стань первым

20 ways to Secure your Apache Configuration

на opennet-e новость и ссылка на статью

Буквально в двух словах – предлагают отключить ВСЁ (забыли только в crontab добавить каждую минуту apachectl stop делать)
Не спорю – будет секурно,а кому будет нужен такой apache ?
Из реальных советов только mod_security советуют поставить ( и не пишут где набрать для него хороших правил – без них это просто ещё один «unnecessary module», которые советую вырубать), в chroot загнать – тоже спорно(на мой взгляд) для статических сайтов (на которые по сути и рассчитаны видимо эти «советы») это решение №1, а «динамический» вогнать в chroot довольно трудоёмкая задача(почти полсистемы копировать чтобы работали php,perl и т.п.) – проще сделать jail ( а проще ли? – удобнее точно), ну и собственно рекомендуют отключать «нафикненужные» модули, что я думаю подразумевается любым  вменяемым администратором.

Из совершенно непонятных мне советов:
(в вольном переводе)
Отключить .htaccess (правильно – если у Вас один сайт – один сервер, а если это публичный хостинг тогда писать «рулесы» по требованию клиента? а не заезамучаешься?)
но это не главное – дальше говорят – «а если всё-таки нужны .htaccess – сделайте, но назовите это файл как-нибудь по-другому, например .httpdoverride», дальше приводят правило, которое итак есть в httpd.conf… – а смысл в переименовании ? что измениться ? чтоб никто не догадался ?
страусиная философия –  прячем череп в песок, чтоб не так страшно было, когда будут убивать….

Lower the Timeout value – крайне спорно!!! , хотя может для буржуев это и актуально, у нас же пока большая часть пользователей пользуются убогими модемами(или убогими ATC) и уменьшив таймаут, мы рискуем кинуть их всех через известный орган…

P.S.
плевать на «вредные советы»
я хочу нормальное решение(без ugly hack-ов) для хостинга web-проектов (в данном случае php+any_webServer), такое чтобы было «шустрое» как mod_php (этим я подразумеваю что php as cgi или fastcgi конечно рабочее, но в скорости многократно проигрывает) и «секурное» – чтобы каждый VirtualHost был под своим юзером….
мечты-мечты…

Мечты подкрепились недавним очередным релизом Peruser MPM for apache 2 – хорошее начало, но имеет ряд существенных ограничений – надо отключать KeepAlive – а это неминуемое падение прозводительности (которое в принципе я решил путём отдачи статики через ngnix ) и ряд офигенных глюков PHP, в частности проблемы с GD и MSSQL которые я получил, попробовав настроить такую конструкцию на dev-сервере, оно понятно, об этом предупреждают создатели PHP, но до слёз обидно

P.P.S.

ещё пару советов в общую коллекцию:
Порежьте сетевой кабель на куски и сожгите его в безлунную ночь под ржание сивой кобылы.
Разъбейте все внешние (и внутренние тоже) накопители об стенку, осколки закопайте на Поле Чудес
Спите в презервативе – БЕЗОПАСТНОСТЬ ПРЕВЫШЕ ВСЕГО

Перво{ах}

офигеваю – три bind-а на разных машинах, один мастер – 2 слейва, настройки “из коробки” (ну почти), но всяко на слейвах одинаково всё.Один notify принимает от мастера, другой нет (или мастер ему их не шлёт[что вероятнее всего]).

уже вдвоём ставим эти сервера в позу ра лотоса, но не работает.

Скоро убъю себя об стенку

UPDATE: проблема решилась прямой записью

also-notify(ip.of.the.ns1; ip.of.the.ns2;) ;

перечитал мануал – бинд при включенных notify шлёт всем серверам перечисленным в зоне как NS. почему он слал их только первому – загадка.
Пути софтварные неисповедимы…. ©

Performance Optimization WordPress Plugins by W3 EDGE