请教,过堡垒机访问内部服务如何配置 ssh 隧道? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
a33291
V2EX    程序员

请教,过堡垒机访问内部服务如何配置 ssh 隧道?

  a33291 2024-06-03 15:30:47 +08:00 1643 次点击
这是一个创建于 543 天前的主题,其中的信息可能已经有所发展或是发生改变。

之前请教过一次,但是实验之后还是不行

先看拓扑图(来自 MX,测试环境) https://imgur.com/a/iKd2LGb

现在已知所有内网服务都必须过堡垒机 a(192.168.192.130)访问,然后在内部服务器 b(192.168.192.129)上有一个 mysql 服务监听端口为 3306 现在可以通过堡垒机 web 页面直接启动一个 xshell,无需输入任何用户名或密码就会建立一个到 b 服务器的 ssh 连接 现在我尝试利用 ssh 隧道功能,将服务器 b 上的 3306 端口转发到 xshell 所在客户端机器(此处端口号为 33306) https://imgur.com/473D7Km

然后我用 navicat 连接客户端机器的 33306,无法链接,并且如果直接 telnet 这个端口会被立即关闭

当前已做如下尝试 1.由于我已知测试环境堡垒机 a 的 ssh 账户,所以如果我先通过 xshell 新建一个普通的 ssh 会话并连接到 a,然后添加一个隧道此时是可以正常连接 2.如果通过堡垒机的网页建立的 xshell 会话,新建同样的隧道就无法连接

由于堡垒机连接时每次的用户名密码都是随机且不可见的,所以在尝试使用 MX 中的隧道功能时,ssh server 处的用户名密码无法填写

现在的疑问就是,这种情况是有可能打通的吗?

补充一下场景 在服务器 b 上的数据库有时候想要去定位一下问题,在 cli 内直接执行 sql 看着太累了,所以想要把 mysql 服务暴露在本地通过 navicat 连接这样方便调试,并不会暴露到不安全环境,而且用完则关

再次感谢大家

10 条回复    2024-06-05 09:59:30 +08:00
a33291
    1
a33291  
OP
   2024-06-03 16:45:52 +08:00
刚测试了一下把 web 上启动的 xshell 临时会话另存为标准会话后,解密了会话中的用户名密码
在会话不断开的情况下,使用其他 ssh 客户端使用账号密码去连接堡垒机,会发现无法连接,提示密码错误
换句话说,这个密码应该是一次性密码,用一次就失效

不是很确定 ssh 隧道是否是单独启动独立的 ssh 会话去建立隧道,如果是的话那肯定就不行,因为密码已经失效了
F7TsdQL45E0jmoiG
    2
F7TsdQL45E0jmoiG  
   2024-06-04 09:36:07 +08:00   1
给 ssh 的用户加密钥登录,再建 tunnel 时用密钥验证
a33291
    3
a33291  
OP
   2024-06-04 10:54:44 +08:00
@morenacl 感谢建议,不得行,我对堡垒机没有控制权,别人只给了这种方式
Volekingsg
    4
Volekingsg  
   2024-06-04 14:12:23 +08:00   1
> 不是很确定 ssh 隧道是否是单独启动独立的 ssh 会话去建立隧道
可以不是,另外 ssh 连接也可以复用

我都是用命令行,不清楚 MX 指什么,本质上还是看是否限制 ssh 连接到堡垒机,如果可以就可以
a33291
    5
a33291  
OP
   2024-06-04 15:07:11 +08:00
@Volekingsg 感谢回复,MX 指 MobaXterm

现在堡垒机启动的时候都是直接 web 页面唤起 xshell 或者是 MobaXterm,然后如果唤起的是 xshell,则可以在 "转移规则"处右键新建一个隧道,但是实际测试发现看似建立成功但是无法正常工作
而如果唤起的是 MobaXterm,也有一个新建隧道的能力(也就是图 1),但是他要求填这个堡垒机或者目标机器的密码,实际情况是我无法知道堡垒机或者目标机器的 ssh 用户名和密码
现在也无法控制堡垒机给出其他连接方案,比如楼上说的开放 token 连接,他 web 唤起的程序用到的用户名密码都是随机的,而且一旦唤起的程序连接之后,在用相同用户名密码就无法建立独立的 ssh 连接(xshell 中的"赋值渠道"是可以,但是隧道仍然不行)

如果能通过稳定的用户名密码连接到远程 ssh,这个情况我测试过,隧道的确正常
yiranzed
    6
yiranzed  
   2024-06-04 15:38:49 +08:00   1
堡垒机要对 ssh 进行代理审计,一般不支持这种隧道形式。他本地调起 xshell 就是将一次一密传给 xshell ,你可以在本地动点手脚,让他启动你自己的脚本,用他给的一次一密来试试开启 ssh 隧道。但我猜测应该是不行的。你用哪家的堡垒机?
Orlion
    7
Orlion  
   2024-06-04 15:47:36 +08:00   1
跟我司开发环境差不多,专门写了个用 http 转发 mysql 包的工具方便从本地连接测试环境的 mysql 。大概原理就是在本机伪装出一个“假 mysql server”,本机 mysql client 连接到本地的假 mysql server ,然后这个假 mysql server 将数据包通过 http 转发到测试环境的一台机器上,这台机器将数据包转发给真正的 mysql server 。

https://github.com/Orlion/hersql

不知道能否解决你的问题
a33291
    8
a33291  
OP
   2024-06-04 17:46:46 +08:00
@yiranfxh 感谢指点
我开始也想过是不是可以对 xshell 或者 mx 本身动手脚,这样当从 web 唤起的时候就执行额外的命令,在首次连接时即能建立一个隧道,但是尚未验证过
生产环境是奇安信的堡垒机,我自己搭建用于测试和验证的开源的 jumpserver
a33291
    9
a33291  
OP
   2024-06-04 17:51:21 +08:00
@Orlion 感谢
通过 http 转发 mysql 协议的话,navicat 这种客户端能连上吗?

此外这应该包含一个隐含的要求就是过堡垒机能暴露出一个 http 端口,目前环境下只给我们开了一个 web 端口(页面访问),此外不再对外暴露任何端口,所以我猜测也比较难
Orlion
    10
Orlion  
   2024-06-05 09:59:30 +08:00   1
@a33291 所有客户端都可以连上。确实需要内网有一台机器能暴露 http 端口,我们是在内网有一台机器,被 nginx 监听,我用 nginx 转发请求到内网的 hersql transport 服务上。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2574 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 31ms UTC 05:12 PVG 13:12 LAX 21:12 JFK 00:12
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86