V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
MFWT
V2EX  ›  云计算

实录:公有云环境碰上 SSH 攻击的盛况

  •  1
     
  •   MFWT · 2023-05-10 21:33:47 +08:00 · 7646 次点击
    这是一个创建于 387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    香港主力加密代理小鸡,系统自带 Fail2Ban 。虽然说密码强度足够,也未泄露,而且机器对外只提供 SSH 登录和酸酸服务,炸了也不心疼
    但是,还是感觉心里发毛,于是大约三天前上了密钥登录,关掉了密码登录
    干完这件事之后,我一时兴起,决定看看登录日志,看看 SSH 失败登录的情况到底有多严重
    不看不知道,一看吓一跳,只能说这机器活到现在,那个复杂的密码真的是辛苦他了.....

    简单统计

    统计周期:从 4/30 到今天( 5/10 ),也就是十天左右的时间

    1. 服务器记录了八万多行的登录日志,按平均一次登录尝试打 5 条 log 算,这十天遭受了超过 1.5 万次的 SSH 爆破
    2. 用 Python 做了脚本(脚本在文末),简单分析了一下日志,导出并去重之后测出了1644 个尝试用于登录的用户名。这里从文件中列举几个常见的和不常见的:
    • 常见的:
      root 12345 abc aaa zzz user ftpuser ftpuser1 test nginx linux toor guest admin pi orangepi

    • 不常见的:
      julia jon jvj jiankong miguel pablo riad niklas RYSN_zhongying matheus

    还是那个日志,统计了连上来的493 个 IP,择取归属地数量前五的如下:

    us 99
    cn 70
    kr 48
    au 33
    de 25
    

    举两个例子,美国可能是因为 VPS 较为低价,人们大量购买(建站,加密代理之类的),但安全措施没有做足(简单用户名,简单密码,没有 Fail2Ban 等防护软件 —— 至于你说是不是 22 端口,我感觉关系不大,毕竟 SSH 不防主动探测,换个端口,可能消停两天又开始了),导致成为了别人的肉鸡

    至于中国 IP ,从具体属地等信息来看,不乏家宽 IP 。推测除了购买家宽代理之外,也有可能是用户电脑由于安装了各种流氓软件等等原因,成为了人家的肉鸡

    众生百态

    分析日志让人哑然失笑,此处列举几个登陆攻击的行为,与君共赏——

    这是不知所云(非 SSH 请求发到了 SSH 端口)

    sshd[895175]: error: kex_exchange_identification: banner line contains invalid characters
    sshd[895175]: banner exchange: Connection from 213.*.*.98 port 64661: invalid format
    

    这是知难而退(服务器关闭了密码登录)

    sshd[894967]: Received disconnect from 134.*.*.178 port 58562:11: Bye Bye [preauth]
    sshd[894967]: Disconnected from authenticating user root 134.*.*.178 port 58562 [preauth]
    sshd[894969]: Received disconnect from 192.*.*.50 port 51560:11: Bye Bye [preauth]
    sshd[894969]: Disconnected from authenticating user root 192.*.*.50 port 51560 [preauth]
    sshd[894971]: Received disconnect from 200.*.*.234 port 51036:11: Bye Bye [preauth]
    sshd[894971]: Disconnected from authenticating user root 200.*.*.234 port 51036 [preauth]
    

    这是爱如潮水(注意 IP 和时间)

    20:00:23 - sshd[895661]: Invalid user dockeradmin from 144.*.*.23 port 40902
    20:00:23 - sshd[895666]: Invalid user ubnt from 144.*.*.23 port 40990
    20:00:23 - sshd[895673]: Invalid user steam from 144.*.*.23 port 41008
    .....
    20:00:23 - sshd[895678]: Invalid user postgres from 144.*.*.23 port 40994
    ......
    20:00:23 - sshd[895659]: Connection closed by invalid user devops 144.*.*.23 port 40862 [preauth]
    ......
    20:00:23 - sshd[895668]: Connection closed by invalid user zjw 144.*.*.23 port 41004 [preauth]
    

    这是锲而不舍(同一用户名不同密码多次登录)

    sshd[912780]: Disconnecting authenticating user root 59.*.*.186 port 52862: Too many authentication failures [preauth]
    sshd[912782]: error: maximum authentication attempts exceeded for root from 59.102.161.186 port 52911 ssh2 [preauth]
    

    这是老子!

    sshd[921821]: Accepted publickey for root from 2409:****:****:**** port 6**** ssh2: RSA SHA256:****....
    sshd[921821]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
    systemd-logind[331]: New session **** of user root.
    

    后日谈

    我感觉,最根本的防止被爆破 SSH 成功的方法只有三个:

    1. 不允许非授权的 IP 连接
    2. 使用足够长的私钥(比如 4096Bit )代替密码进行验证
    3. 不开放 SSH 登录端口(比如,通过 VPN 连入内网环境后再登录)

    虽然说这台机器只是酸酸机,但是鬼知道被爆破后会不会变成下一台肉鸡? 世事难料,不如小心行船,方得万年平安
    又或许,我可以允许任意用户名通过,然后连上来的用户都用 ASCII 播放一遍鸡你太美?

    后附统计脚本

    
    filename = 'auth.log'
    
    for line in open(filename, "r"):
    
        if(line.find('sshd') == -1):
            #非 SSHD 日志,跳过
            continue
    
        if(line.find('Invalid user') != -1):
            #空格分隔后的日志,第五和第七位是用户名和 IP 信息
            #实际检测请根据实际情况修改截断格式
            print(line.split(" ")[5] + "," + line.split(" ")[7])
    
    
    

    深山踏红叶,耳畔闻鹿鸣
    全文完,感谢阅读

    86 条回复    2023-06-27 17:24:48 +08:00
    mikewang
        1
    mikewang  
       2023-05-10 21:41:06 +08:00
    看了下我的 fail2ban ,哪天来兴趣了分析一下...

    Status for the jail: sshd
    |- Filter
    | |- Currently failed: 13
    | |- Total failed: 130963
    | `- File list: /var/log/auth.log
    `- Actions
    |- Currently banned: 16095
    |- Total banned: 29418
    `- Banned IP list: ...
    dode
        2
    dode  
       2023-05-10 21:43:31 +08:00
    好麻烦,终究还是搞了白名单 ssh_ip
    lwjef
        3
    lwjef  
       2023-05-10 21:46:10 +08:00 via iPhone
    先把 22 换个高位,先把端口扫出来再说吧。😬
    hefish
        4
    hefish  
       2023-05-10 21:54:27 +08:00
    只是用工具和字典 挂那儿跑。 并不是真的在尝试登录。 基本上只要公网上开端口,用不了多久总有人来扫。没办法的。
    swsh007
        5
    swsh007  
       2023-05-10 21:55:05 +08:00 via Android
    密钥是必须,高位随便扫,其实用那些套了一层防火墙的直接闭了就是,需要用再开最彻底。
    realJamespond
        6
    realJamespond  
       2023-05-10 21:56:53 +08:00
    为啥不禁密码登录?
    chinni
        7
    chinni  
       2023-05-10 21:58:06 +08:00
    根本无所谓 直接 只允许 key 登录就好了 其他没啥用
    MFWT
        8
    MFWT  
    OP
       2023-05-10 21:58:31 +08:00
    @hefish #4

    对啊,所以我用的是盛况一词
    公网开服务,没有动静那才叫怪
    MFWT
        9
    MFWT  
    OP
       2023-05-10 21:59:23 +08:00
    @realJamespond #6 大哥你要不看看我第二行写的啥....
    Soo0
        10
    Soo0  
       2023-05-10 22:09:31 +08:00
    改端口 白名单,密码关了 开密钥登录 ,实在不行直接关了,自己要用的时候在开,用完关了
    showgood163
        11
    showgood163  
       2023-05-10 22:14:06 +08:00
    个人在 VPS 上采用的防护策略

    防火墙关闭未使用端口
    高位 SSH 端口
    SSH 强账号密码
    3 次登录失败直接 BAN IP ,封禁时间长达一年的的 fail2ban

    下面是积攒小半年的结果

    ```
    Status for the jail: sshd
    |- Filter
    | |- Currently failed: 201
    | |- Total failed: 1421
    | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
    `- Actions
    |- Currently banned: 5483
    |- Total banned: 5483
    ```
    SFJ4MEGabMk2
        12
    SFJ4MEGabMk2  
       2023-05-10 22:16:31 +08:00 via iPhone
    SSH 只开在 IPv6 地址上
    est
        13
    est  
       2023-05-10 22:19:26 +08:00
    可以试试做一个蜜罐。无论你输入什么账号密码都能进入一个啥命令都干不了的假 shell 。
    LittleState
        14
    LittleState  
       2023-05-10 22:19:29 +08:00
    @showgood163 #11 啊,都这样了还有这么多吗,话说我只允许密钥登陆应该没啥因患了吧?
    zydxn
        15
    zydxn  
       2023-05-10 22:19:35 +08:00   ❤️ 2
    噗,这是老子笑死
    MFWT
        16
    MFWT  
    OP
       2023-05-10 22:21:51 +08:00
    @est #13 真男人从不回头用蜜罐,直接 sshd (
    showgood163
        17
    showgood163  
       2023-05-10 22:22:18 +08:00
    @LittleState

    只允许密钥登录的安全系数,比我做的几件事加起来都高

    前提是密钥没泄露
    mikespook
        18
    mikespook  
       2023-05-10 22:24:54 +08:00
    所以,之前是 root 挂密码在跑?这和过个浴巾裸奔有什么区别?
    现在是 root 用 key pair 的话,大约也就是穿个泳衣逛街了……
    MFWT
        19
    MFWT  
    OP
       2023-05-10 22:26:38 +08:00
    @mikespook #18 泳衣逛街总比只挂浴巾来得好
    f165af34d4830eeb
        20
    f165af34d4830eeb  
       2023-05-10 22:37:46 +08:00
    首先不建议直接通过 ssh 登录 root 用户

    其次建议考虑使用 ssh over vpn 的方式使用(比如 zerotier ),比直接暴露在公网上安全很多

    如果有必要可以允许白名单 ip 在公网直接访问 ssh ,作为 vpn 失效时的 fallback 手段。
    nznd
        21
    nznd  
       2023-05-10 22:38:56 +08:00
    顺带问一下,如果用 frp 转发本地 22 端口到公网服务器的一个高位端口,总是被爆破怎么办,无法使用 fail2ban ,因为源 ip 是 127.0.0.1 ,已经关闭密码登录,只开启 ssh key 登录。设备是树莓派,总是半夜看到硬盘灯一直在亮,上去一看有人在爆破...
    MFWT
        22
    MFWT  
    OP
       2023-05-10 22:47:06 +08:00
    @nznd #21 建议就是不要直接暴露咯,在公网服务器用 VPN 做鉴权或者 iptables 只允许指定 ip 连接
    nznd
        23
    nznd  
       2023-05-10 22:49:27 +08:00
    @MFWT #22 主要是来给快捷指令 ssh 上去执行 py 脚本的,vpn 、指定 ip 和鉴权都有点难接入
    eb0c6551
        24
    eb0c6551  
       2023-05-10 22:54:02 +08:00
    这就让脚本扫有什么实际影响吗?安全系数本来就由你的密钥强度决定。如果有合理的密钥强度,让扫个几百年也没关系。
    shangyu7
        25
    shangyu7  
       2023-05-10 23:00:48 +08:00
    挺正常的,你用户名和密码够长一般也没啥问题
    Remember
        26
    Remember  
       2023-05-10 23:08:44 +08:00   ❤️ 9
    互联网背景噪音而已,几十年来都是这样,用不着大惊小怪的。
    cwcc
        27
    cwcc  
       2023-05-10 23:41:40 +08:00   ❤️ 1
    “互联网背景噪音而已,几十年来都是这样,用不着大惊小怪的。” 说得非常有画面感。

    另外,如果闲得慌,还可以弄个假 shell ,就是让那些爆破的人能登录上来,记录他们输入的命令,观察行为,反向渗透( doge ,别问我为什么这么说)。
    y1y1
        28
    y1y1  
       2023-05-10 23:54:26 +08:00 via iPhone
    记得之前用 vultr ,每次新开一台过不了多久就开始疯狂尝试登陆
    tin3w5
        29
    tin3w5  
       2023-05-10 23:58:38 +08:00 via iPhone   ❤️ 1
    我是自己写的 shell 脚本定期把登录失败超过三次的 ip 打到一个 ipset 里,然后 iptables 干掉这个 ip ,每天条目不少于 300 个。
    此外,博客的 web 日志更逗比,一天能有好几百条到一千多条扫描记录,而且是盲扫——没有主机名,只有 IP ,扫不出来还非要继续扫……
    leaflxh
        30
    leaflxh  
       2023-05-11 00:01:31 +08:00 via Android
    据说 ipv4 公网扫一边用不了多久
    leaflxh
        31
    leaflxh  
       2023-05-11 00:05:42 +08:00 via Android
    (大概开 5 万台机器,一共四十三亿个地址,抛开私网地址,一秒一个,一天就能扫完
    nuk
        32
    nuk  
       2023-05-11 00:08:33 +08:00
    看了下,今年已经被尝试 100 多万次密码了,密码设置长一点,不要在其他地方用一样的密码,基本上就没问题了
    # cat secure-2023* |gunzip |grep "Failed password" |wc
    1029237 15372263 113160720
    chesha1
        33
    chesha1  
       2023-05-11 00:32:16 +08:00
    开个 fail2ban 几乎不会有问题,ssh 算是好处理的了,你要是部署其他 web 服务就麻烦得多了
    512357301
        34
    512357301  
       2023-05-11 00:32:42 +08:00 via Android
    小白借楼问一句,我在 aws 搞了台免费的 ec2 ,只开了 22 和 60000 以上的高位端口,系统装的 ubuntu20.04 ,登录的话按照官方给的 ssh 方式,用.pem 文件作为密钥登录的,没用密码。
    话说这种方式安全吗,还用搞 fail2ban 吗?需不需要做其他的加强?真心求教各位,拱手.jpg
    churchmice
        35
    churchmice  
       2023-05-11 00:52:54 +08:00 via Android
    @512357301 安全得很,把密钥长度搞成 4096 的或者换成 ecc 就更安全了,他有这能耐破解你的 RSA/ECC,直接去攻击银行好了
    lostberryzz
        36
    lostberryzz  
       2023-05-11 01:02:07 +08:00
    qps 只有不到 1 的扫描,开 fail2ban 我还嫌占资源,个人观点仅限密钥登陆即可,或者懒一点强密码也不是不行吧
    billccn
        37
    billccn  
       2023-05-11 06:17:35 +08:00
    最稳妥是需要 SSH 的时候进控制面板,用网页版控制台给自己 IP 加一个规则。当然这个只对 VPS 有效,独立主机需要自己整。

    我还在 22 端口弄了一个蜜罐,把 TCP window 设置成 1 ,浪费攻击者 CPU 。下面准备研究一下 SSH 客户端有没有漏洞,反攻回去。
    MFWT
        38
    MFWT  
    OP
       2023-05-11 08:28:22 +08:00
    @eb0c6551 #24
    @Remember #26

    应该说,对我的影响几乎为零,所以题目中的『攻击』确实有失偏颇,调整为『扫描』之类的可能会好些
    baobao1270
        39
    baobao1270  
       2023-05-11 08:30:37 +08:00   ❤️ 2
    「这是老子」楼主说话好可爱(

    公网环境确实像黑暗森林,到处都是自动扫描的机器人,其实你开了 HTTP 服务器还能看到一堆自动扫 /wp-admin 尝试弱密码的呢。VPS 上天天都有一堆 SSH 登录失败日志,我从来管,只是定期清理防止占用过大。毕竟我已经习惯密钥登录了,我的所有机器都会执行我自己写的脚本来自动从 GitHub 下载我的公钥并配置只允许密钥登录。

    「最根本的防止被爆破 SSH 成功的方法只有三个」,其实 1 并不是:IP 来源端口可能被伪造,而自己的 IP 地址也可能会变动。而 2 、3 只要做到一个就行。

    最后楼主选择了「 RSA 2048 」的密钥,其实用 ED25519 更好,密钥更短、性能更强的同时也有 RSA 3000bits 左右的强度。
    MFWT
        40
    MFWT  
    OP
       2023-05-11 09:16:47 +08:00
    @baobao1270 #39 我的 PuTTYGEN 默认设置的是 RSA2048 ,有时间我也试试 25519
    skyrim61
        41
    skyrim61  
       2023-05-11 09:17:22 +08:00
    很多系统上 可能还不支持 ed25519
    MFWT
        42
    MFWT  
    OP
       2023-05-11 09:22:06 +08:00
    @baobao1270 #39

    检查 OpenSSH 确定支持之后,换成了 25519 测试了一下,确实登录快了很多
    dier
        43
    dier  
       2023-05-11 09:22:57 +08:00
    十天才 1.5 万次,前天我有个服务器 75 分钟,同一个 IP 都试了 3.6 万次
    lakehylia
        44
    lakehylia  
       2023-05-11 09:43:47 +08:00
    找密钥生成器生成够长的密钥呗
    peasant
        45
    peasant  
       2023-05-11 10:02:30 +08:00
    我在境外的机器都是只允许密钥登录,然后有一台国内的机器,境外机器的 22 端口只允许国内机器的 IP 连接,每次都是先连接国内机器再连境外的机器。
    MoeMoesakura
        46
    MoeMoesakura  
       2023-05-11 10:10:41 +08:00
    纯 codeserver 用途,基本没用 ssh 登陆( ssh 是密钥登录)
    root@instance-20*******-2**7 ~/workdir# lastb |wc -l
    27705
    MoeMoesakura
        47
    MoeMoesakura  
       2023-05-11 10:13:22 +08:00
    @cwcc #27 实际上确实可以,22 放一个蜜罐然后别的端口放 ssh (毕竟脚本只会扫 22 )
    Bingchunmoli
        48
    Bingchunmoli  
       2023-05-11 10:16:10 +08:00 via Android
    Fail2Ban 不会配起不起来, 密码登录还是有用的,私钥不可能随时带着
    documentzhangx66
        49
    documentzhangx66  
       2023-05-11 10:30:10 +08:00   ❤️ 1
    说了很多次,公网云主机,管理端口( mstsc 、ssh 等)一定要开 IP 白名单。

    开白名单后,直接挡住 99.99% 的攻击。

    开白名单的方法很简单,联系运营商客服咨询,以及观察你自己网络在公网上所处网段。

    比如电信家宽,如果你的 IP 为 1.2.3.4 ,

    那么 IP 白名单开一个 1.2.0.0 / 16 就行了,也就是说对于 1.2.*.* 都允许访问。

    然后 Linux 安装 fail2ban ,windows 安装 wail2ban 密码用 16 位复杂密码,直接无敌。
    Ally
        50
    Ally  
       2023-05-11 10:50:51 +08:00
    前端时间开的一个腾讯轻量云,SSH 一直在被人爆破,日志都不停得打印,也没管过。后来不胜其烦,关了密码登录,只用密钥了
    enrolls
        51
    enrolls  
       2023-05-11 12:23:27 +08:00
    `journalctl -t sshd` 看看失败的日志

    `journalctl --disk-usage` 看看日志的硬盘占用
    lifanxi
        52
    lifanxi  
       2023-05-11 12:35:38 +08:00
    我用 Port Knocking ,方便和安全平衡。
    Deplay
        53
    Deplay  
       2023-05-11 12:38:06 +08:00
    之前有一台,7 天 16 万次
    qbqbqbqb
        54
    qbqbqbqb  
       2023-05-11 12:51:20 +08:00
    @skyrim61 不支持 25519 的大多数是嵌入式的吧,比如 OpenWRT 官方发行版默认用 Dropbear SSH 服务端,只编译了 RSA 的支持,想要别的得自己编译。

    正常的桌面 /服务器 Linux+OpenSSH 很少有不支持的。
    luxor
        55
    luxor  
       2023-05-11 12:59:02 +08:00
    这些爆破攻击基本上都来自蠕虫,改端口是没用的,采用公钥认证即可保证安全。
    qbqbqbqb
        56
    qbqbqbqb  
       2023-05-11 13:03:41 +08:00
    @Bingchunmoli 私钥随身带着本来就是一个伪需求,一般来说要想安全首先就得用固定的电脑远程登录服务器,随便用别人的电脑远程登录本身就不安全了。如果是用自己的一台服务器(跳板机)登录另一台的话也不必要传输私钥,可以用 agent forwarding 。

    另外想要安全地随身带私钥也不是不可以,有 Yubikey 这种硬件 key 。

    密码登录唯一的用处就是组织合规,毕竟公司的服务器肯定是统一管理登录权限,不可能让你注册自己的私钥免密码登录,就只能用密码。

    如果是个人全权使用的场景,私钥登录绝大多数情况下优于密码登录。
    opentrade
        57
    opentrade  
       2023-05-11 13:09:28 +08:00
    看了一下我的 10+台服务,没被攻击,好失落
    strp
        58
    strp  
       2023-05-11 13:14:32 +08:00
    root@localhost:~# lastb |wc -l
    145435
    qbqbqbqb
        59
    qbqbqbqb  
       2023-05-11 13:20:26 +08:00
    @lwjef 改端口用处不大,v2ex 上就有一个“路由器六万高端口转发 3389”被爆破的例子,还有一个 9022 端口 ssh 树莓派因为用纯数字密码被爆破。而且如果服务器是红帽系( CentOS ,Fedora 等)又没关 SELinux 的话,不清楚情况贸然改端口可能会把自己锁在外面。

    一般来说仅密钥登录就足够安全了。要隐藏端口还是得用 VPN ,所有内部服务只开放到内网和 VPN ,禁止公网直连。
    tsanie
        60
    tsanie  
       2023-05-11 13:44:03 +08:00
    @qbqbqbqb openwrt 22 中的 dropbear 也支持 ed25519 了
    Robertwhite
        61
    Robertwhite  
       2023-05-11 13:52:47 +08:00
    我问一下,腾讯轻量云,我架了个 nginx 开放了 80 端口,部署一些页面,会有什么安全问题吗?没有密码,直接 url 能打开页面的那种
    bing1178
        62
    bing1178  
       2023-05-11 13:56:07 +08:00
    无所谓了 。一直 22 端口 允许 root 密码
    密码足够强就行
    注意 普通用户也不能有若密码
    Bingchunmoli
        63
    Bingchunmoli  
       2023-05-11 14:00:22 +08:00 via Android
    @qbqbqbqb 但是不可能每次都在家里的电脑上登陆的吧,总会有去公司去外出的时间的连接需求的
    deplivesb
        64
    deplivesb  
       2023-05-11 14:01:21 +08:00

    看了眼我的,emmm
    inhzus
        65
    inhzus  
       2023-05-11 14:10:36 +08:00
    楼主太可爱了= =每日一乐
    Georgedoe
        66
    Georgedoe  
       2023-05-11 14:13:53 +08:00   ❤️ 1
    这也算盛况么, 随便一个学过安全的学生用 Metasploit 不就一键攻击
    indexof
        67
    indexof  
       2023-05-11 14:14:44 +08:00
    连我家里的机器对公网开放每天都有攻击。各种端口试过去。感觉像爬虫在全网扫描。
    bjzhush
        68
    bjzhush  
       2023-05-11 14:15:20 +08:00
    我还以为多少呢,才 8 万次。。。
    不知道互联网是黑暗丛林啊,8W 次爆破如果是在一小时内的还有点看头,这都属于日常活动了
    切换隔端口,关闭密码登录即可
    MFWT
        69
    MFWT  
    OP
       2023-05-11 14:40:09 +08:00
    @Robertwhite #61 理论上,纯静态页面不会有太多安全问题,但是如果引入了执行代码的机会(比如 PHP )就难讲了
    Avafly
        70
    Avafly  
       2023-05-11 15:34:19 +08:00
    @mikewang 我以为我 9,000 条够多了
    hoofs
        71
    hoofs  
       2023-05-11 15:53:46 +08:00 via Android
    -rw-rw---- 1 root utmp 1.9G 5 月 11 日 15:50 /var/log/btmp
    运行了快两年的服务器,改高位端口+25519 密钥
    nightwitch
        72
    nightwitch  
       2023-05-11 15:58:49 +08:00 via Android
    @nznd 在 frp 上可以做鉴权
    rioufbi
        73
    rioufbi  
       2023-05-11 16:23:55 +08:00
    SSH 换个端口,又可以继续清净快活几个月了。
    pusheax
        74
    pusheax  
       2023-05-11 16:29:11 +08:00   ❤️ 1
    mirai 在 16 年打瘫了半个美国的网络。就是很简单地通过爆破物联网设备的 SSH 和 Telnet ,控制大量设备发起 DDoS 攻击。
    在那之后,作者自知玩的过火,把 mirai 的源代码公开,希望把水搅浑逃避水表(虽说最后还是被抓了)。
    但这打开了潘多拉魔盒。一直以来,大家都知道公网上有很多弱口令的设备,但没想过数量有如此之大。
    直到今天,mirai 的变种依旧是僵尸网络的主力之一。大部分这种 SSH 爆破的流量,都是这类僵尸网络在自动攻击,抓取设备。
    ivamp
        75
    ivamp  
       2023-05-11 16:38:44 +08:00
    @baobao1270 想问下你这个是怎么实现的?脚本可以分享下吗?
    david99654
        76
    david99654  
       2023-05-11 17:25:44 +08:00
    @nznd frp 有 log ,我就是根据 log 内容做了一个类似 fail2ban 的脚本
    des
        77
    des  
       2023-05-11 17:25:49 +08:00
    我是是 BAN 了几个 IDC 的 IP 段,安静不少
    JoeoooLAI
        78
    JoeoooLAI  
       2023-05-11 21:37:57 +08:00
    fail2ban 我试过。。一个月 10w 。。。最后我把 ssh 端口关掉,要用才上去安全组打开。。
    wizardyhnr
        79
    wizardyhnr  
       2023-05-11 22:29:56 +08:00
    fail2ban 规则设置连续 5 次错误尝试就永 ban 就完事了。
    huahsiung
        80
    huahsiung  
       2023-05-13 13:23:41 +08:00
    sshd 也被爆破成筛子,因为一些原因必须要开密码,开了一个 sshesame 蜜罐,结果看日志,发现蜜罐都没有怎么爆破,还是在爆破 sshd 。nmap 一扫描,发现 sshd 会返回“SSH-2.0-OpenSSH_7.6”,而 sshesame 蜜罐会返回“SSH-2.0-sshesame”。m'd 蜜罐暴露了。然后把 sshd 的 ServerVersion 也改为“SSH-2.0-sshesame”,假装自己是 sshesame 蜜罐。之后流量下降 60%
    chesha1
        81
    chesha1  
       2023-05-18 12:32:26 +08:00
    我的做法是只允许我本地的 ip ssh 过去,防止动态 ip 掩码留了最后 8 位,基本就没有问题了
    michael2016
        82
    michael2016  
       2023-05-18 18:11:01 +08:00
    没见过世面,多大点屁事儿,正常操作,ACL 、账号密码搞强壮一点问题不大,有钱的上堡垒机+零信任。
    cloverzrg2
        83
    cloverzrg2  
       2023-05-23 10:47:24 +08:00
    我一般直接禁止密码登陆
    echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config
    cloverzrg2
        84
    cloverzrg2  
       2023-05-23 10:48:16 +08:00
    @chesha1 #81 我这边宽带的动态 IP, 是整个 /32 都在变
    chesha1
        85
    chesha1  
       2023-05-23 11:01:20 +08:00
    @cloverzrg2 你确定是整个 /32 都在变? IP 地址一共才 32 位啊
    HungryOrangeCat
        86
    HungryOrangeCat  
       339 天前
    还没我一天受到的攻击多 hhhc
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2385 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 593ms · UTC 02:01 · PVG 10:01 · LAX 19:01 · JFK 22:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.