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 — готовые для переноса в конфигурационный файл.

См. также

править