V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bingoso
V2EX  ›  信息安全

云服务器更改 22 端口对安全防护一点作用都没有

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

    RT 更改了默认的 22 端口,几天观察下来,尝试登录的记录一点都没有减少。 作为一项安全访问措施, [更改 ssh 默认的 22 端口] 可以移除了。

    89 条回复    2024-12-05 15:56:45 +08:00
    Kinnice
        1
    Kinnice  
       33 天前
    咋?观察一下一台机器就能得出结论。
    zengxs
        2
    zengxs  
       33 天前   ❤️ 6
    设置 ssh 为只允许 pub key 登录,你就会发现没人再去尝试登录你的机器了
    spritecn
        3
    spritecn  
       33 天前
    优先扫[1-9]022,[1-9]021,相信你是正常人,话说全扫一下也花不了多少时间
    liaohongxing
        4
    liaohongxing  
       33 天前
    好的工具 1-65535 端口探测只需要十几秒钟
    driller
        5
    driller  
       33 天前
    用 nmap 扫一遍 tcp 端口花不了多生时间,换端口增加安全性只适用于 udp ,因为那个不会应答吧
    bobryjosin
        6
    bobryjosin  
       33 天前 via Android
    ssh 的特征非常明显,用 telnet 敲下端口就返回协议类型了,扫全端口也花不了多长时间。
    donaldturinglee
        7
    donaldturinglee  
       33 天前
    你就不能换成 ssh key 登录吗...
    peasant
        8
    peasant  
       33 天前   ❤️ 1
    @zengxs 没有那么绝对,我国内腾讯云的机器设置了只允许 Pubkey 登录,也禁止了密码登录,lastb 能看到每天还是有很多乱七八糟的用户名尝试登录。
    odirus
        9
    odirus  
       33 天前
    fail2ban
    bingoso
        10
    bingoso  
    OP
       33 天前
    @Kinnice 我这是任意抽检两台云服务器观察一周得出的这个结论,可靠性应该是很高的。
    @zengxs 密钥登录和密码登录的安全性,现在还有争论。
    @bobryjosin 确实低估了扫描工具的威力,我故意选用的高位端口,仍旧避免不了被扫。
    odirus
        11
    odirus  
       33 天前
    我是服务商防火墙配置一次规则、服务器本身防火墙配置一次规则,如果要在服务器开放一些 HTTP 管理界面的话,用 Cloudflare tunnel + mTLS 双向证书,安全性无敌。
    xPKK1qofAr6RR09O
        12
    xPKK1qofAr6RR09O  
       33 天前
    @bingoso 端口扫描又不是什么高深的东西,咱 20 年前初中就在玩的东西了,称不上什么威力,这种广泛使用的协议太明显了。
    hdp5252
        13
    hdp5252  
       33 天前 via Android
    私钥登录
    codersdp1
        14
    codersdp1  
       33 天前
    有一点,但不多。
    Aicnal
        15
    Aicnal  
       33 天前   ❤️ 1
    爱扫就扫呗,我服务器还关了 ping ,直接装死
    julyclyde
        16
    julyclyde  
       33 天前
    ssh 协议是服务器主动的协议
    这种协议随便一扫就知道端口号是多少了
    更改端口号真的没什么意义
    yankebupt
        17
    yankebupt  
       33 天前   ❤️ 37
    放个陷阱端口啊,低位端口放一个陷阱,只要这个端口有 tcp 扫立刻 ban ip……轮不到高位暴露
    yankebupt
        18
    yankebupt  
       33 天前   ❤️ 4
    放陷阱端口的意义在于,除了骇客在扫,网安也在扫你,云服务商的各种外包云安全也在扫你,不想接受他们“插一杠子”式的服务的话,做个微型蜜罐有益无害
    JerryYuan
        19
    JerryYuan  
       33 天前 via Android
    所以我选择 VPN 连接,用 VPN 内网地址去登录云服务器。为了给 VPN 备份,主机开放 22 端口,但云服务器的安全组规则会直接封掉 22 端口,一旦 VPN 失效,去控制台临时放行一下 22 端口依然可以正常访问,不会被关在门外。
    tabc2tgacd
        20
    tabc2tgacd  
       33 天前
    确实,主要还是禁止密码登录,设置只能密钥登录
    realpg
        21
    realpg  
       33 天前
    只有一丁点作用,能减少一部分傻瓜的扫描器,降低服务器负载,降低网络开销
    还是推荐改一下
    lifansama
        22
    lifansama  
       33 天前 via Android
    fail2ban ,指数增长地增加拉黑时间
    FanError
        23
    FanError  
       33 天前
    @yankebupt #17 这种有啥开源工具能做到这效果不
    bingoso
        24
    bingoso  
    OP
       33 天前 via Android
    @yankebupt 好方法
    ashong
        25
    ashong  
       33 天前
    pubkey 登录,fail2ban
    liuzimin
        26
    liuzimin  
       33 天前
    我是直接用阿里云的安全组,ssh 还是保持为 22 ,平时直接阻止所有 ssh 连接,需要连的时候, 就手动把当前自己的外网 IP 加入白名单允许一下 ssh 连接,用完再关。
    sagaxu
        27
    sagaxu  
       33 天前   ❤️ 3
    改端口是最没用的,

    fail2ban 能阻止频繁重试,但如果对方 IP 多也能不断换

    knockd 端口敲门,默认不开启 22 端口,只有先用暗号敲门,比如 3089 9981 2416 三个端口依次连接过后,再对这个 IP 地址单独放行,不知道暗号扫描也扫不了
    lpdink
        28
    lpdink  
       33 天前
    我发现爆破的都是境外 IP 地址,白名单只允许大陆 IP 就行了
    CatCode
        29
    CatCode  
       33 天前
    改端口的功能不是给防攻击用的 而是让用户可以把 22 端口给别的程序用

    应用场景举例:
    (一)某个“智商极高”的程序员的 HTTP 服务器在代码里面写死了监听 22 端口
    (二)在 22 端口上开启 netcat 或者其他程序,检测其他 ssh 客户端发过来的握手包具体内容
    importmeta
        30
    importmeta  
       33 天前
    拿证书登录不就一劳永逸了?
    mingtdlb
        31
    mingtdlb  
       33 天前
    @sagaxu knockd 这玩意要有对应的 ssh 客户端配合用,就很给力。不然连接之前还得写个 for 循环先探测一下😂
    sfdev
        32
    sfdev  
       33 天前 via Android
    想不让扫是不可能的,直接禁密码就行了,别的可有可无。
    sagaxu
        33
    sagaxu  
       33 天前
    @mingtdlb 自带的就很好用 knock myserver.example.com 123:tcp 456:udp 789:tcp

    云服务商其实都有 API 给你远程操控防火墙,我自己的服务器只对外开 443 端口,22 端口要走白名单,这个白名单里有一条是我的 IP ,cron 脚本定期更新。
    uid106
        34
    uid106  
       33 天前 via iPhone
    推荐一个 go 项目 https://github.com/yosebyte/passport ,用他带认证的转发模式,不在 ip 白名单的直接丢包
    WhatTheBridgeSay
        35
    WhatTheBridgeSay  
       33 天前
    @spritecn #3 要是我用 x3389 阁下又该如何应对
    WhatTheBridgeSay
        36
    WhatTheBridgeSay  
       33 天前   ❤️ 3
    @bingoso #10
    > @zengxs 密钥登录和密码登录的安全性,现在还有争论。

    OP 你无敌了,真的
    fuxkcsdn
        37
    fuxkcsdn  
       33 天前
    只允许 key 登陆不是常规操作吗?
    扫 端口的遇到要求 key 登陆的错误提示就不会再扫你的 ip 了
    bao3
        38
    bao3  
       33 天前
    改端口确实没有任何意义,现在 cpu 和网络已经足够快了,全端口扫描也只是 10 秒的事。
我想了想,唯一改端口的收益是在于避免 GFW 的干扰上。
    aarontian
        39
    aarontian  
       33 天前
    我的看法是 fail2ban 能解决改端口解决的所有问题,还更优雅,我已经至少五年没用过 22 以外的端口 ssh 了。

    唯一不能解决的是 gfw 封端口的问题,但我印象里以前开新机,22 端口经常被阻断连不上,一配置好 fail2ban 立马好了,不像是 gfw 的问题,我不清楚原因是什么,可能是太多人尝试爆破把连接数占满了(或者类似原因)?
    tril
        40
    tril  
       33 天前
    确实没大用,但也不是完全没用。

    我曾经也是密码+高位端口,很多机子都可以避免被大量扫爆,但也遇到过被人盯着高位端口爆破了几万次。

    改成证书登录吧,还有没有人继续扫爆我不知道,但起码 lastb 里不会再有记录了,看着安心点。 ^^_
    ZeroClover
        41
    ZeroClover  
       33 天前   ❤️ 3
    @FanError 甚至不需要任何第三方工具,单凭 nftables 就能实现

    tcp dport 22 ip saddr add @honeypont_ipv4 { ip saddr timeout 1d }
    tcp dport 22 ip6 saddr add @honeypont_ipv6 { ip6 saddr timeout 1d }
    ip saddr @honeypont_ipv4 counter drop
    ip6 saddr @honeypont_ipv6 counter drop

    同理,nftables 也能直接实现端口敲门,不需要任何额外软件

    顺便我自己安全性要求高的直接 SSH Certificate 登录
    ZeroClover
        42
    ZeroClover  
       33 天前
    @ZeroClover set 的名字不小心打错了,然后复制粘贴就全错了

    另外 nftables 需要先预定义这个 set

    set honeypot_ipv4 {
    type ipv4_addr
    flags dynamic,timeout
    timeout 1d
    elements = { }
    }
    Wongz
        43
    Wongz  
       32 天前   ❤️ 2
    大门装锁对安全防护一点作用都没有,几天观察下来,还是会被撬开。以后大门可以不用装锁了
    dzdh
        44
    dzdh  
       32 天前
    key 登录 和 密码登录 安全性 有争论?? 哈?
    anatsking
        45
    anatsking  
       32 天前   ❤️ 1
    以前个人站,在 web 设置一个深度隐藏 url 地址,打开后需要验证,定期通过 cron 脚本提取源 IP 加入到 ssh 白名单和放开防火墙。
    xcsoft
        46
    xcsoft  
       32 天前
    < 我的 22 端口直接是 Gitea 的 ssh server, xswl 看他怎么破
    dode
        47
    dode  
       32 天前
    密钥登录+IP 白名单
    yankebupt
        48
    yankebupt  
       32 天前   ❤️ 2
    @FanError 一般防火墙自定义攻击类型能做到,但是如果你的服务器特别招恨的话(比如MC服),建议发个 SYN+ACK 回去,对方 ACK 了再 BAN ,因为 IP 来源可以造假。
    diivL
        49
    diivL  
       32 天前
    在我的 VPS 上效果很明显,之前一直有被枚举,换了端口就绝迹了。
    lingeo
        50
    lingeo  
       32 天前
    密钥有什么办法保存呢,在客户那登录的话?
    iyiluo
        51
    iyiluo  
       32 天前
    改 22 默认端口,扫描记录真的少很多
    codingmiao
        52
    codingmiao  
       32 天前
    话说有没有可能做个蜜罐,然后在对面连蜜罐 SSH 端口的时候产生大量无用日志或者让对方主动下载文件之类的把对面撑死?
    vvhy
        53
    vvhy  
       32 天前
    @yankebupt #17 在 22 端口放了个蜜罐,结果被安全部门找到了
    wupher
        54
    wupher  
       32 天前
    这本身也不是光靠改端口能解决的事啊。
    CoronaZero
        55
    CoronaZero  
       32 天前
    我的话是 ssh 使用密钥登录,不允许 root 登录、密码登录,需要用到 root 用户的时候再用我的普通用户 su 过去,另外再使用 fail2ban 自动 ban 掉来爆破的 IP 。然后没改端口,倒也没什么问题,只是每天还是有很多 ban IP 记录……
    Tink
        56
    Tink  
       32 天前
    现在不都是全端口扫吗 ssh 特征这么明显的
    lyxxxh2
        57
    lyxxxh2  
       32 天前
    @vvhy
    是不是派出所上门,然后让你整改。
    vvhy
        58
    vvhy  
       32 天前
    @lyxxxh2 不是派出所,内部的安全部门,说有安全漏洞🤣
    xiaoranj
        59
    xiaoranj  
       32 天前
    @yankebupt 21,22,3389,3306 这些全部是钓鱼用的,扫了就 ban IP
    vkillwucy
        60
    vkillwucy  
       32 天前 via Android
    @lpdink 哪有这个表?
    BardOS
        61
    BardOS  
       32 天前
    我的没改一堆扫,改了基本没有,开启 key 登陆,禁止密码,都消停了
    yougg
        62
    yougg  
       32 天前
    另辟蹊径, 直接关掉 sshd, 改用 ttyd 或 gotty 走 https 协议, 还方便随时浏览器访问.
    Opportunity
        63
    Opportunity  
       32 天前
    改了端口以后至少少了 1000 倍,怎么会没用
    shuax
        64
    shuax  
       32 天前
    我改了端口以后尝试登录的确实少了很多。
    shench
        65
    shench  
       32 天前   ❤️ 3
    @spritecn 我一般用 9527
    BeforeTooLate
        66
    BeforeTooLate  
       32 天前
    @zengxs >设置 ssh 为只允许 pub key 登录,你就会发现没人再去尝试登录你的机器了
    我这好像不是这样的,即便只允许密钥登录也会有很多扫描的
    open9527
        67
    open9527  
       32 天前
    是的 改了密钥登录 还是一堆登录失败记录 为什么呢
    cornorj6
        68
    cornorj6  
       32 天前
    各个云一般都提供安全组的 API ,我的方案是自己了做一个系统,跑在 NAS 上面,这个系统有个功能就是把指定 IP 添加到安全组白名单。NAS 上还有个 DDNS-GO 用来做 DDNS 的,它有个 webhook 可以调用我系统的接口,把最新的公网 IP 放到安全组。这样云服务器只有我家里的 NAS 可以连,而我平时通过 VPN 连家里的 NAS 。
    Songxwn
        69
    Songxwn  
       32 天前
    有一点吧,还是做 IP 白名单安全一些
    hibodhi
        70
    hibodhi  
       32 天前
    @dode 这个办法好
    f1ynnv2
        71
    f1ynnv2  
       32 天前
    @bingoso key 登录 和 密码登录 安全性 有争论?这个能详细展开说说吗?
    uid106
        72
    uid106  
       32 天前 via iPhone
    @Songxwn 访问一个加密的 https 路径,ip 存入白名单,ssh 设置为 127.0.0.1:22 ,用 passport 转发,不是白名单的 ip 立刻阻断,密码登录、密钥登陆随便。欢迎关注 https://github.com/yosebyte/passport
    srat1999
        73
    srat1999  
       32 天前
    如果别人就是想搞你这台服务器,改什么端口都会被扫出来。改默认 22 端口只是为了防止那种全网批量抓鸡扫 ssh 弱口令的情况。
    huage
        75
    huage  
       32 天前
    我不改端口的,直接通过防火墙限制登录,有需要再开发给特定 IP 访问 22 端口,平时对外开放只有 80 和 443 。
    WhatTheBridgeSay
        76
    WhatTheBridgeSay  
       32 天前
    @ZeroClover #41 特地试了试,跟 GPT 大战三百回合也没能实现预期功能,能否提供一下完整的 nftables.conf 尝试一下?
    ZeroClover
        77
    ZeroClover  
       32 天前   ❤️ 3
    guanhui07
        78
    guanhui07  
       31 天前
    私钥登录
    x2ve
        79
    x2ve  
       31 天前
    云服务商安全组禁了,世界立马安静;用的时候再打开
    bingoso
        80
    bingoso  
    OP
       31 天前
    @f1ynnv2 本地私钥的保存问题,各种软件都会扫描用户目录.ssh ,参照 t/1092714 。
    比如 windows 下的.ssh 目录自动保存了私钥了 known host ,复制这个目录就可以自动登录服务器。
    shangfabao
        81
    shangfabao  
       31 天前
    云服务厂商的白名单 ssh 端口开一下么
    Gary88
        82
    Gary88  
       31 天前
    更改默认 22 端口,这个还是要做.如果自己不理解,就继续按这个操作.
    atuocn
        83
    atuocn  
       31 天前
    @bingoso know_hosts 保存了私钥?我印象中是保存了已知服务器的公钥吧。

    另外自己的私钥不需要放到.ssh 里。重要的私钥加上密码短语保护。
    yc8332
        84
    yc8332  
       31 天前
    只能减少,哪里能避免啊。。。本来就是公开的,人家扫下端口快得要命
    yukirus
        85
    yukirus  
       31 天前
    插句嘴问个别的问题……windows server 的 3306 咋保护呢
    WhatTheBridgeSay
        86
    WhatTheBridgeSay  
       31 天前
    @ZeroClover #77 好使好使,测试成功,我在研究研究如法炮制一个 IPV6 的
    mostkia
        87
    mostkia  
       31 天前
    如果不想牺牲便捷性,可以考虑使用 webssh ,然后将 22 端口关闭,基本上就不会有爆破骚扰了,而且任何没有准备的设备都可以随时用于登录,其实密码足够复杂也不怕的,就是每次登录看着几万条的登录记录有点辣眼睛
    follow
        88
    follow  
       30 天前
    @ZeroClover
    请问在 debian 12 中可直接用么?
    已使用 ufw 管理,
    ZeroClover
        89
    ZeroClover  
       30 天前
    @follow 防火墙前端( ufw / firewalld )会加一大堆额外的规则,可能会有问题

    我不喜欢防火墙前端,所以不知道会不会有问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   975 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:39 · PVG 06:39 · LAX 14:39 · JFK 17:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.