vhus

解决 ssh 22 端口被频繁攻击的答案:用 IPV6

  •  
  •   vhus · Aug 31 · 3542 views
    一.环境:
    家里的路由器,公司的路由器,自建服务虚拟机等……
    我经常会使用 ssh 远程管理,又不喜欢更改 22 端口,因为有些软件更改太麻烦,尤其手机端。

    二.问题:
    虽然已经关闭密码登录,改为密钥登陆,每天被频繁尝试用户名密码至少几百次,看得人心烦,不怕贼偷就怕贼惦记……
    三.曾经用过的方式:
    1.禁止 PING,有点效果但不明显,并且自己使用时也很烦,比如简单看一下 ping 的速度。
    2.改端口,不能完全解决,如果扫描还是能找到 ssh 端口。
    3.更改 ssh 服务的返回提示,开放的系统可以改,但是路由器这类设备没法改,并且也不能完全解决。
    4.做登录失败屏蔽 ip ,不完美,至少要失败几次才记录 IP ,持续试验了几个月,路由器里面的 ip 黑名单几百个堆,攻击次数还是没减少,日志里面还是一堆尝试密码的内容。

    四.解决
    后来突发奇想干脆用 IPV6 ,用 ddns 脚本把二级域名指向到 ipv6 地址。
    目前至少三天会重启设备,IPV6 地址会重新获取。
    现在所有的设备的日志都干干净净,看起来心情愉悦,强迫症患者的福音。
    手机网络是肯定有 IPV6 的!
    五.不适用
    如果你没有 IPV6 公网地址,那就当我没说……

    六.注意:
    很多路由器都有默认 ipv6 防火墙,需要设置开放 22 端口。
    开启 web 服务/开启 ssl 证书,还是容易泄露 ipv6 地址。
    Supplement 1  ·  3 days ago
    用 ipv6 的方案我已经试用了几个月,我已经把大部分的私用服务都转移到 ipv6 ,目前还没看到日志里面有 ssh 等服务/的登陆失败(黑客攻击)记录。

    获得 ipv6 的公网地址已经有很多年了,一直没感觉到 ipv6 有什么好的,ipv6 的管理比较另类,所有的路由器/设备对 ipv6 的管理没有 ipv4 那么详细,甚至还有些设备根本就不支持,如小米的智能开关家电等等。

    估计内网还要 ipv4+6 共存很多年,搞纯 ipv6 网络我也没啥动力。

    楼下也提到些方案,如搞 IP 黑名单/白名单/端口嗅探敲门等,这些服务都在增加系统开销,是在系统上做加法,几乎都是对防火墙做操作,并不完美。

    我最早也是支持用 vpn/wrigrade 方案,把所有的私用业务都部署在 VPN 以内,实际使用还是感觉有些麻烦,wireguard 目前也在用,已经转移到 ipv6 ,看过日志也没有过什么攻击的记录。

    能对 ipv6 使用造成困难的,1.没有获取到公网 ipv6 ; 2.路由器防火墙没有 IPV4 和 V6 单独管理的功能,我主要在用 routeros 和 openwrt ; 3.IPV6 的 DDNS 。

    本人做过运维对网络安全还有点基础,核心业务也不敢轻易暴露在公网上,这方面就不要多讨论了。
    36 replies    2026-09-04 09:32:38 +08:00
    wfg
        1
    wfg  
       Aug 31 via iPhone
    看来你的生活很清闲,还有心情没事看看日志
    Paradoxos
        2
    Paradoxos  
       Aug 31
    用证书登陆就行了。 那些登录尝试就是互联网背景噪音,不必理会。
    hackroad
        3
    hackroad  
       Aug 31
    掩耳盗铃的做法
    vhus
        4
    vhus  
    OP
       Aug 31
    @wfg 做运维的习惯…… 职场后遗症……
    vhus
        5
    vhus  
    OP
       Aug 31
    @Paradoxos 肯定是用 key 登录,强迫症患者,每天看着各种用户名来尝试,无比的烦,影响心情。
    vhus
        6
    vhus  
    OP
       Aug 31
    @hackroad 至少是有效的方法。
    hxdyxd
        7
    hxdyxd  
       Aug 31 via Android
    我不喜欢 22 端口,第一件事就是换掉它
    cha0s
        8
    cha0s  
       Aug 31 via iPhone
    扫就扫吧 没有任何影响 改端口太麻烦尤其是现在都是 ai 在操作 ai 默认走 22
    glouhao
        9
    glouhao  
       Aug 31 via Android
    你要抓鱼做业绩就留着,自己为了安全换了端口,用密钥
    hfJ433
        10
    hfJ433  
       Aug 31
    安装 Fail2ban
    vhus
        11
    vhus  
    OP
       Aug 31
    @hfJ433 搞过类似的,路由器里面的 ip 黑名单上千条…… 这种方案实时性不好,要定期去访问日志……
    superkkk
        12
    superkkk  
       Aug 31
    fail2ban+密钥登录,把密码登录关了
    liansishen
        13
    liansishen  
       Aug 31
    给 22 端口价格 endless ,自己用其他端口
    vhus
        14
    vhus  
    OP
       Aug 31
    @superkkk 已经是密钥登陆.
    Autonomous
        15
    Autonomous  
       Aug 31
    你真勇,我都不敢暴露任何业务端口。
    外网访问一律套 WireGuard ,只暴露 WG 的 UDP 端口
    python35
        16
    python35  
       Aug 31   ❤️ 1
    给 22 端口加蜜罐吸引火力,自己用其他端口,顺便收集字典
    hxy100
        17
    hxy100  
       Aug 31   ❤️ 1
    自己做个一键脚本,采用类似端口敲门给当前 IP 加临时白名单的方式即可,如果平常需要手机端操作,不方便端口敲门,可以做个隐藏的 HTTP 接口,访问一下即放行当前 IP 也是一样的效果,如果有必要,还可以跑个定时器定期清除历史 IP ,看似麻烦,但实际只要一次性写好脚本就一劳永逸(遇到新机器系统调用脚本一把梭即可)。
    ctro15547
        18
    ctro15547  
       3 days ago
    fail2ban
    wangweiggsn
        19
    wangweiggsn  
       3 days ago
    @hxy100 是的,我是用 IP 段白名单,只接受我所在地区的 IP ,看日志好多了。
    justkfc
        20
    justkfc  
       3 days ago
    随便爆,爆出来机器我不要了
    xhcnb
        21
    xhcnb  
       3 days ago
    fail2ban +1
    qwertooo
        22
    qwertooo  
       3 days ago
    试试 knockd
    zeroleo12345
        23
    zeroleo12345  
       3 days ago
    crowdsed + 1
    vhus
        24
    vhus  
    OP
       3 days ago
    @python35 这些扫描都低级,都是很常规的字典,高级黑客不会搞这些。本来这都是家用宽带的 IP 段,没有高手来胡搞,就算有我们也不知道。
    dimwoodxi27
        25
    dimwoodxi27  
       3 days ago
    IP 可以收集上 abuseipdb 联 ban
    vhus
        26
    vhus  
    OP
       3 days ago
    @wangweiggsn 如果出差在外面呢,哈哈哈哈。
    JoeSmith
        27
    JoeSmith  
       3 days ago
    证书登录,加 fail2ban 。
    Ipsum
        28
    Ipsum  
       2 days ago
    使用 wg 。杜绝一切扫码。
    WayneCmd
        29
    WayneCmd  
       2 days ago
    那你开个 web http 端口不得每天睡不着觉,每天得扫描都是 /wp-admin/*, ssh 你用个 ED25519 ,随便他尝试
    cslive
        30
    cslive  
       2 days ago
    密钥登录就行了,谁天天看日志啊,服务器天天被攻击
    EvaElfie
        31
    EvaElfie  
       2 days ago
    密钥 only 就完事了,不懂有啥好折腾的
    YGBlvcAK
        32
    YGBlvcAK  
       2 days ago
    ipv6 确实干净,强迫症其实也可以用内网穿透,不暴露任何端口,如果担心失联,可以搞双内网穿透,或者开放个 ss 端口,失联时用 ss 连回来解决问题,ss 部署简单就一条命令,也没人去暴力破解这个
    wangweiggsn
        33
    wangweiggsn  
       2 days ago
    @vhus 我在澳洲,我设置只允许澳大利亚 ip 访问,很省心。
    hunono
        34
    hunono  
       1 day ago
    v6 地址干嘛重启更换,直接多设几个,对外服务 1 个地址,对外管理 1 个地址,一个子网 2 的 64 次方地址,别人扫不出来的,可以详细了解一下 v6 ,v6 解决了 v4 的很多问题。(当然也产生了更多问题,导致至今不能实现单栈使用)
    vhus
        35
    vhus  
    OP
       20h 45m ago
    不是真正的重启,只是写了脚本把 pppoe 服务定期重启一下。
    虽然 IPV6 地址多,但 IP 地址还是很容易泄露,比如玩儿 PT ,长时间的持续数据传输,所有用户都看得到,并不是通过扫描泄露。
    @hunono
    hunono
        36
    hunono  
       3h 25m ago
    @vhus 只谈 ipv6 ,不谈其他安全方面:正常情况下获得的不是一个 ipv6 地址,是一个地址前缀,一般是/60 ,这个地址可以分成 16 个/64 子网,你的路由器虽然有个地址,但他只用于你的内网路由、网络管理,路由器后面的任何设备获得的地址也都是独立的,与路由器主机位无关的 ipv6 地址,这些地址之间只有前缀有关联,主机位无关联,ipv6 正常情况下不存在 nat ,不存在用 pt 等东西会暴露路由器 ipv6 地址的情况,除非软件主动记录并向外发送信息(我们称这种软件为病毒、木马)。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3408 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 04:57 · PVG 12:57 · LAX 21:57 · JFK 00:57
    ♥ Do have faith in what you're doing.