Сетевые средства Debian/Cntlm
Cntlm является небольшим proxy-сервером для протокола HTTP, предназначенным для использования между вышестоящим proxy, требующим аутентикации по закрытому протоколу семейства NTLM, и HTTP-клиентом, не поддерживающим такой протокол — как, например, Wget, Lynx, libwww-perl и др.
Конфигурационный файл
правитьCntlm может запускаться как при загрузке системы (через /etc/init.d/cntlm
; от имени пользователя cntlm
— или иного, как указано в /etc/default/cntlm
), так и непосредственно пользователем (что, однако, не исключает возможности запуска по @reboot
через crontab(5).) В первом случае конфигурация считывается из файла /etc/cntlm.conf
; во втором — имя конфигурационного файла указывается при запуске явно, подобно:
$ /usr/sbin/cntlm -c ~/.cntlm.conf
(Отметим, что Cntlm автоматически переходит в фоновый режим по-умолчанию.)
В обоих случаях, конфигурационный файл должен содержать такую информацию, как:
- имя пользователя, домен и ключ NTLMv2 для аутентикации; (вместо ключа может также использоваться непосредственно пароль пользователя);
- имя машины (адрес) и номер порта TCP вышестоящего proxy;
- номер порта TCP, который будет занят самим Cntlm.
Можно воспользоваться, например, следующим шаблоном.
### .cntlm.conf -*- Default-Generic -*-
Username имя пользователя Domain имя домена
Auth NTLMv2 PassNTLMv2 ключ аутентикации NTLMToBasic no
Proxy example.com:3128 Listen 4780
### .cntlm.conf ends here
Проверка работоспособности:
$ http_proxy=http://localhost:4780/ HEAD -- http://example.net/ $ http_proxy=http://localhost:4780/ wget -SO /dev/full -- example.org/
Получение ключа
правитьПолучить ключ для опции PassNTLMv2
можно запустив cntlm(1) с параметром -M URI
, где URI — идентификатор произвольного ресурса, доступного через вышестоящий proxy при выполнении аутентикации.
Предполагая, что за исключением опций Auth
и PassNTLMv2
, шаблон выше заполнен и помещен в файл .cntlm.conf
в домашней директории, для получения ключа можно воспользоваться, например, следующей командой (где -v
— запрашивает вывод отладочной информации; -I
— ввод пароля с терминала):
$ /usr/sbin/cntlm -v -c ~/.cntlm.conf -I -M http://example.com/
При успешном завершении, вывод команды будет содержать значения опций Auth
, PassNTLMv2
(в случае NTLMv2) и, возможно, Flags
— готовые для переноса в конфигурационный файл.