воскресенье, 11 ноября 2007 г.

Петруха, UNIX-Market и NTLM модуль

Ура, сегодня я преодлел свою лень – сходил пополнил баланс на WM и заказал себе наконец-то Debian вот в этом замечательном магазине. За все про все получилось 370 рэ, что по моим представлениям копейки. Но тут ничего особенного – особенность в дргуом:


Все дело в том, что получатель WM это есть http://www.nixpcd.ru т.е. по сути эти два магазина –  зеркала друг друга(?). Итересно, для чего же все-таки делался именно UNIX-Market? Может быть для разных маркетинговых моделей? Судя по всему UNIX-Market делается как оффициальный дистрибьютер – я о нем узнал с офф сайта Debian, а Nixp как и раньше ориентирован на “неформальный” круг покупателей. Век живи – век учись. Идея прстоя и в то же время гениальная. Что и говрить, рекспект владельцу этих магазинов.


Что ж, маркетинговые решения это хорошо, но мне надо подготовится к получения заказанного софта. Для начала в плане железа. На днях я раздобы я для своих linux-экспериментов старенький комп (Clereon-1,1GHz, 386RAM, 40Gb HDD) и уже успел придумать для него подобающее имя – Петруха. Помните такого персонажа из “белого солца пустыни” =) Надо будет только для полного шоколада купить PS/2/VGF свичт что бы не гемороится с монитором и DVD-RW что бы читлись диски. Буду на на Петрухе проводить “администраторские практики”.


Сейчас кстати уже подумываю о плане этих практик, но пока ничего конкретного не придумалось. Из явного это попробовать LVM – очень меня впечатлила данная технология.


В продолжении темы NTLM модуля для Apache (авторизация в Win доменах). Так вот в рунете я ничего хорошего и внятного не нашел (может потому что терпения не хватило). Я поступил проще и гениальнее – читал доки на офф сайте (жаль что на аглицком я читаю сильно медлено), благо их там не так много.


Вот мой вольный перевод:



Модуль аунтефикации для Apache/Unix


Copyright (C) 2000 Andreas Gal (gal@users.sourceforge.net)
Посетите http://modntlm.sourceforge.net для получения обновлений.


NTLM это протокол аутнефикации используемый Microsoft Internet Informations Server(tm) и Microsoft Internet Explorer(tm). Пока он не очень надежен, он предлагает фоновую аутнефикацию (the workstation logon credentials of users are passed through to the web server для web-серевра используются логин и пароль под которым пользователь вошел в систему). Этото фунционал широко испольуется а локальный сетях построенных на продуктах компании Microsoft.


Этот модуль есть средство NTLM аунтефикации для Apache на платформе Unix. Он распространяется бесплатно под лицензией BSD.


Обновлено в апреле 2007 Майклом Белтексом (Michael Baltak).


Существуют два варианта для NTLM аунтефикации для Apache без использования Windows (Если вы используете Windows, mod_auth_sspi это то, что вам нужно).


Первый вариант это этот модуль Apache, mod_ntlm, исходные коды для  для Apache версии 1.x и 2.x. Исходные коды содержатся в Subversion, поэтому пробуйте svn co https://modntlm.svn.sourceforge.net/svnroot/modntlm/trunk что бы получить их. Они включают такие удобства  http://modntlm.jamiekerwick.co.uk/ такие как патчи для поддержки reverse proxy mode. Этот модуль не имеет никаких дополнительных зависимостей, но  не поддерживает группы и NTLMv2, которые используется по умолчанию в Windows Vista (но этот параметр можно менять).


Второй вариант это mod_auth_ntlm_winbind, которому необходим работаюций winbindd (узнать больше о winbindd). Выгода от настройки winbind это поддержка групп и NTLMv2. Прочесть об этом подробнее http://adldap.sourceforge.net/mod_auth_ntlm_winbind.php.


Загрузка.


Исходный код mod_ntlm доступен для скачивания  с Sourceforge.


Установка.


Вы должны иметь права root для успешной компиляции и установки mod_ntlm.c. Вы должны иметь готовый к запуску дистрибутив Apache. перейдите в папку с исходными кодами mod_ntlm.c и наберите:


make install && make restart


Make файл использует приложения для коипиляции и установит mod_ntlm. Certain versions of apxs are known to fail unter certain versions of SuSE Linux (сломал мозг пока переводил) Проблемы могут возникать при конкретных версиях приложений и верисии SuSE Linux. Модуль хорошо работает на SuSE Linux 6.3 and Solaris 2.6, на других платформах не тестировался.


Дерективы в http.conf


Эти дерективы могут быть помещены в virtual директорю для конфигурации mod_ntlm:
NTLMAuth on/off Разрешает/запрещает NTLM аунтефикацию
NTLMAuthoritative on/off  Разрешает пользователям, которые не смогли пройти NTLM аунтефикацию, быть перенаправленными на другие модули аутнефикации.
NTLMDomain domain_name  Имя домена, пользователи которого должны проходить аунтфикацию
NTLMServer server_name or ip_addr  Имя или адрес контроллера домена (Windows NT или Samba)
NTLMBackup server_name or ip_addr  Имя или адрес резервного контролдлера домена, на нем будет производиться аунтефикация если основной контроллер не доступен.
Require valid-user  Любой пользователь домена имеет доступ к ресурсам.
Require user user_name  Только выбранные пользователи имеют доступ к ресурсам (Списко разделенный пробелами).


Пример конфигурации httpd.conf:


     AuthType NTLM
     NTLMAuth on
     NTLMAuthoritative on
     NTLMDomain UWSPDOM
     NTLMServer dc1
     NTLMBackup dc2
     Require user agal


Коментарии и ограничения.


* Базовая аунтефикация напрямую SMB сервера не поддерживается. Существуют другие модули которые ее осущствляют и Вам необходим https для того, что бы сделать ее безопасной.
* Internet Explorer 3.0 (broken keepalive) не поддреживается, время обновить браузер. Такие пользователи выкинуть их компьютеры что бы использовать год от года устаревающее ПО.
* Вы можете столкнутсья с проблемой частой перезагрузки страницы.


[…]


Из меня плохой переводчик, так что вот оригинал:



NTLM auth module for Apache/Unix


Copyright (C) 2000 Andreas Gal (gal@users.sourceforge.net)
Visit http://modntlm.sourceforge.net for code updates.


NTLM is an authentication protocol used by Microsoft Internet Informations Server(tm) and Microsoft Internet Explorer(tm). While it is not really secure, it offers background authentication (the workstation logon credentials of users are passed through to the web server). This feature is widely used in intranets based on these Microsoft products.


This module is implementing NTLM authentication for Apache on Unix platforms. It is available free of charges under the BSD License.


Update April 2007 by Michael Baltaks


There are two options for NTLM authentication in Apache without using Windows (If you're using Windows, mod_auth_sspi is what you need).


The first option is this apache module, mod_ntlm, source code for apache 1.x and apache 2.x. The source code is kept in Subversion, so try


svn co https://modntlm.svn.sourceforge.net/svnroot/modntlm/trunk


to get it. This includes the improvements from http://modntlm.jamiekerwick.co.uk/ as well as a patch to support reverse proxy mode. This module has no other dependancies, but doesn't support groups or NTLMv2, which is by default the only NTLM allowed in Windows Vista (you can change that setting).


The second option is mod_auth_ntlm_winbind, which requires a working winbindd (get some help with winbind). The benefits of bothering to configure winbind are group support and NTLMv2 support. Read about it at http://adldap.sourceforge.net/mod_auth_ntlm_winbind.php.
Download
The source code of mod_ntlm is available for download through the Sourceforge project page.
Install


You have to be root to compile and install mod_ntlm.c successfully. You need a ready-to-run apache distribution installed. Go to the source distribution directory of mod_ntlm and enter:


make install && make restart


The Makefile is using apxs to compile and install mod_ntlm. Certain versions of apxs are known to fail unter certain versions of SuSE Linux.
It works fine for me with SuSE Linux 6.3 and Solaris 2.6, no other platforms have been tested yet.
Directives in http.conf


This directives can be placed into a virtual directory to configure mod_ntlm:
NTLMAuth on/off  enable/disable NTLM authentication
NTLMAuthoritative on/off  allow users who couldn't be authenticated to be handled by other authentication modules
NTLMDomain domain_name  Domain users should be authenticated against
NTLMServer server_name or ip_addr  Primary SMB server to authenticate users (Windows NT or Samba)
NTLMBackup server_name or ip_addr  Backup SMB server to authenticate users if primary is down
Require valid-user  Every user that is accepted by the SMB server can access this resource
Require user user_name  Only this specific user(s) are allowed. Specify one or multiple users separated by spaces


Example configuration for httpd.conf:


     AuthType NTLM
     NTLMAuth on
     NTLMAuthoritative on
     NTLMDomain UWSPDOM
     NTLMServer dc1
     NTLMBackup dc2
     Require user agal


Comments, Limitations


    * Basic authentication against SMB server is not supported. There are enough modules that do this and you need https to make it safe.
    * Internet Explorer 3.0 (broken keepalive) is not supported, it's about time to get a new browsers. Those users should have taken their computers away for using year old software.
    * You can produce a problem by pressing reload fast and often. The connection is forced into reset each time, and sometimes Internet Explorer is sending a msg3 to an apache process that didn't send the msg1 yet. I'm not sure weather this is an apache or Linux or IE problem. It could be resolved by caching credentials, which is unsafe and involves neat things like file locking and mmap().


Bugs, missing features


    * not enough tested
    * association of per-connection based information to r-connection is wrong this way, but not better supported in Apache 1.3.9. Let's look at 2.0, maybe there is a per-connection config?
    * autoconf has to be done
    * test on more platforms
    * figure out how to fetch user groups from the DC (well, wait untill SAMBA_TNG is able to do that and then borrow the code)


Feedback
Any kind of feedback is appreciated. I'm interessted in bug reports but also success stories.


Так что рецепт для решения вопроса №3 таков:


В зависимости от того на какой платформе базируется веб сервер Apache надо выбрать один из вариантов – mod_auth_sspi для Windows и для Unxi либо mod_auth_ntlm_winbind (Для NTLM, без групп), либо mod_ntlm (для NTLMv2 c группами) в зависимоти от конкретной реализации протокала аунтефикации.


В этот раз все. КонецЪ Связи.

1 комментарий:

Анонимный комментирует...

It was extremely interesting for me to read this article. Thanx for it. I like such topics and everything connected to this matter. I definitely want to read more soon.
Alex
Phone jammer