socks介绍
- SOCKS:防火墙安全会话转换协议 (Socks: Protocol for sessions traversal across firewall securely)
- SOCKS 协议提供一个框架,为在 TCP 和 UDP 域中的客户机/服务器应用程序能更方便安全地使用网络防火墙所提供的服务。
- 这个协议从概念上来讲是介于应用层和传输层之间的 “中介层(shim-layer)”,因而不提供如传递 ICMP 信息之类的网络层网关服务。
- SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。
- SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。
安装socks5
- 解决依赖关系
1 | yum -y install pam-devel openldap-devel openssl-devel |
- 编译安装
1 | wget https://nchc.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz |
配置
- 配置备份
1 | mv /etc/opt/ss5/ss5.conf{,.bak} |
- 修改认证方式
/etc/opt/ss5/ss5.conf
默认是无用户认证,需要使用-u
1 | auth 0.0.0.0/0 - u |
- 添加用户名密码
/etc/opt/ss5/ss5.passwd
每行一个 用户 密码,使用空格分隔
1 | test1 12345 |
- 修改ss5启动的参数,自定义代理端口
/etc/sysconfig/ss5
(如果不设置,默认是1080)
此文件ss5启动时会主动加载
1 | # Add startup option here |
- 创建服务控制脚本
/usr/sbin/ss5_ctl.sh
1 |
|
- 服务控制
1 | ss5_ctl.sh start |
应用
应用场景:办公室使用的是电信网络,运维工程师需要在办公室使用SecureCRT来远程一台配置了移动IP的服务器。由于电信到移动跨运营商导致无法使用SecureCRT直接ssh远程。因此可以使用一台配置了ss5的服务器来做代理。前面已经说明了怎么配置,接下来补充一下SecureCRT如何使用ss5。
- 添加firewall
打开SecureCRT,打开Options
=>Global Options...
- 对应的session使用firewall,选择要ssh远程的的session,右键单击属性,选择防火墙