Эта страница является переводом man ntlm_auth(1) из пакета Samba.

ИМЯ

ntlm_auth — утилита, предоставляющая внешний доступ к функции внешней Winbind's NTLM авторизации

Синтаксис

ntlm_auth [-d debuglevel] [-l logdir] [-s <smb config file>]

Описание

Эта утилита является частью пакета samba(7).

ntlm_auth это утилита помошник для авторизации пользователей использующих NT/LM авторизацию. При успешной авторизации возвратит ноль, и единицу если доступ запрещен. ntlm_auth использует winbind для доступа к пользовательским и авторизационным данным домена. Утилита работает с некоторыми программами (на сегодня это Squid и mod_ntlm_winbind).

ЭКСПЛУАТАЦИОННЫЕ ТРЕБОВАНИЯ

Демон winbindd(8) должен работать с большинством этих команд.

Некоторые из этих команд требуют достут к директории winbindd_privileged в $LOCKDIR. Это возможно при выполнении команды под пользователем root или предоставлением группового доступа к директории winbindd_privileged. Для безопастности эта директория не доступна для всех.

Параметры

--helper-protocol=PROTO

Работает как stdio-базовый хелпер. Действующий helper протокол это:

squid-2.4-basic

Серверный helper для работы с Squid 2.4's базовой (plaintext) авторизацией.

squid-2.5-basic

Серверный helper для работы с Squid 2.5's базовой (plaintext) авторизацией.

squid-2.5-ntlmssp

Серверный helper для работы с Squid 2.5's NTLMSSP авторизацией.

Требует доступ к директории winbindd_privileged в $LOCKDIR. Описание работы протокола смотрите здесь. Этот протокол был расширен для доступа NTLMSSP Negotiate пакетов, включенных в качестве аргумента к команде YR. (Это позволит избежать потерь информации в протоколе обмена).

ntlmssp-client-1

Клиентский helper используется с внешними программами, которые захотят использовать NTLMSSP авторизацию.

Этот helper клиентский, может быть запущен любым пользователем. Протокол используется в противовес предыдущему протоколу. Команда YR (без аргументов) запускает авторизационный обмен.

gss-spnego

Серверный helper который реализует GSS-SPNEGO. При этом используется протокол аналогичный squid-2.5-ntlmssp, но имеющий некоторые отличия, недокументированные на данном этапе.

Требует доступа к директории winbindd_privileged в $LOCKDIR.

gss-spnego-client

Клиентский helper реализующий GSS-SPNEGO. Он использует протокол аналогичный предыдущему и также недокументирован.

ntlm-server-1

Серверный helper протокол, предназначен для использования с RADIUS сервером или плугином 'winbind' для pppd, для предоставления MSCHAP и MSCHAPv2 авторизации.

Этот протокол состоит из строк в формате: Parameter: value и Parameter:: Base64-encode value. Присутствие одного периода . индицирует о завершении передачи данных другому. (Который в свою очередь может вызвать helper для проверки подлинности пользователя).

На текущий момент передача параметров от внешних программ через helper включает в себя:

Предупреждение

Разработчики должны позаботиться о передаче данных в кодировке base64 (таких как usernames/passwords) для исключения передачи злонамеренных данных, например новых строк. Они также должны обеспечить декодирование строк от helper, данные от которого могут быть в кодировке base64.

Username

Имя пользователя должно быть в кодировке Samba's unix charset.

Пример 1.

Username: bob

Пример 2.

Username:: Ym9i

Username

Домен пользователя должет быть в кодировке Samba's unix charset.

Пример 3.

Domain: WORKGROUP

Пример 4.

Domain:: V09SS0dST1VQ

Full-Username

Полное имя должно быть в кодировке Samba's unix charset с разделителем определенным в параметре winbind separator.

Пример 5.

Full-Username: WORKGROUP\bob

Пример 6.

Full-Username:: V09SS0dST1VQYm9i

LANMAN-Challenge

8 байтное LANMAN Challenge значение, генерируется случайным образом на сервере, или (в случае MSCHAPv2) генерируется как на сервере так и на клиенте.

Пример 7.

LANMAN-Challege: 0102030405060708

LANMAN-Response

24 байтное LANMAN Response значение, вычисляется из пароля пользователя и доставляется LANMAN Challenge. Обычно это происходит через сеть клиентом желающим авторизоваться.

Пример 8.

LANMAN-Response: 0102030405060708090A0B0C0D0E0F101112131415161718

NT-Response

>= 24 байтный NT Response значение, вычисляется из пароля пользователя и доставляется LANMAN Challenge. Обычно это происходит через сеть клиентом желающим авторизоваться.

Пример 9.

NT-Response: 0102030405060708090A0B0C0D0E0F101112131415161718

Password

Пароль пользователя. Поддерживается сетевым клиентом , если хелпер используется в ситуации когда пароль передается в открытом виде.

Пример 10.

Password: samba2

Пример 11.

Password:: c2FtYmEy

Request-User-Session-Key

После успешной авторизации вернет ключ сессии пользователя, ассоциированный с его логином.

Пример 12.

Request-User-Session-Key: Yes

Request-LanMan-Session-Key

После успешной авторизации вернет ключ сессии LANMAN, ассоциированный с его логином.

Пример 13.

Request-LanMan-Session-Key: Yes

--username=USERNAME

Определяет имя пользователя дла авторизации

--domain=DOMAIN

Определяет домен для авторизации

--workstation=WORKSTATION

Определяет рабочую станцию с которой происходит авторизация

--challenge=STRING

NTLM запрос (в HEXADECIMAL)

--lm-response=RESPONSE

LM ответ на запрос (в HEXADECIMAL)

--nt-response=RESPONSE

NT или NTLMv2 ответ на запрос (в HEXADECIMAL)

--password=PASSWORD

Незашифрованый пароль пользователя

Если в командной строке не указан, будет выведено приглашение для ввода пароля.

Если роль сервера базируется на NTLMSSP, то этот параметр определяет ожидаемый пароль, позволяя тестирование без операций winbindd.

--request-lm-key

Извлечь ключ сессии LM

--request-nt-key

Запрос ключа NT

--diagnostics

Выполнить диагностику цепочки авторизации. Используется пароль из --password или будет выведено приглашение для его ввода.

--require-membership-of={SID|Name}

Требовать чтобы пользователь был членом некоторой группы (имя или SID) для успешной авторизации.

-d | --debuglevel=level

level целое от 0 до 10. Значение параметра по умолчанию не определено, 0.

Чем больше значение параметра, тем более подробным будет лог-файл. При значении, равном нулю, будут записаны только критические ошибки и серьезные предупреждения. Уровень 1 достаточен для ежедневного запуска – при нем записывается маленький объем информации о проведенных операциях.

Уровни выше 1 будут генерировать сравнительно много записей в логе и их следует использовать при столкновении с какой-либо проблемой. Уровни выше 3 введены для использования разработчиками и генерируют ОГРОМНОЕ количество данных лога, большая часть которых чрезвычайно сложно читаема.

Заметьте, что при определении этого параметра будет игнорироваться параметр log level из файла smb.conf.

-V

Выводит номер версии программы.

-s <configuration file>

Указанный файл должен содержать конфигурационные данные, необходимые серверу. Информация из этого файла включает специфическую информацию о сервере, такую, как например определение используемого для printcap файла, также как и описания всех служб, предоставляемых этим сервером. Смотрите smb.conf для получения дополнительной информации. Стандартное имя конфигурационного файла определяется во время компиляции.

-l | --log-basename=logdirectory

Имя главной директории для log/debug файлов. Будет добавлено расширение .progname (например, log.smbclient, log.smbd, и т.д.). Клиент не сможет удалить лог файл.

-h | --help

Напечатает информацию об опциях командной строки.

ПРИМЕР УСТАНОВКИ

Для установки ntlm_auth в связке с squid 2.5, с типами авторизации basic и NTLMSSP, нужно добавить следующие строки в файл squid.conf:

auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmssp

auth_param basic program ntlm_auth --helper-protocol=squid-2.5-basic

auth_param basic children 5

auth_param basic realm Squid proxy-caching web server

auth_param basic credentialsttl 2 hours

Замечание

Этот пример предполагает, что модуль ntlm_auth установлен корректно (пути установки) и выставлены права на winbindd_privileged, как это было описано выше.

Для установки ntlm_auth в связке с squid 2.5 с ограничением доступа по группам, нужно добавить в файл squid.conf следующие строки:

auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of='WORKGROUP\Domain Users'

auth_param basic program ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of='WORKGROUP\Domain Users'

Версия

Эта страница мануала верна для пакета Samba 3.0.

АВТОР

Изначально Samba и сопутствующие утилиты были разработаны Эндрю Тридгеллом (Andrew Tridgell). Сейчас Samba разрабатывается Samba Team в качестве Open Source проекта – напоминает то, как разрабатывается ядро Linux.

man ntlm_auth были написаны Jelmer Vernooij и Andrew Bartlett.

Обсудить перевод и задать вопросы можно в соответсвующей теме форума.