请问一个关于 ssh 访问生产环境不具备公网 ip 机器方式的问题. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codingKingKong
V2EX    问与答

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

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

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

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

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

    谢谢~

    42 条回复    2021-01-17 17:49:31 +08:00
    40EaE5uJO3Xt1VVa
        1
    40EaE5uJO3Xt1VVa  
       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

    感谢各位大佬的建议, 我会去了解各位提供的方案.
    itechify
        38
    itechify  
    PRO
       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     Solana     2294 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 15:53 PVG 23:53 LAX 08:53 JFK 11:53
    Do have faith in what you're doing.
    ubao 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