вторник, 1 декабря 2009 г.

Вырываемся за пределы сервера с NTLM-авторизацией.

Бывает такое, что злой админ на работе поставил MS Proxy Server или похожую поделку, которая пускает во внешний мир после прохождения авторизации по протоколу NTLM, а большинство программ такой диалект не понимают.
Так вот, чтобы пустить вашу любимую программу без всяких проксификаторов, которые или работают через или требуют прав администратора, которых обычно нет.
В мире есть программа с названием NTLM Authorization Proxy Server, с одного конца она поднимает HTTP-proxy, а с другого соединяется с тем самым прокси с NTLM. Программа написана на Python, для Windows есть версия, которая собрана с помощью py2exe.
Идем на https://sourceforge.net/projects/ntlmaps/ и качаем свежую версию программы. Устанавливаем/распаковываем программу и открываем файл "server.cfg" и начинаем настраивать:
  • LISTEN_PORT - порт, который будет слушать программа;
  • PARENT_PROXY - адрес вышестоящего прокси-сервера;
  • PARENT_PROXY_PORT - порт вышестоящего сервера;
  • NT_DOMAIN - домен, в котором находится ваша учетная запись на том сервере;
  • USER - имя пользователя aka логин;
  • PASSWORD - пароль.
Все остальные настройки не столь важны и отлично документированы в самом файле.
Запускаем свеженастроенный прокси так: ntlmaps -c конфиг
Если конфиг зовется "server.cfg", то параметр -c можно не указывать.

Всё! Теперь указываем в ваше программе адрес прокси 127.0.0.1 и порт, который прописали в переменной LISTEN_PORT, и пробуем вывести ее во внешний мир.