Настройка прозрачной аутентификации в домене Active Direcory Ubuntu Apache


Скачиваем модуль mod_ntlm для Apache.

http://modntlm.sourceforge.net/mod_ntlm.tar.gz — Для Apache 1.x
http://modntlm.sourceforge.net/mod_ntlm2.tar.gz — Для Apache 2.x

Распаковываем архив:

tar -zxvf ntlm.tar.gz

Необходимо обновить систему:

sudo apt-get update

Устанавливаем gcc:

sudo apt-get install gcc

Устанавливаем Apache prefork и gcc 3.4:

sudo apt-get install apache2-prefork-dev gcc-3.4

Линкуем компилятор gcc версии 3.4 с установленным в системе:

ln -fs /usr/bin/gcc-3.4 /usr/bin/gcc

Далее компилируем mod_ntlm.c

apxs2 -i -a -c mod_ntlm.c

Если компилятор выкидывает ошибки о статических переменных, необходимо подкорректировать файл ./smbval/smblib.inc.c — убрать атрибут static у переменныx:

SMBlib_errno
SMBlib_SMB_Error
SMB_State_Types
SMBlib_state

Далее, в /etc/apache2/mods-available создать файл ntlm.load и добавить в него строку с загрузкой модуля:

echo «LoadModule ntlm_module /usr/lib/apache2/modules/mod_ntlm.so» > /etc/apache2/mods-available/ntlm.load

Запустить модуль

a2enmod ntlm

Если возникает ошибка в функции apr_pool_sub_make(), то в файле mod_ntlm.c заменяем функцию

apr_pool_sub_make(&sp, p, NULL)
на

apr_pool_create_ex(&sp, p, NULL, NULL)

перекомпилируем mod_ntlm.с и снова добавляем модуль
a2enmod ntlm

В файле /etc/apache2/httpd.conf добавляем:

AuthType NTLM
NTLMAuth on
NTLMAuthoritative on
NTLMDomain
NTLMServer
Require valid-user

здесь в Document пишется путь к хосту, на который нужно установить NTLM.

Перезапускаем Apache
/etc/init.d/apache2 restart