vs code ssh 解析config_ssh高级用法(三) 通过ssh proxy让离线环境中的机器访问yum源

0x00 背景

前面我们介绍了使用ssh的port forward来透过各种受限制的环境进行访问,下面介绍使用ssh开启的socks5通道让离线环境的机器访问yum源进行包安装.

我们面临的场景如下:

环境是一个离线环境,里面的机器只有一台跳板机通过外面的端口映射可以从本地机器登录上去. 其他的机器都需要通过跳板机登录. 本地机器就是一台PC机,它一边可以连接到公网,一边可以连接到跳板机.

e01d5f19de6c610f402835464e3ee8ed.png

现在,我们通过本地机器和环境跳板机作为跳板,让环境里面一台离线的机器可以访问公网yum源,并进行包安装.

0x01 使用ssh打好socks5通道

先对跳板机的sshd默认配置进行一些修改,避免通道不稳定.

修改跳板机sshd配置文件/etc/ssh/sshd_config. 修改下面的这些值.

# 这三个选项保持连接不断ClientAliveInterval 20ClientAliveCountMax 3TCPKeepAlive yes# 这个选项让socks可以在跳板机上的监听在0.0.0.0上,如果不做这个修改,监听只能在127.0.0.1上,离线机器还是不能访问.GatewayPorts yes

修改完成之后使用如下命令重启sshd使配置生效.

systemctl restart sshd

在本地机器上,使用如下命令连接到环境跳板机,并在跳板机上的28080端口上开启socks5代理

ssh -CfNgR 28080 跳板机IP

其中-C选项表示所有的数据都压缩,这样传输的数据量更少. -f选项表示让ssh在后台运行. -N表示不在跳板机上运行命令,只是用来进行port forward. -g选项表示在跳板机上开的socks端口监听在0.0.0.0而不是在127.0.0.1上.

完成之后在跳板机机上使用netstat -ntap可以看到28080端口开启了.

d567709daa543920dd69bc96ab79db49.png

0x02 配置离线机器的yum使用socks5代理

默认情况下,离线机器的yum访问yum源时走直接连接的,但是离线环境无法进入公网,所以直接不通,可以看到yum makecache直接报错.

c92722073d29c83b391ebb518f0f44d9.png

而离线机器是可以和跳板机通的,通过在离线机器的/etc/yum.conf中添加如下的配置.

proxy=socks5h://跳板机ip:28080

可以看到yum makecache成功了

b359258c4002eff11cf5ddb36aed9117.png

在跳板机上netstat -ntap|grep 28080,可以看到一条ESTABLISHED的连接,说明流量走这儿出去了.

645ae6c5bf0c40fa2fa74a52fcd1c42e.png

尝试使用yum install -y tree进行装包,发现可以成功,直接ping yum源的域名centos.ustc.edu.cn不通,因为yum设置了代理,而ping没有.

4d512d61c8c460ffd67e8a5587368221.png

注意这儿需要使用socks5h而不是socks5. 多的这个h表示对于dns域名的解析放到proxy上来做,而不是在离线机器上做. 因为离线机器自己做域名解析也是完不成的(上面ping显示域名解析不了).

0xff 总结

通过对yum进行proxy设置,让yum可以访问公网了. 同样的,如果对curl等命令进行proxy设置,那么它们也可以访问公网. 实际上,通过使用tsocks或者proxychains之类的命令,可以让本身无法进行proxy设置的命令也有通过proxy访问公网的能力. 大家可以自己去看下.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值