dante Socks5服务器

Dante是一个功能齐全的Socks5服务端程序,Socks5协议可以用于对TCP和UDP流量进行代理,通常用于内部网络访问等场景,这篇笔记我们简单介绍Dante的搭建和使用。

Ubuntu下安装Dante服务端程序

我们直接从APT源安装即可。

apt install dante-server

配置Dante服务

安装完成后还无法启动,我们需要编辑/etc/danted.conf配置文件,以下是一个参考例子。

logoutput: syslog
internal: 0.0.0.0 port = 10808
external: ens33
clientmethod: none
socksmethod: none
user.privileged: root
user.unprivileged: nobody
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect

}
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect
}

配置中,logoutput指定日志的输出位置,我们这里将日志写入syslog,这里也可以指定一个日志文件路径。internal配置了Socks5服务器监听的地址和TCP端口,这里我们配置为0.0.0.0表示在本机所有地址上监听,external配置代理出口的网络接口名。socksmethod配置Socks5服务器的认证方式,我们这里将其设置为none表示不开启认证,任何人都可以连接。最后的client passsocks pass是允许的客户端地址和目标地址,我们这里将其配置为允许任何地址连接,其中的log字段指定记录哪些日志,error connect表示记录错误日志和Socks5协议的CONNECT指令日志。

注意:Dante这个软件比较古老,它的配置文件必须使用Unix换行符\n,否则将无法启动!

启动Dante服务

配置完成后,我们就可以启动Dante服务了,Ubuntu下可以执行以下命令使用Systemd启动服务。

systemctl restart danted

我们可以用以下命令查看Dante服务的状态。

systemctl status danted

测试Socks5服务器

我们可以使用curl工具测试我们的Socks5服务器是否好用,下面是一个例子。

curl -v -x socks5://192.168.1.130:10808 https://www.google.com

命令中,我们的Socks5服务端就部署在192.168.1.130:10808下,因此使用-x参数指定代理地址,然后正常访问任意一个网站即可。如果Dante代理服务器能够正常工作,我们可以看到返回的HTML页面代码。

配置用户名和密码

Dante作为Socks5服务器支持多种认证方式,不过最常用的还是用户名密码方式认证。我们将配置文件中的socksmethod改为username即可开启用户名和密码认证。

socksmethod: username

用户名和密码我们使用系统用户即可,这里我们的用户名和密码都是ubuntu

curl -v -x socks5://ubuntu:ubuntu@192.168.1.130:10808 https://www.google.com

此外,我们也可以单独创建不能登录Shell的用户来专门用户Socks5的认证,这里就不多介绍了。

当然,Socks5协议设计的比较古早了,它的用户名密码认证方式都是通过TCP协议明文传输的,很容易被监听或发起中间人攻击,实际上Dante也支持其它的认证方式,具体可以参考官方文档。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。