Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> WWW —> mod_ntlm2

mod_ntlm2

Автор: SniZ.


mod_ntlm2 - модуль для apache22, позволяющий прозрачно авторизовать пользователя использую его доменную учетную запись. Удобно, если необходимо сделать ограниченный доступ к содержимому корпоротивного веб сервера и не хочется озадачивать пользователей запоминанием еще одного пароля. Этот модуль банально копия mod_ntml, но сделанная для apache22.

ЗЫ: для сильных духом, можете поставить с портов, уже модуль там есть(спасибо лиссяре).
server# cd /usr/ports/www/mod_ntlm2
server# make install clean

Необходимо:
1. FreeBSD
2. Samba
3. PHP или типа того чтобы проверить работу модуля
4. Модуль mod_ntlm2.

Скопируем на сервер исходники:
server$ fetch http://garr.dl.sourceforge.net/sourceforge/modntlm/mod_ntlm2-0.1.tgz

Разархивируем сорцы:
server$ tar -xzvf mod_ntlm2-0.1.tgz

Зайдём в папку с сорцами для удобной работы:
server$ cd mod_ntlm2-0.1

Теперь самое интересное, так как этот модуль слишком сырой, надо будет поправить сорцы, чтобы работало :)
Пройдитесь по файлам smbval/session.inc.c, smbval/smblib.inc.c, smbval/smbencrypt.inc.c, smbval/rfcnb-util.inc.c, smbval/smblib-util.inc.c и замените следующие строки:
#include <malloc.h>

на
#include <stdlib.h>

А так же в файле smbval/smbencrypt.inc.c:
#include <sys/vfs.h>

на
#include <sys/param.h>
#include <sys/mount.h>

Затем,  заменить в файле mod_ntlm.c:
apr_pool_sub_make(&sp,p,NULL);

на
apr_pool_create_ex(&sp,p,NULL,NULL);

Потом, в файле Makefile:
APACHECTL=/etc/rc.d/apache

на
APACHECTL=/usr/local/sbin/apachectl

и
install: all
       $(APXS) -i -a -n 'ntlm' mod_ntlm.so

на
install: all
       $(APXS) -i -a -n 'ntlm' .libs/mod_ntlm.so

Вот и всё, патчи закончились, теперь - можно и поставить (!под рутом)
server# make install

Проверьте конфиг апача на наличие этой строчки:
LoadModule ntlm_module        libexec/apache22/mod_ntlm.so

Добавим в конфиг пару строк с настройками этого модуля:
<Location / >
    AuthType NTLM
    NTLMAuth on
    NTLMAuthoritative on
    NTLMDomain ДОМЕН
    NTLMServer ТОЛЬКО_ИМЯ_ХОСТА_PDC
    NTLMBackup ТОЛЬКО_ИМЯ_ХОСТА_BDC
    Require valid-user
</Location>

И перегрузим сервер:
server# apachectl restart

Вот и всё!
Проверить можно как в статье про mod_ntlm. Там же есть и описание директив mod_ntlm.
Не забудьте только указать NTLMServer хостом, а то не подключитесь, да и попробуйте вот что:
server# net rpc join -S ТОЛЬКО_ИМЯ_ХОСТА_PDC -U ИМЯ%ПАРОЛЬ

Оригинал статьи тут.

Необходимые файлы
файл скачан размер размещён примечание
mod_ntlm2-0.1.diff
1309 3kb 2007-09-26 Патчи для mod_ntlm2 чтобы собралось
mod_ntlm2-0.1.tgz
1405 40.3kb 2007-09-26 Сам модуль mod_ntlm2 для apache22



размещено: 2007-09-26,
последнее обновление: 2007-09-26,
автор: SniZ


lissyara, 2007-09-26 в 13:54:04

Ну, моя нелюбовь к сборке из исходников известна, поэтому я срочно нарисовал порт для этого дела:
http://lissyara.su/patch/www.mod_ntlm2.shar
http://www.freebsd.org/cgi/query-pr.cgi?pr=116657
Думаю, не стоит уподобляться помойкообразным ОС, типа линуха.

smilealex, 2007-09-26 в 14:22:26

вот так растёт и развивается любимая Фряшка! ))

kruft, 2007-09-26 в 15:42:00

>>Думаю, не стоит уподобляться помойкообразным ОС, типа линуха.

в нормальных дистрибутивах линукс-а тоже очень не рекомендовано чтоли ставить в обход пакетной системы, тк потом начинается фигня всякая с обновлениями-глюками-конфликтами.

многие, например, нормальным считают Debian. я в том числе :-)

GR, 2007-09-26 в 16:21:02

Кстати - да. Линукс - это не только слака :) Так что лиссяра - не криви душой - все в руках админа. Какой админ - такая и семтема :)

lissyara, 2007-09-26 в 17:04:52

Тока что обновил дерево портов - уже закоммитили.
=========
Да, всё зависит от рук. Тока все наследственные линуксы были именно такие - собранные ручками. В т.ч. и дебианы. C бамажкой на которой написаны параметры компиляции приложения. По памяти, а не по факту компиляции.
А я оставляю после себя FreeBSD, c софтом установленным из портов, потому, что если там нету чего-то - я его туда добавлю.
Сколько времени заняло - можете сами оценить - менше часа на рисование порта, два часа его проверяли и коммитили.
Вот и вся разница между линуксом и FreeBSD.

Andrei, 2007-09-26 в 20:04:44

%cd /usr/ports/www/mod_ntlm2/
%sudo make
%sudo make install
%sudo /usr/local/etc/rc.d/apache22 reload
Performing sanity check on apache22 configuration:
httpd: Syntax error on line 62 of /usr/local/etc/apache22/httpd.conf: Cannot load /usr/local/libexec/apache22/mod_ntlm.so into server: /usr/local/libexec/apache22/mod_ntlm.so: Undefined symbol "apr_pool_sub_make"

Andrei, 2007-09-26 в 20:11:38

здесь решение
http://wiki.bestpractical.com/view/NtlmAuthentication

Andrei, 2007-09-26 в 20:21:57

прошу прощения - ухожу в форум

Morty, 2007-09-26 в 22:25:43

по поводу линукса у меня вызывает уважение только один проэкт http://midge.vlad.org.ua/wiki/ На этом для меня линукс начинаеться и заканчиваеться к сожалениею наверно...
Уважение по причине наверно такого интерестного подхода к решению задачи

Comatoz, 2007-09-27 в 10:14:20

Из Internet Explorer работает, из Firefox - запрашивает пароль на каждую страницу и  не работает пока не введешь. Что бы это было?

SniZ, 2007-09-27 в 12:45:12

ммм, просто ие поддерживает прозрачную аутентификацию, забыл дописать,
по поводу сборки, лиссяра вчера коммитил, мот забыл что положить....

Comatoz, 2007-09-27 в 16:59:21

Делать то что, чтобы работало и в Firefox?

Kolesya, 2007-09-27 в 17:58:43

зайди в фоксе в конфигурацию about:config и отфильтруй по ntlm

Comatoz, 2007-10-01 в 9:42:12

Kolesya, спасиб, помогло

SapRAN, 2007-12-05 в 14:43:30

Лисяра, как пользоваться то этим http://lissyara.su/patch/www.mod_ntlm2.shar патчем?
скопировал в папку портов, запустил.. пишет Неоднозначное перенаправление вывода. Подскажи, как им пользоваться?

lissyara, 2007-12-05 в 16:44:58

man shar

Denis, 2008-12-29 в 16:29:24

"Этот модуль банально копия mod_ntml, но сделанная для apache22" заменить на "Этот модуль банально копия mod_ntlm, но сделанная для apache22."

ArtNegro, 2009-04-13 в 11:54:56

Вопрос такой - все вроде бы в порядке, но при попытке получить контент вложенной директории - выплевывает окно авторизации. Судя по логам - authentication failure for "/js/menu.js", хотя выше NTLM/SMB user: "HYPERCITY\\domuser": authentication OK.
Есть мысль что зависит от referer - т.е. после одной успешной авторизации в / ее дальше mod Не передает.
Т.е. открывается к примеру index.php а все что в /images или /js клянчит пароль. На сайте проекта был задан такой вопрос - но ответа к несчастью нет (((

Dimkin, 2009-09-03 в 16:25:41

да ни черта он не работает как положено! лучше тогда уж юзать ldap или winbind

asd, 2009-10-25 в 18:59:27

А у меня выходит 500 и вот такой еррор показывается в логах:
send_ntlm_challenge: no conn. handle...trouble communicating with PDC/BDC? returning internal server error
Поставил вместо этого mod_auth_ntlm_winbind, который пашет без каких либо проблем, но просто всё равно было бы интересно узнать решение этой проблемы. Спасибо.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0433 секунд
Из них PHP: 23%; SQL: 77%; Число SQL-запросов: 79 шт.
Исходный размер: 36233; Сжатая: 8253