V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wslzy007
V2EX  ›  宽带症候群

防止 vps 上 ssh 端口被恶意扫描

  •  
  •   wslzy007 · 2020-02-23 14:25:21 +08:00 · 10773 次点击
    这是一个创建于 1760 天前的主题,其中的信息可能已经有所发展或是发生改变。

    随着 vps 云主机越来越便宜,vps 已日渐普及。平常的运维管理往往需要开启 ssh 服务,由于是公网 IP,自己的云主机经常会被来源于世界各地的 IP 扫描猜测;当然,可以选择云厂商提供的收费防护服务,价格嘛...但估计也挺感人。有没有好的办法呢?

    如果能够拒绝所有外部 IP 对 22 端口的访问不就行了吗?

    额。。。剩下的问题就是如何允许自己访问了。

    祭出工具:SG ( smarGate ),如何使用 smarGate 请见 github.com/lazy-luo/smarGate

    步骤如下:

    1、在 vps 主机上运行 smarGate 服务端( proxy_server )

    2、在云控制台配置安全组,将 22 端口禁止外部访问

    3、在 smarGate 客户端上开启 vps 主机 ssh 反弹穿透(本地端口要求大于 1024 ):

    4、通过 SSH 客户端连接手机 ip:2222 即可访问 vps 服务器

    这样配置的好处是只有通过你配置的 smarGate 客户端才能访问到 vps 的 ssh 服务,而手机你是不离身的。可控、安全。

    49 条回复    2020-02-25 12:49:35 +08:00
    gam2046
        1
    gam2046  
       2020-02-23 14:50:47 +08:00
    扫就让他们扫嘛,反正是证书登陆。

    批量扫的,也就是尝试一批弱口令。

    这要是能被爆破出来,我也就认了
    hzqim
        2
    hzqim  
       2020-02-23 15:00:26 +08:00
    我是禁止 root 登陆。
    gearfox
        3
    gearfox  
       2020-02-23 15:05:52 +08:00
    换默认端口,禁止 root 登陆+fail2ban,暂时还没出过问题
    qwvy2g
        4
    qwvy2g  
       2020-02-23 15:13:04 +08:00
    我是配置完禁止 ssh 登录和禁止 ping,平常操作用控制面板 vnc 访问就行了。
    manami
        5
    manami  
       2020-02-23 15:15:43 +08:00 via Android
    SSH 换默认端口,关闭 22 端口
    wslzy007
        6
    wslzy007  
    OP
       2020-02-23 15:24:08 +08:00
    密码倒不是弱密码,但看统计数据每晚峰值最多有大几万的 tcp 连接。。。
    现在一切都安静了
    PHPer233
        7
    PHPer233  
       2020-02-23 15:29:48 +08:00   ❤️ 1
    不要用默认端口,把 ssh 服务换成其他端口不就好了。。。。
    windyland
        8
    windyland  
       2020-02-23 15:32:02 +08:00 via Android
    换带宽简单快捷
    wslzy007
        9
    wslzy007  
    OP
       2020-02-23 15:32:22 +08:00
    换端口是个办法,但毕竟还是会被扫描到的,本意是不希望外部连接 vps 上特定端口,仅能自己使用
    turi
        10
    turi  
       2020-02-23 15:37:56 +08:00 via iPhone
    怕扫描那就禁 ping,然后换端口
    这样要是还有几万 tcp 连接那就要换一家服务商了
    wslzy007
        11
    wslzy007  
    OP
       2020-02-23 15:44:01 +08:00
    禁止 ping 没用的,都是 tcp 连接。。。
    satifanie
        12
    satifanie  
       2020-02-23 15:44:18 +08:00
    证书登录+fail2ban 就能阻挡大部分了。再不然换端口也行
    wslzy007
        13
    wslzy007  
    OP
       2020-02-23 15:46:04 +08:00
    证书登录也挡不住巨量 tcp 连接,换端口过不了多久又照旧了。。。
    BFDZ
        14
    BFDZ  
       2020-02-23 16:04:54 +08:00 via Android
    22 端口有几万次登录失败,换端口以后一次都没有
    fengtons
        15
    fengtons  
       2020-02-23 16:16:38 +08:00 via Android
    换端口+禁止 root 登录,能将端口+用户名+密码同时扫出来的概率有多大?
    starrycat
        16
    starrycat  
       2020-02-23 16:18:28 +08:00 via Android
    sg 本身安全吗
    wslzy007
        17
    wslzy007  
    OP
       2020-02-23 16:22:42 +08:00
    vps 高联通网络,是 p2p 的没啥安全问题
    pperlee
        18
    pperlee  
       2020-02-23 16:23:26 +08:00
    最完美解决办法:关闭 vps 的 ssh
    如果不想关闭又怕扫描,购 2 台同一个局域网的 vps,主 vps 仅限内网 ip 访问 :D
    vocaloid
        19
    vocaloid  
       2020-02-23 16:49:56 +08:00
    直接换端口。。一个月能降到只有一两个人扫描
    eason1874
        20
    eason1874  
       2020-02-23 16:59:05 +08:00
    直接换高位端口+证书登录,相当稳,不是被恶意针对不会有问题。

    既然是云主机,实在不想被骚扰你完全可以把云的功能用起来,在安全组规则那里限定只有你的 IP 才能访问 SSH 端口。然后通过云 API 在本地或者网站配置一个更新安全组规则 IP 的功能,定期主动把本地最新 IP 更换上去,或者手动同步。
    txydhr
        21
    txydhr  
       2020-02-23 17:56:30 +08:00 via iPhone
    除非你是开机场一类的的怕被竞争对手定向搞,一般改个高位端口就足够了。
    Felldeadbird
        22
    Felldeadbird  
       2020-02-23 18:00:34 +08:00 via iPhone
    换 ipv6 和改常用端口不就可以解决被扫问题了吗?

    海量的地址,用现在的模式扫,时间成本太大。
    barrelsoil
        23
    barrelsoil  
       2020-02-23 18:26:12 +08:00 via Android
    你说密码复杂点,加上 f2b 3 次失败禁止,怎么可能爆破
    AmrtaShiva
        24
    AmrtaShiva  
       2020-02-23 18:26:54 +08:00
    两个月不到 VPS 被人恶意尝试登陆过近千次 IP 看了一下 集中起来 二十来个 国内两个大厂占了几乎全部来源 呵呵 还有个江苏镇江的 剩下一个美国的 到底谁在作恶 谁在怂恿恶人作恶
    wslzy007
        25
    wslzy007  
    OP
       2020-02-23 18:39:07 +08:00
    @AmrtaShiva 估计是大部分人的困惑吧。尽管密码负杂也扛不住太多的 tcp 连接呀,我遇到的大多是国外的 ip,国内的集中在广东
    huntcool001
        26
    huntcool001  
       2020-02-23 19:12:33 +08:00
    @wslzy007 不是很明白... 我用证书登录,和密码复杂有啥关系
    wslzy007
        27
    wslzy007  
    OP
       2020-02-23 19:17:38 +08:00
    @huntcool001 证书和复杂密码是类似的,只是确保登录安全,却无法阻止有心之人的大量 tcp 连接,连接多了消耗服务器资源。。。so,我是希望别人无法连接
    Osk
        28
    Osk  
       2020-02-23 19:25:31 +08:00
    换端口
    禁止密码登录, 使用证书

    端口敲门
    fail2ban

    我只做了上面两点, 其它我觉得没必要就没做了, 反正 vps 没啥东西
    lightwell
        29
    lightwell  
       2020-02-23 19:32:00 +08:00 via Android
    自己用用的 vps 换个端口就行了
    MeteorCat
        30
    MeteorCat  
       2020-02-23 19:37:01 +08:00 via Android
    换端口+证书验证+禁用 root 可以免疫 90%攻击
    zjqzxc
        31
    zjqzxc  
       2020-02-23 19:46:20 +08:00
    有一种叫做“堡垒机”的东西,业务用服务器的 ssh 端口只允许堡垒机 IP 连接

    至于堡垒机怎么保证安全...
    可以在换端口+证书登录+禁止 root 的前提下,只允许通过 VPN 连入的用户登录,也就是说,堡垒机只对外开放一个 VPN 端口即可。

    只要不出内鬼,自己不手残把 VPN 和堡垒机的证书同时泄露,在没有遇到重大漏洞的时候一般是安全的。
    chinesestudio
        32
    chinesestudio  
       2020-02-23 20:01:22 +08:00 via Android
    改端口 fail2ban 就行了 。要是服务器上程序有问题 root 密码再长也一样是肉鸡。
    Kobayashi
        33
    Kobayashi  
       2020-02-23 20:06:38 +08:00 via Android
    艹不百
    ufw limit
    fail2ban
    port knocking
    aru
        34
    aru  
       2020-02-23 21:31:25 +08:00
    换成仅允许 key 登录后,我对 openssh 的安全性更信赖
    QUIOA
        35
    QUIOA  
       2020-02-23 22:10:16 +08:00 via Android
    @pperlee 这样爆破主 vps 就必须得先爆副的吗
    laydown
        36
    laydown  
       2020-02-23 22:36:31 +08:00
    用两步验证,ssh 我就用最简单的密码,就用 22 端口,他扫任他扫,破掉算我输!

    用 key 的话,换台电脑就很麻烦。或许有人又说了,谁让你用别人(或公共)电脑啦,可我就有这样的需求啊。

    ssh 两步验证,搞起来,如果不是有人特别针对你,基本安全无虞。
    LokiSharp
        37
    LokiSharp  
       2020-02-23 23:53:07 +08:00
    被扫无所谓的,用证书登陆就行了
    jousca
        38
    jousca  
       2020-02-24 00:41:58 +08:00
    我是设置 10 次错误就把对方 IP 拉黑
    muskill
        39
    muskill  
       2020-02-24 08:07:34 +08:00 via iPhone
    @pperlee 跳板机吗
    issunday
        40
    issunday  
       2020-02-24 10:03:51 +08:00 via Android
    @pperlee 关闭 ssh 后自己如何访问呢?
    kingcc
        41
    kingcc  
       2020-02-24 11:00:36 +08:00   ❤️ 1
    knockd 了解一下
    brMu
        42
    brMu  
       2020-02-24 11:10:56 +08:00
    一般也只会扫 22,换个高端口基本免疫了,除非人家专门搞你。
    saytesnake
        43
    saytesnake  
       2020-02-24 11:29:52 +08:00
    就让它扫呗,反正是证书登陆的,扫扫更健康。
    RyuZheng
        44
    RyuZheng  
       2020-02-24 12:11:57 +08:00   ❤️ 1
    我做了 5 个措施,写了一篇博客,https://zhengzexin.com/archives/VPS_No1_SSH/
    - 修改 SSH 默认的 22 端口
    - 使用 fail2ban 去屏蔽多次尝试密码的 IP
    - 禁止 root 用户直接登录
    - 使用密码加 Google Authenticator 2 步验证进行登录
    - 或使用有密码的 SSH 密钥进行登录
    leavic
        45
    leavic  
       2020-02-24 13:02:49 +08:00
    我就直接禁止密码登录就行了。
    leavic
        46
    leavic  
       2020-02-24 13:03:52 +08:00
    禁止密码登陆后,返回的错误不是密码错误而是证书错误,我就不信爆破机器人这么弱智,连这错误都看不懂还瞎破?
    isnullstring
        47
    isnullstring  
       2020-02-24 14:36:48 +08:00
    换端口+1
    从每天 5000+尝试 到 0
    wanguorui123
        48
    wanguorui123  
       2020-02-24 20:19:38 +08:00
    每天有超过 35000 次扫我的端口,依然淡定
    v66ex
        49
    v66ex  
       2020-02-25 12:49:35 +08:00
    @wslzy007 扫描能有多巨量的 tcp 连接?如果真是巨量,那叫 ddos,不开放的端口,也能给你砸死
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1054 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:46 · PVG 06:46 · LAX 14:46 · JFK 17:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.