V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
codingKingKong
V2EX  ›  问与答

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

  •  
  •   codingKingKong · 2021-01-16 13:45:18 +08:00 · 3400 次点击
    这是一个创建于 1188 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    谢谢~

    42 条回复    2021-01-17 17:49:31 +08:00
    yanzhiling2001
        1
    yanzhiling2001  
       2021-01-16 14:07:07 +08:00
    frp 内网穿透
    codingKingKong
        2
    codingKingKong  
    OP
       2021-01-16 14:14:08 +08:00
    @yanzhiling2001 #1 感谢大佬回复, 一般生产环境运维访问机器除了这种内网穿透, 还会有什么其他方式么?
    JLTHU
        3
    JLTHU  
       2021-01-16 14:18:26 +08:00 via iPhone
    zerotier
    tailscale
    boris93
        4
    boris93  
       2021-01-16 14:24:53 +08:00 via Android   ❤️ 1
    内网机和外网出口之间会有一台跳板机
    我们先 SSH 进跳板机,然后通过跳板 SSH 到内网服务器
    跳板机可能同时有审计作用
    frp 是邪路,那玩意不是给生产环境用的
    codingKingKong
        5
    codingKingKong  
    OP
       2021-01-16 14:25:04 +08:00
    @JLTHU #3 感谢大佬回复.
    boris93
        6
    boris93  
       2021-01-16 14:26:40 +08:00 via Android
    同时跳板机也限制只有公司内网才能访问到
    codingKingKong
        7
    codingKingKong  
    OP
       2021-01-16 14:29:08 +08:00
    @boris93 #4 感谢大佬回复. 我确实是生产环境的需求~ 请问这种方案一般应该去哪里了解呢?
    codingKingKong
        8
    codingKingKong  
    OP
       2021-01-16 14:30:05 +08:00
    @boris93 #6 这种限制一般会通过什么方式实现呢? 或者给我个关键字就行, 我去了解一下
    xenme
        9
    xenme  
       2021-01-16 14:41:36 +08:00 via iPhone
    bastion
    codingKingKong
        10
    codingKingKong  
    OP
       2021-01-16 14:52:17 +08:00
    @xenme #9 感谢大佬回复~
    boris93
        11
    boris93  
       2021-01-16 15:21:34 +08:00 via Android
    @codingKingKong #7 #8 试试搜
    - 堡垒机
    - SSH audit
    之类的关键字吧

    我也只是个用户,没搭过这玩意
    codingKingKong
        12
    codingKingKong  
    OP
       2021-01-16 15:28:24 +08:00
    @boris93 #11 好的~
    imdong
        13
    imdong  
       2021-01-16 15:29:49 +08:00
    跳板机,堡垒机。

    原理是,先通过 SSH 连接到一台能同时访问内网机器与外网的 “跳板机”上。

    然后再从跳板机连接到内网,这次连接有两种方式:

    一种是隧道方式,先打通本地到内网的通道,然后从本地通过隧道连接到内网,此时跳板机只是数据转发作用。
    另一种是远程方式,SSH 连接到跳板机,再在跳板机上通过 SSH 连接到内网,此时对于内网机器来说,是跳板机在连接。
    ypw
        14
    ypw  
       2021-01-16 15:41:03 +08:00
    jumpserver
    mansurx
        15
    mansurx  
       2021-01-16 15:47:08 +08:00   ❤️ 1
    不应该是通过双因素认证的公司 VPN 拨入公司内网再访问吗?问问 IT 有没有
    Takashi123
        16
    Takashi123  
       2021-01-16 15:50:48 +08:00
    公司有公网 IP 的话可以路由器设置内网转发,一层一层设置进来就可以了。
    或者用 vpn,直接接到内网环境。
    BeautifulSoap
        17
    BeautifulSoap  
       2021-01-16 16:08:51 +08:00 via Android
    不建议随意将生产环境 ip 端口转发或者暴露到公网

    安全不是绝对的,尤其生产环境。v2ex 之前就有过擅自把端口暴露到公网然后出了安全事故的帖子
    codingKingKong
        18
    codingKingKong  
    OP
       2021-01-16 16:13:38 +08:00
    @imdong #13
    @ypw #14
    @mansurx #15
    @Takashi123 #16
    @BeautifulSoap #17
    感谢大佬回复, 我会去用回复的关键字去了解一下.
    akira
        19
    akira  
       2021-01-16 17:43:44 +08:00
    堡垒机
    跳板机
    VPN
    iphoneXr
        20
    iphoneXr  
       2021-01-16 18:09:55 +08:00 via iPhone
    干运维的我表示一般先用 openvpn 和 ipsec 打通各处网络,然后堡垒机走内网访问。
    iphoneXr
        21
    iphoneXr  
       2021-01-16 18:12:22 +08:00 via iPhone
    其实我是拒绝 ecs 直接公网 ip 的。
    建议是客户流量入口走 slb,流量出口走 nat 网关,管理流量都走 vpn 的方式。
    IgniteWhite
        22
    IgniteWhite  
       2021-01-16 19:11:45 +08:00 via iPhone
    frp
    ik
        23
    ik  
       2021-01-16 19:44:30 +08:00 via iPhone
    应该还是有公网的吧? 可以端口映射, 通过堡垒机登录也行
    YouLMAO
        24
    YouLMAO  
       2021-01-16 20:23:53 +08:00 via Android
    我的公司是 vpn+ssh+2fa, 比国内前五互联网公司加起来更安全
    litanid
        25
    litanid  
       2021-01-16 20:50:09 +08:00 via Android
    tinc 、n2n 一大堆
    IDAEngine
        26
    IDAEngine  
       2021-01-16 22:13:43 +08:00
    zerotier
    dlqingxi
        27
    dlqingxi  
       2021-01-16 22:34:07 +08:00
    frp 为什么会出现在生产环境………………………………
    boris93
        28
    boris93  
       2021-01-17 00:55:08 +08:00 via Android
    @dlqingxi 我也想问这个问题,楼主问生产环境,一帮人推荐 frp 和 zerotier 这种东西,是牢饭没吃够么
    avrillavigne
        29
    avrillavigne  
       2021-01-17 01:36:26 +08:00
    震惊 对于信息安全要求高的行业
    hijoker
        30
    hijoker  
       2021-01-17 07:30:52 +08:00
    阿里云是提供了堡垒机这个产品的吧
    hijoker
        31
    hijoker  
       2021-01-17 07:32:26 +08:00
    阿里云->产品->热门产品,倒数第三个,就是堡垒机啊
    t6attack
        32
    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
        33
    matrix67  
       2021-01-17 09:26:03 +08:00
    @t6attack 第一个 atm 机,看了才想到我已经 5 年没有去 atm 取钱了,杀死 atm 机的是移动支付啊!
    uncat
        34
    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
        35
    uncat  
       2021-01-17 11:00:26 +08:00
    补充. 上面的回复是 MarkDown 语法. 复制粘帖到你的 MarkDown 编辑器内阅读即可.
    kekxv
        36
    kekxv  
       2021-01-17 12:10:50 +08:00 via iPhone
    ssh 让堡垒机映射内网 ssh 端口到本机(非堡垒机)端口,然后保持该 ssh 会话,新开 ssh 127.0.0.1 端口
    codingKingKong
        37
    codingKingKong  
    OP
       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
        38
    oneisall8955  
       2021-01-17 13:33:32 +08:00 via Android
    内网穿透方案很多 frp,zerotier,n2n 等,自己搞来玩可以,别往公司搞,更别往生产用,出事背锅概率太大了。建议运维搞,公司出 VPN 和跳板机,用起来才稳妥。

    参考:前段时间小米实习员工 frp 穿透导致公司电脑被黑
    Ives
        39
    Ives  
       2021-01-17 13:35:58 +08:00 via iPhone
    @YouLMAO vpn 凉了怎么办😏
    YouLMAO
        40
    YouLMAO  
       2021-01-17 13:44:33 +08:00 via Android
    @Ives 只要给钱,中南 hai 很爱你的
    boris93
        41
    boris93  
       2021-01-17 15:20:44 +08:00 via Android
    @Ives #39 企业用的是备案过的,是经过允许的
    wakzz
        42
    wakzz  
       2021-01-17 17:49:31 +08:00
    建议 VPN 或者堡垒机这两种方案,内网穿透这种方案强烈不建议,因为内网穿透导致的安全事故数不胜数,出了问题你全责。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5690 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 02:25 · PVG 10:25 · LAX 19:25 · JFK 22:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.