Я искал тот же вопрос («как настроить фиктивный прокси-сервер ntlm») и нашел это. Итак, вот мое решение о том, как настроить переадресацию NTLM-аутентификации для прокси-сервера без использования IIS-сервера от Microsoft. Вместо этого мы будем использовать Apache httpd.exe
- Скачать Apache HTTP сервер Apache 2.4.29.
Я использовал бинарники для Windows 32bit (VC14) версии от ApacheHaus
- Загрузите соответствующий модуль Mod Auth NTLM для, в моем случае mod_authn_ntml-1.0.8-2.4.x-x86-vc14.zip
- Установите сервер и модуль и настройте все так, чтобы сервер запускался, и вы просматривали веб-страницу по умолчанию при переходе на локальный хост
Теперь снова отредактируйте файл конфигурации conf / httpd.conf и внесите следующие изменения:
#Make sure to load at least the modules, and their dependencies:
LoadModule headers_module modules/mod_headers.so
LoadModule info_module modules/mod_info.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule request_module modules/mod_request.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule status_module modules/mod_status.so
#add the new module
LoadModule auth_ntlm_module modules/mod_authn_ntlm.so
Включить прокси-сервер. Имейте в виду, вы можете открыть открытый прокси-сервер в Интернет ...
ProxyVia On
ProxyRequests On
<Proxy "*">
AuthName "Private location"
AuthType SSPI
NTLMAuth On
NTLMAuthoritative On
<RequireAll>
<RequireAny>
Require valid-user
#require sspi-user EMEA\group_name
</RequireAny>
<RequireNone>
Require user "ANONYMOUS LOGON"
Require user "NT-AUTORITÄT\ANONYMOUS-ANMELDUNG"
</RequireNone>
</RequireAll>
</Proxy>
Или, если вы хотите защитить только один каталог, вы можете скопировать код из примера конфигурации mod_authn_ntml:
<Location /testDirectory >
AuthName "Private location for testing NTLM authentication"
AuthType SSPI
NTLMAuth On
NTLMAuthoritative On
<RequireAll>
<RequireAny>
Require valid-user
#require sspi-user EMEA\group_name
</RequireAny>
<RequireNone>
Require user "ANONYMOUS LOGON"
Require user "NT-AUTORITÄT\ANONYMOUS-ANMELDUNG"
</RequireNone>
</RequireAll>
# use this to add the authenticated username to you header
# so any backend system can fetch the current user
# rewrite_module needs to be loaded then
RewriteEngine On
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1]
RequestHeader set X_ISRW_PROXY_AUTH_USER %{RU}e
</Location>
Чтобы захватить локальный петлевой трафик и отладить происходящее, вам необходимо установить Wireshark 2.4.4, а затем специальный драйвер npcap-0.97.exe loopback-capture. При этом вы можете прослушивать трафик между вашим браузером и локальным веб-сервером
Если вы хотите использовать проверку подлинности NTLM для прокси-сервера, вам нужно будет следовать совету со страницы mod_ntlmn_auth GitHub и установить флаг DisableLoopbackCheck в реестре (см. https://support.microsoft.com/en-us/kb/896861), в противном случае все локальные запросы аутентификации будут молча терпеть неудачу.
Настройте браузер на использование локального IP-адреса в качестве прокси-сервера. Если все работает, браузер отправит ваши учетные данные в фоновом режиме.
Чтобы увидеть, что происходит, теперь вы можете проверить свои журналы Wireshark, а также Apache logs / access.log показывает вам домен \ пользователя, который использовался для аутентификации.
Надеюсь, что это поможет кому-то там протестировать свои прокси-скрипты, потому что многие прокси-программы, с которыми я сталкиваюсь, не могут правильно обрабатывать прокси-серверы NTLM, что важно в бизнес-среде.