From add40b1d859ffd8a5564a508198cd108ac01dd41 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Wed, 28 Oct 2026 12:02:27 +0300 Subject: [PATCH] HTTP proxy: no NTLM left NTLM authentication of proxy clients was gone but for what was left of it: the 407 answer offering NTLM before Basic (12, under NOCRYPT, which nothing else used) and the one for its handshake (13), sent by nothing, and the prototypes of genchallenge() and mschap(), defined nowhere. The strings after them in proxy_stringtable move up two: 403 with
 is
12, 503 13, 401 of the FTP server 14, 100 Continue 15.

rus.3ps, StringsPlugin's translation, follows: the two strings go, the
403 with 
 is UTF-8 as the rest, the XML of the running services
has its Content-disposition, and the table of counters the columns of
its rows (Action and #/Description were one).

NT: passwords, MD4 hashes as Windows keeps them, stay. The documents
no longer tell to give proxy -n to turn off NTLM.

Plugin binary compatibility: a plugin indexing proxy_stringtable finds
the strings from 12 on two places earlier, and a .3ps file of its own
with the NTLM strings has two more than 3proxy (StringsPlugin warns).

Co-Authored-By: Claude Opus 5.5 
---
 Makefile.FreeBSD                              |  2 +-
 Makefile.Linux                                |  2 +-
 doc/html/howtoe.html                          |  2 +-
 doc/html/howtor.html                          |  5 ++--
 doc/html/man8/3proxy_crypt.8.html             |  2 +-
 doc/html/plugins/WindowsAuthentication.html   |  1 -
 .../plugins/WindowsAuthentication.ru.html     |  2 --
 doc/ru/example1.txt                           |  5 ++--
 man/3proxy_crypt.8                            |  2 +-
 rus.3ps                                       | 27 ++++-------------
 src/proxy.c                                   | 30 +++++--------------
 src/proxy.h                                   |  3 --
 12 files changed, 22 insertions(+), 61 deletions(-)

diff --git a/Makefile.FreeBSD b/Makefile.FreeBSD
index 5a74cca..fed39ec 100644
--- a/Makefile.FreeBSD
+++ b/Makefile.FreeBSD
@@ -70,7 +70,7 @@ ifeq ($(PF_CHECK), true)
 endif
 ifeq ($(STATIC), true)
     LDFLAGS += -static
-    CFLAGS += -DNOPLUGINS -DNOSTDRESOLVE -DNOCRYPT
+    CFLAGS += -DNOPLUGINS -DNOSTDRESOLVE
     ZLIB = -lz -lzstd
     PLUGINS =
     PAM_CHECK = false
diff --git a/Makefile.Linux b/Makefile.Linux
index 7c0cbdd..1afb17d 100644
--- a/Makefile.Linux
+++ b/Makefile.Linux
@@ -68,7 +68,7 @@ CFLAGS += -DWITH_TRANSPARENT
 TRANSPARENT_OBJS = transparent$(OBJSUFFICS)
 ifeq ($(STATIC), true)
     LDFLAGS += -static
-    CFLAGS += -DNOPLUGINS -DNOSTDRESOLVE -DNOCRYPT
+    CFLAGS += -DNOPLUGINS -DNOSTDRESOLVE
     ZLIB = -lz -lzstd
     PLUGINS =
     PAM_CHECK = false
diff --git a/doc/html/howtoe.html b/doc/html/howtoe.html
index 83a9d31..2f24999 100644
--- a/doc/html/howtoe.html
+++ b/doc/html/howtoe.html
@@ -1539,7 +1539,7 @@ must be used.
 
 authcache ip 60
 auth cache strong windows
-proxy -n
+proxy
 

Please note that caching affects security. Never use caching for access to diff --git a/doc/html/howtor.html b/doc/html/howtor.html index 850d8b5..7a75f39 100644 --- a/doc/html/howtor.html +++ b/doc/html/howtor.html @@ -1541,7 +1541,7 @@ HTTP-сервера - для хоста, на который отвечает п
   authcache ip 60
   auth cache strong windows
-  proxy -n
+ proxy
Кэширование влияет на безопасность доступа. Ни в коем случае не следует использовать кэширование для доступа к критичным ресурсам, в частности к интерфейсу администрирования. @@ -1705,8 +1705,7 @@ HTTP-сервера - для хоста, на который отвечает п нестандартных портах, для SOCKSv4 не поддрживается авторизация с паролем (IE поддерживает только SOCKSv4), но при этом IE передает имя пользователя по SOCKSv4 (имя, с которым пользователь вошел в систему). - Для SOCKSv5 не поддерживается NTLM авторизация, пароли передаются в открытом - тексте. + Для SOCKSv5 пароли передаются в открытом тексте.

  • Q: Какие преимущества?
  • diff --git a/doc/html/man8/3proxy_crypt.8.html b/doc/html/man8/3proxy_crypt.8.html index b54bdaa..6a92edc 100644 --- a/doc/html/man8/3proxy_crypt.8.html +++ b/doc/html/man8/3proxy_crypt.8.html @@ -53,7 +53,7 @@ configuration files.

    When invoked with a single argument, it produces an NT password hash -(MD4-based, suitable for NTLM authentication). The output is +(MD4-based, as Windows stores passwords). The output is prefixed with NT:.

    When invoked diff --git a/doc/html/plugins/WindowsAuthentication.html b/doc/html/plugins/WindowsAuthentication.html index b9acaf9..f7c8634 100644 --- a/doc/html/plugins/WindowsAuthentication.html +++ b/doc/html/plugins/WindowsAuthentication.html @@ -25,7 +25,6 @@ After the plugin is loaded, the 'windows' authentication type is supported. auth cache windows

    -
  • NTLM authentication is not currently supported for plugins; you should use the proxy -n switch to disable it.

    Download: