堡垒机透明代理(SOCKS5代理)模式,针对Linux运维体验进行优化,提升了运维人员的运维体验。本文介绍如何配置透明代理。
透明代理(SOCKS5代理)模式
实现原理
- 建立SSH的SOCKS5隧道,隧道建立后产生数据通道A通道为:SOCKS5服务端—SSH客户端进程1—堡垒机SSH服务。
- 设置SOCKS5代理,使对目标主机的访问通过SOCKS5隧道完成。最终的数据通道为:SSH客户端进程2—SOCKS5客户端—A通道—目标主机。
图形客户端配置
以Xshell为例,操作步骤如下:
- 新建Xshell会话,建立SSH的SOCKS5隧道,即与堡垒机建立隧道连接在会话配置中分别填入堡垒机IP、端口(60022)。
- 填写堡垒机用户名密码/密钥(也可打开会话时手动输入)。
- SSH配置,勾选红框中内容。
- 进入会话属性的SSH-隧道菜单。
- 单击添加,按下图设置。
- 单击确定,保存并打开会话,保持在如下界面,此时隧道已经建立。
- 新建会话,填写目标服务器IP、端口。
- 填写服务器用户名密码(也可打开会话时输入,若堡垒机授权组内绑定了凭据,则可只填用户名,不需要填写密码)。
- 进入SSH-代理菜单,单击浏览。
- 单击会话,添加代理,按照下图配置。
- 保存后,返回代理菜单勾选该服务器。
- 打开会话,可直接登录至已授权给用户使用的服务器,且流量可在堡垒机内进行审计。
- 批量配置代理服务器可在建立多个Xshell会话后,选中多个会话,点击右键属性,批量配置代理服务器。
- 配置完成后,只需打开Xshell会话即可登录服务器,不需要先登录堡垒机再选择服务器进入。
openSSH配置
说明 此方法不支持密钥登录堡垒机(密钥登录服务器可将私钥存在堡垒机凭据中)
- 编辑~/.ssh/ssh_config文件(没有该文件可新建),输入如下内容(可直接复制,更改堡垒机用户名与IP即可)。
#堡垒机别名 Host __USM__ #堡垒机用户名(本地账号、AD/LDAP账号、RAM子账号) User 136xxxxxxxx #堡垒机IP Hostname 120.55.xx.xx #端口 Port 60022 #目标服务器 Host 1* 2* 3* 4* 5* 6* 7* 8* 9* #关闭密钥验证 PubkeyAuthentication no #设置堡垒机为代理 ProxyCommand ssh -F /root/.ssh/ssh_config -A -q __USM__ -W %h:%p Host a* b* c* d* e* f* h* i* j* k* l* m* n* o* p* q* r* s* t* u* v* w* x* y* z* PubkeyAuthentication no ProxyCommand ssh -F /root/.ssh/ssh_config -A -q __USM__ -W %h:%p Host A* B* C* D* E* F* H* I* J* K* L* M* N* O* P* Q* R* S* T* U* V* W* X* Y* Z* PubkeyAuthentication no ProxyCommand ssh -F /root/.ssh/ssh_config -A -q __USM__ -W %h:%p
- 指定配置文件即可通过堡垒机进行登录、文件上传下载等操作。
- 通过堡垒机登录xxx.xxx.xxx.xxx服务器。
ssh -F .ssh/ssh_config root@xxx.xxx.xxx.xxx
按要求输入堡垒机用户密码。
- 通过堡垒机与xxx.xxx.xxx.xxx互相上传下载文件。
scp -F .ssh/ssh_config filename root@xxx.xxx.xxx.xxx:/
。若连接时出现如下错误:ssh_exchange_identification: Connection closed by remote host
,请删除~/.ssh/known_hosts后再次执行。说明 此功能的目的为减少运维人员登录操作,请依据自身情况判断酌情使用。
- 通过堡垒机登录xxx.xxx.xxx.xxx服务器。