ntlm_auth (allow external programs to use NTLM authentication)
Эта страница является переводом 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.
Обсудить перевод и задать вопросы можно в соответсвующей теме форума.
Ваш отзыв