请问一个关于 ssh 访问生产环境不具备公网 ip 机器方式的问题.

2021-01-16 13:45:18 +08:00
 codingKingKong

各位大佬, 我之前有了解到, 生产环境一般是配置 NAT 网关, 来控制服务统一进出口流量. 网关后面的机器一般都使用内网 IP.

我有一个疑问, 这种情况下, 想要 ssh 上内网的某台机器, 一般是采用什么方案?

我记得有看过说有一台具有公网 ip 的机器当跳板, 然而我找不到帖子了.

谢谢~

3450 次点击
所在节点    问与答
42 条回复
iphoneXr
2021-01-16 18:12:22 +08:00
其实我是拒绝 ecs 直接公网 ip 的。
建议是客户流量入口走 slb,流量出口走 nat 网关,管理流量都走 vpn 的方式。
IgniteWhite
2021-01-16 19:11:45 +08:00
frp
ik
2021-01-16 19:44:30 +08:00
应该还是有公网的吧? 可以端口映射, 通过堡垒机登录也行
YouLMAO
2021-01-16 20:23:53 +08:00
我的公司是 vpn+ssh+2fa, 比国内前五互联网公司加起来更安全
litanid
2021-01-16 20:50:09 +08:00
tinc 、n2n 一大堆
IDAEngine
2021-01-16 22:13:43 +08:00
zerotier
dlqingxi
2021-01-16 22:34:07 +08:00
frp 为什么会出现在生产环境………………………………
boris93
2021-01-17 00:55:08 +08:00
@dlqingxi 我也想问这个问题,楼主问生产环境,一帮人推荐 frp 和 zerotier 这种东西,是牢饭没吃够么
avrillavigne
2021-01-17 01:36:26 +08:00
震惊 对于信息安全要求高的行业
hijoker
2021-01-17 07:30:52 +08:00
阿里云是提供了堡垒机这个产品的吧
hijoker
2021-01-17 07:32:26 +08:00
阿里云->产品->热门产品,倒数第三个,就是堡垒机啊
t6attack
2021-01-17 09:19:27 +08:00
生产环境,并不都是大家熟悉的互联网业啊。传统行业更需要做好内外网隔离。
在非互联网行业,老系统往往要用很长时间,而且运行稳定的系统不会轻易升级。所以更需要通过正确的内外网隔离,把未知的安全威胁挡外面。
比如,真正缔造了计算机世界的 win xp 系统,使用广泛程度超出你的想象。直到微软最终停止维护,仍有大量的工业设施、基础设施使用 XP 系统,比较有名的比如伊朗核设施(参考震网病毒新闻)、台积电生产线(参考永恒之蓝病毒相关新闻)。。。这些设施通过正确的内外网隔离,把安全威胁挡在外面。出现安全事故也和网络无关,而是有人无意间把染毒 U 盘插进内网电脑导致的。
XP 刚停止维护时,全球 95%的 ATM 机使用 XP 系统。其实现在还在普遍使用。以下都是 2020 的照片。

ATM 机

自助冰淇淋售货机

超市收银台
微软弄出的 win10 ltsc 就是给工厂和这些设施升级用的,不然怎么可能存在官方的“win10 纯净版”。
所以?像这样的生产环境,外网通道不是应该完全堵死嘛?还敢让人打洞访问?
就好比把使用 XP 系统的 ATM 机暴露在公网上?这不作死嘛。
matrix67
2021-01-17 09:26:03 +08:00
@t6attack 第一个 atm 机,看了才想到我已经 5 年没有去 atm 取钱了,杀死 atm 机的是移动支付啊!
uncat
2021-01-17 10:58:06 +08:00
可以考虑如下的方案:

假设你所有服务器默认的 SSH 端口都是 22. 且都只允许密钥验证. 并且确保你添加了你自己的公钥到下面提及的所有服务器内.
生产环境只有一台服务器公网暴露. 服务器的公网 IP 地址是 A.
你有另外的两台内网服务器, 对应的内网 IP 是 B 和 C. 这两台服务器的 22 端口只能通过内网 IP 访问. 公网 IP 不允许访问 22 端口.

添加如下配置到你本地的如下文件内(如果不存在, 请创建) `$HOME/.ssh/config`:

```ssh_config
Host jump
Username <username>
Port 22
Hostname A

Host host-b
User <username>
Port 22
Hostname B
PorxyJump jump

Host host-c
User <username>
Port 22
Hostname C
PorxyJump jump
```

你在本地, 通过执行:

```shell
ssh host-b
```

```shell
ssh host-c
```

就可以分别登陆 B 和 C 内网 IP 对应的服务器了.

优点:
简单. 不依赖其他服务.
安全. 只有一台设备的 SSH 服务暴露到了公网访问.
uncat
2021-01-17 11:00:26 +08:00
补充. 上面的回复是 MarkDown 语法. 复制粘帖到你的 MarkDown 编辑器内阅读即可.
kekxv
2021-01-17 12:10:50 +08:00
ssh 让堡垒机映射内网 ssh 端口到本机(非堡垒机)端口,然后保持该 ssh 会话,新开 ssh 127.0.0.1 端口
codingKingKong
2021-01-17 12:19:28 +08:00
@akira #19
@iphoneXr #20
@IgniteWhite #22
@ik #23
@YouLMAO #24
@litanid #25
@IDAEngine #26
@dlqingxi #27
@boris93 #28
@avrillavigne #29
@hijoker #30
@t6attack #32
@uncat #34
@kekxv #36

感谢各位大佬的建议, 我会去了解各位提供的方案.
oneisall8955
2021-01-17 13:33:32 +08:00
内网穿透方案很多 frp,zerotier,n2n 等,自己搞来玩可以,别往公司搞,更别往生产用,出事背锅概率太大了。建议运维搞,公司出 VPN 和跳板机,用起来才稳妥。

参考:前段时间小米实习员工 frp 穿透导致公司电脑被黑
Ives
2021-01-17 13:35:58 +08:00
@YouLMAO vpn 凉了怎么办😏
YouLMAO
2021-01-17 13:44:33 +08:00
@Ives 只要给钱,中南 hai 很爱你的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745462

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX