使用socks4时的身份验证方法

时间:2012-01-30 15:11:17

标签: windows authentication windows-authentication socks

我有一个socks4服务器,用于将来自不同类型的应用程序(http,ftp等)的请求代理到目的地。

我知道socks4没有为应用程序定义一种以任何方式进行身份验证的方式(当客户端连接到服务器时它只指定了一个可选的用户名,但似乎你无法告诉它的客户端应该发送该信息,以便服务器中继请求)

有没有办法在socks4上实现某种认证,常规应用程序协议可以理解这些认证:http,ftp和其他?

1 个答案:

答案 0 :(得分:3)

了解SOCKS protocol的工作原理。

SOCKS v4 / 4a响应的第二个字节是一个状态值,指示客户端的请求是被接受还是被拒绝(以及为什么)。在这种情况下,您可能需要使用状态值0x5C(请求失败,因为客户端未运行identd或无法从服务器访问)和0x5D(请求失败,因为客户端的identd无法确认请求中的用户ID字符串)。这将使请求的用户名字段必须包含有效且可识别的值。当然,这不是真正的身份验证,因为客户端可以运行报告其所需内容的ident服务器。

否则,切换到SOCKS v5,它支持真正的服务器端身份验证。