对不支持代理的程序进行代理身份验证

对不支持代理的程序进行代理身份验证

在工作中我们有一个需要身份验证(Windows 用户名/密码)才能使用的代理。

我的情况是,我有一个通过端口 443 进行通信的程序,但没有使用代理的范围。

假设防火墙无法改变,有没有什么办法可以让我拥有的程序通过代理运行?

我的想法是,第三方应用程序将能够识别代理,并捕获和路由来自该程序的流量,但我不知道这样的事情是否存在。话虽如此,任何能够帮助程序在不知情的情况下使用代理的解决方案都是好的。:)

编辑:自从发布以来,我遇到了 SOCKS,有人提到这可能会有所帮助,并且有方法让不支持 SOCKS 的客户端使用 SOCKS......

答案1

您可以在客户端计算机上设置透明代理,该代理将以您公司的代理作为父代理,并在将请求转发给父代理时添加身份验证信息。您需要安装一个支持透明代理的代理服务器,我建议使用 squid;并且您需要一个防火墙将您的流量重定向到代理服务器,许多 Windows 防火墙都可以做到这一点。谷歌搜索“squid 透明代理”,有很多手册。

答案2

您可以使用 Squid Kerberos 身份验证助手,虽然有点旧,但适用于大多数情况。

您将需要 client_auth_kerb.zip 包。解压并运行:

对于 Windows Kerberos 变体 client_kerb_auth_sspi.exe -s proxy.example.com -P 远程代理端口 -i

对于 MIT/Heimeidal Kerberos 变体 client_kerb_auth_gssapi.exe -s proxy.example.com -P 远程代理端口 -i

它将创建一个本地套接字来接收未知的应用程序连接并将其发送到真正的代理服务器。将本地应用程序代理服务器配置为 localhost:8080

根据您的代理 Kerberos/SSPI/GSSPI 配置,您可能需要使用 Squid Kerberos 身份验证助手 https://sourceforge.net/projects/squidkerbauth/files/squidkerberizer/squid_kerberizer-1.0.1/

相关内容