V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rjagge
V2EX  ›  程序员

[不懂就问] ssh 能够安全地修改 port 到 443 吗?

  •  
  •   rjagge · 243 天前 · 3179 次点击
    这是一个创建于 243 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,因为学校的安全规定,外网访问只允许 80 和 443 端口的开放。如果想要 22 端口 ssh 的话,就需要登陆学校的 vpn 。

    我想问一下,如果把 ssh 的 port 修改到 443 的话,会有什么风险吗?

    以及,如果可以安全地修改到 443 ,我应该怎么做呢?

    第 1 条附言  ·  242 天前
    谢谢大家的回复和帮助,小弟收获很多!

    从技术的角度而言,我学习到了如何端口复用,以及各种代理反向等安全的操作,这些东西对我来说有点超纲我还需要时间去学习了解!

    从安全的角度而言,我也学习到了如何进行风险控制,避免作死。从责任规避的角度来说,只是每次登陆的时候麻烦一点 VPN 而已,但是以后出问题了是学校负责而不是我负责。以后也要警醒不要做出任何超纲的事情!
    zhangkunkyle
        1
    zhangkunkyle  
       243 天前
    做好暴力破解的防护就好,改配置文件或者使用 nginx 转发都能实现
    Morxi
        2
    Morxi  
       243 天前
    在你要访问的机器上搭建一个 v2ray+nginx+ws 监听 443 ,然后拿代理去连接就行,安全又好用
    NessajCN
        3
    NessajCN  
       243 天前
    你先说清楚所谓的外网 80 和 443 是哪里的 80 和 443,路由网关吗?还是你自己的机子有专门的线路和固定 ip 供你用?
    zliea
        4
    zliea  
       243 天前
    部署 VPN+堡垒机,进行登录控制?
    zliea
        5
    zliea  
       243 天前
    话说,为啥不登录学校 vpn
    SlYyWc
        6
    SlYyWc  
       243 天前
    搞个 socat
    NessajCN
        7
    NessajCN  
       243 天前   ❤️ 1
    目测是一个 xy 问题,估计你的原始需求是从外网连你自己的校园网机子对吧?
    那你就直接这么问就好,不要问什么修改 ssh 到 443...因为你首先要解决公网到内网的映射问题
    rjagge
        9
    rjagge  
    OP
       243 天前
    @NessajCN 对,不好意思我没有描述清楚我的需求。。。

    @Morxi 不好意思没有描述好我的问题。我是想从外网连我自己的校园网服务器
    rjagge
        10
    rjagge  
    OP
       243 天前
    @NessajCN 我的想法是说,把学校的服务器(有公网 ip )的 ssh 的端口从 22 修改到 443 ,这样我就可以在家里通过 ssh 学校 ip 的 443 端口连接了。可是我不清楚这样做的风险有哪些,以及如何规避这些风险
    yekern
        11
    yekern  
       243 天前
    哈哈哈哈哈哈哈哈 /🐶 装个宝塔 然后宝塔里面使用 终端管理就好了
    yekern
        12
    yekern  
       243 天前
    或者 学校 机器安装个 zerotier 然后家里也装一个 就可以异地组网了.. 直接局域网管理 想怎么玩就怎么玩呗
    rjagge
        13
    rjagge  
    OP
       243 天前
    @yekern 好的谢谢,我去了解一下!
    hymzhek
        14
    hymzhek  
       243 天前
    thinkershare
        15
    thinkershare  
       243 天前
    如果你能确保 SSH 没啥漏洞,并关掉 SSH 的密码登录,22 和 443 没啥区别。
    phpfpm
        16
    phpfpm  
       243 天前
    sslh
    NessajCN
        17
    NessajCN  
       243 天前
    @rjagge 所以你想要修改 ssh 端口的想法并不是问题的解决方法,
    如果你是校园网管理员,手握网关的端口映射设置权限,那你在确保网关本身不存在 https 网页服务的情况下,可以把网关处的 443 端口映射到内网机器 ip 的 22 端口,虽然我 99%确定你并不握有这样的权限
    所以你应更多只是个普通的内网用户,在这种情况下,你想从外网连自己机子唯一的方案只有做 tunnel 或反代,也就是你必须拥有一台能从公网访问的外网服务器(云服务器 vps 之类),并且你的内网机子能访问到该服务器。
    然后在服务器上部署 tunnel 或 frp 服务,再从内网机子连接到服务器的相应服务后, 就能实现你的需求了
    thinkershare
        18
    thinkershare  
       243 天前
    一般对外网公开的 SSH 都是修改了端口,关掉了 ICMP ,并且限制了密码登录,并且限制了权限的。
    xausky
        19
    xausky  
       243 天前
    前面有个环境出站只能连接 80 和 443 ,我把自己服务器来源 IP 是那个环境的 80 转到 22 ,然后用 ssh 隧道就可以随意访问么。
    imzhoukunqiang
        20
    imzhoukunqiang  
       243 天前 via Android
    内网穿透
    wangbin526
        21
    wangbin526  
       243 天前
    SSH 暴露在 22 端口还是 443 端口,安全上没区别啊
    一般尽量不直接暴露 SSH 端口,需要通过跳板机或者 VPN ,至少防火墙设置下只允许指定 IP 段连接 SSH 端口,只是家用不太现实
    校园网只要 SSH 仅用证书登录问题也不大,想保险的话,自己签发个证书,本机装 Stunnel 客户端,将指定端口的 SSH 数据 TLS 加密后发往学校服务器 443 端口,学校服务器装 Stunnel 服务端,将 443 端口接收到的数据解密后转发到本机 SSH 端口,相当于对整个 SSH 连接进行了透明转发+TLS 加密,只要自签发的证书没丢,基本也没多少风险
    yinmin
        22
    yinmin  
       243 天前 via iPhone
    建议 OP 别做。把内网 ssh 偷偷映射到外网,建议你不要做。老老实实去申请 VPN 拨入。如果是在企业,这种行为抓到了是要被开除的;如果导致黑客入侵,搞不好要进去踩缝纫机的。
    dode
        23
    dode  
       243 天前
    fedora server 自带 9090Web 管理服务,比较安全和纯粹,你可以把 443 端口转发到 9090
    imnpc
        24
    imnpc  
       243 天前
    严格按照规矩来 不要作死
    dode
        25
    dode  
       243 天前
    通过 nginx 代理还可以多个网站共存,通过默认空白服务,隐藏管理服务,密码使用工具自动生成保证强度和长度,启用系统自动更新。
    zedpass
        26
    zedpass  
       243 天前
    你这个要 ssh 到的服务器是自己的资产吗,是放到宿舍里面使用的吗;如果是学校的资产,建议别做,出了问题要负责的
    bing1178
        27
    bing1178  
       243 天前
    没有任何风险 ssh 用 80 吧,443 自己建站用
    rjagge
        28
    rjagge  
    OP
       243 天前
    @NessajCN 我尽量阐述清楚我的情况:学校的 server 有一个公网 ip ,我有这个 server 的 root ,我之前有做过把 22port 修改到 443 ,然后绕过了学校的 block 。后来我觉得这样不安全,又给改回来了。 这个 server 目前只有我一个人在用,所以我能够确保没有 https 服务。不过大哥你说的这些对我来说有点超纲了, 我需要了解一下。。。
    nightcc
        29
    nightcc  
       243 天前 via Android
    sslh 可以让 https 和 ssh 共用端口,原理就是让 sslh 监听 443 ,把不同类型的流量转发到不同端口;你可以把 ssh 流量直接转发到你自己的机器上。
    rjagge
        30
    rjagge  
    OP
       243 天前
    @nightcc 这样做的话,学校的运维应该会检测到我有一个 sslh 的服务监听在 443 端口吧?
    rjagge
        31
    rjagge  
    OP
       243 天前
    @yinmin
    @imnpc
    @zedpass
    这个 server 是学校的资产。我之前作死弄过 443 端口 ssh ,后来细思极恐又给关了。这会儿正在严格审核分析大家的意见,看到底能不能行的通。
    nightcc
        32
    nightcc  
       243 天前 via Android
    @rjagge 学校运维一般不会探测端口吧,但是你只要用这个端口总会有流量的,一般没人在意罢了。要避免探测,可以把除了你源地址外的流量 drop 了。那这样不如直接把 ssh 改成 443
    wangmou
        33
    wangmou  
       243 天前
    我们实验室部分老师涉密,他们从来不用我们实验室服务器,但是这些服务器是走他们项目购买的,全部为涉密设备。楼主你要考虑好设备是否涉密,别到时候扯出事来,哪怕上面啥都没有也很难受
    picklesyard
        34
    picklesyard  
       243 天前
    vpn 不能登吗?没让你用堡垒机已经够仁慈了。
    lshang
        35
    lshang  
       243 天前 via Android
    在企业这是严重违规的高风险行为,不确定学校是否有相关的安全管控政策或条例。不过不管有没有相关政策,都不建议直接暴露内网的 ssh 到外部。
    ooxxcc
        36
    ooxxcc  
       243 天前
    Tufutogo
        37
    Tufutogo  
       243 天前
    强烈建议不要在校园资产上做有风险的事。

    除非你认为收益大过毕业证书。

    如果你的 root 是正当流程获取的,那不要辜负别人的信任。

    如果你的 root 是非正当流程获取的,那你要小心可能会是个蜜罐。
    dianso
        38
    dianso  
       243 天前
    可以,端口复用呗,我的 rdp tcp 还有代理 都是 81 端口
    IvanLi127
        39
    IvanLi127  
       243 天前 via Android
    如果不做复用,就是你不用 443 端口做 https ,那直接改没任何问题,看描述学校并没有禁止这个操作,如果改完连不上,可能是学校禁止这样,就不要想着突破了。

    学校可能只是出于安全考虑,限制了意外公开了不常见、风险高的端口,你既然主动暴露出去,那至少你知道有这么个事,安全性已经有一些了。反正没明确禁止这么干,自己保护好这个 ssh 就行了
    SenLief
        40
    SenLief  
       242 天前 via iPhone
    用 haproxy 复用 443 端口,用 sni 隔离就可以。做好安全权限哦,或者你的机子本身就是隔离的。

    话说学校的机子为什么不用 vpn 跳板回去。
    chendy
        41
    chendy  
       242 天前
    既然已经有 VPN 了还研究这种歪门邪道干啥
    暴露到外网之后,真被爆破了挂上勒索病毒啥的楼主付得起这个责任么…
    Jiankg
        42
    Jiankg  
       242 天前 via iPhone
    千万别,学校这是只允许你们开 web ,ssh 对公网开放肯定不行
    hefish
        43
    hefish  
       242 天前
    zerotier 嘛,tailscale 嘛。。。
    angryfish
        44
    angryfish  
       242 天前
    要是在企业,你这样做,出问题了,你就准备捡包袱走人吧。
    在学校,网管为了安全封闭了 22 ,只允许 443,80 ,就是说只允许 web 开放,你别作死,擅自改 22 端口,出问题可大可小的。
    CodeCodeStudy
        45
    CodeCodeStudy  
       242 天前
    @rjagge 28 楼主你这是在作死啊,不管这台服务器是不是只有你一个人在用,不是你的东西就不要瞎搞,老老实实按照规定来,要真出事了你就别想拿毕业证了
    HangoX
        46
    HangoX  
       242 天前
    讲个办法,你只是不想通过学校的 vpn 连接而已,可以通过 tls + vmess 搭建一个 443 websocket 代理,通过 clash 分流 ssh 回去即可,这样就是 443 端口,同时因为加了 vmess 验证,安全也有保障。对外访问就是一个普通的网页
    Cu635
        47
    Cu635  
       238 天前
    学校 vpn 用的是什么软件?深信服那一套 vpn ?还是 openpn 、pptp vpn 之类的?
    rjagge
        48
    rjagge  
    OP
       237 天前
    @Cu635 GlobalProtect, 你知道不?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1072 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:45 · PVG 02:45 · LAX 11:45 · JFK 14:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.