V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
raysmond
V2EX  ›  站长

昨天我的网站被黑了,/bin 目录,服务器程序和数据库都被删除了

  •  
  •   raysmond · Dec 6, 2015 · 13013 views
    This topic created in 3796 days ago, the information mentioned may be changed or developed.

    http://7xo30i.com1.z0.glb.clouddn.com/assets/styles/CloudSpace/layerslider/skins/v5/Screen%20Shot%202015-12-06%20at%2009.55.07.png

    我是 https://www.expper.com 网站的站长,上个月才上线。没什么名气。不知道为何被盯上了,昨天阿里云云盾检测到服务器密码被破解。我重置密码才登录服务器,发现 /bin 目录,服务器目录, postgresql 数据库文件, .ssh 目录都被删除了,几乎不能用了,当时我的内心是奔溃的。

    还好我有备份数据库的习惯,写了个脚本每天备份,万幸这儿备份目录没有被删除啊。
    于是我重新初始化磁盘,重新安装各种服务,重新做了安全措施,改密码,搞到晚上一点才上线。

    我搞不懂黑客为什么要攻击我的网站服务器。也不知道是如何攻破的。

    请问大家有这样的经历吗?你们是如何保证服务器的安全的?

    79 replies    2015-12-09 13:39:32 +08:00
    Anteiku
        1
    Anteiku  
       Dec 6, 2015 via Android
    重新做了安全措施,***改密码***。
    看样子楼主你还是不长记性……
    别用密码登陆了。
    raysmond
        2
    raysmond  
    OP
       Dec 6, 2015
    @Anteiku 我指数据库密码, redis 密码。你是如何登录服务器的?我加了 ssh key ,能够禁用密码登录吗?
    raysmond
        3
    raysmond  
    OP
       Dec 6, 2015
    @Anteiku 果然 ssh 可以禁用密码登录,谢谢提醒
    MrMario
        4
    MrMario  
       Dec 6, 2015 via iPhone   ❤️ 1
    修改 sshd.config :password login no
    如果数据库没有远程访问的需求,改为监听 127.0.0.1
    设置 fail2ban ,缓解暴力破解
    raysmond
        5
    raysmond  
    OP
       Dec 6, 2015
    @MrMario 嗯,数据库已经 bind 了 127.0.0.1
    hqs123
        6
    hqs123  
       Dec 6, 2015
    注意备份...
    duanzhanling
        7
    duanzhanling  
       Dec 6, 2015
    @MrMario 呵呵 说的不错呢,使用 fail2ban 封 IP ,然后再配置 SSH 禁止使用密码登陆,只能使用 ssh 密钥登陆,看你还破解去,嘿嘿……
    matrix67
        8
    matrix67  
       Dec 6, 2015
    楼主反正你密码也已经改了,说一下上一个密码是啥,我就想看看什么样的复杂度的密码能被扫到
    matrix67
        9
    matrix67  
       Dec 6, 2015
    另外,如果你不是随机的密码,其实可以把你的密码放到社工库里面搜一下,只要是在那里面出现过的,理论上讲都是弱密码,肯定能被扫到
    em70
        10
    em70  
       Dec 6, 2015 via Android
    换个端口,别用 22
    raysmond
        11
    raysmond  
    OP
       Dec 6, 2015
    @hqs123 嗯,每天都在备份重要的数据
    raysmond
        12
    raysmond  
    OP
       Dec 6, 2015
    @matrix67 上一个密码我也不记得了,我都是随意打的,数字+大小写字母混合,大概二十多位吧。
    raysmond
        13
    raysmond  
    OP
       Dec 6, 2015
    @matrix67 嗯,可以试试
    Anteiku
        14
    Anteiku  
       Dec 6, 2015
    万幸这儿*备份目录没有被删除*啊。
    至少有一份异地备份数据吧,楼主最好找个脚本把数据备份到 Dropbox 的脚本。
    KyleMeow
        15
    KyleMeow  
       Dec 6, 2015
    阿里云不是有自动快照吗?难道快照也删掉了?
    Anteiku
        16
    Anteiku  
       Dec 6, 2015
    ˊ_>ˋ 阿里云不带梯子连不上 Dropbox ,换别的也可以。
    raysmond
        17
    raysmond  
    OP
       Dec 6, 2015
    @Anteiku 我有用 dropbox uploader 和异地备份的脚本,只不过网站上个月才上线,还没有搞上传的事情就被黑了。看来真的是一点都不能掉以轻心啊。
    raysmond
        18
    raysmond  
    OP
       Dec 6, 2015
    @Anteiku 还好我买的阿里云香港服务器,上 dropbox 没问题
    raysmond
        19
    raysmond  
    OP
       Dec 6, 2015
    @KyleMeow 阿里云香港的那个挂在磁盘居然没有快照(一个月居然没有进行过快照,我也没有手动去创建),不知道为什么。
    KyleMeow
        20
    KyleMeow  
       Dec 6, 2015
    @raysmond 我是每天凌晨 cron 自动备份后 rsync 推送到海外服务器的, Dropbox 公有云总感觉数据放那里不安全,容量也小。
    lhbc
        21
    lhbc  
       Dec 6, 2015
    @raysmond 你这个密码,被暴力破解的可能性极小
    你还是查代码或者配置上有什么漏洞吧
    imn1
        22
    imn1  
       Dec 6, 2015
    攻击却低调的,估计是练手
    zonghua
        23
    zonghua  
       Dec 6, 2015
    吖,我每天都有浏览,没发生什么事。
    raysmond
        24
    raysmond  
    OP
       Dec 6, 2015 via iPhone
    @lhbc 可能是 redis 的漏洞沒搞好,我重新搞了一下
    raysmond
        25
    raysmond  
    OP
       Dec 6, 2015 via iPhone
    @zonghua 昨晚掛掉了,我重新安裝了系統,重新部署好了
    ipconfiger
        26
    ipconfiger  
       Dec 6, 2015
    @raysmond 你的 redis 开放给公网了?
    lxjsmdc
        27
    lxjsmdc  
       Dec 6, 2015
    @raysmond 初入 linux 求列一份做安全防范的设置清单 谢谢
    SharkIng
        28
    SharkIng  
       Dec 6, 2015
    备份的重要性
    eccstartup
        29
    eccstartup  
       Dec 6, 2015
    第一次被拦截的时候,没有给你提醒?
    br00k
        30
    br00k  
       Dec 6, 2015
    被机器人扫描到的吧。
    kendetrics
        31
    kendetrics  
       Dec 6, 2015
    aisin
        32
    aisin  
       Dec 6, 2015
    赶紧去给我的服务器设置了 dropbox 每天定时备份
    raysmond
        33
    raysmond  
    OP
       Dec 6, 2015 via iPhone
    @ipconfiger 沒啊。 bind 了本地,只是以 root 運行了
    raysmond
        34
    raysmond  
    OP
       Dec 6, 2015 via iPhone
    @eccstartup 我在外地,沒收到提醒。
    timothyye
        35
    timothyye  
       Dec 6, 2015 via Android
    看样子楼主你还是不长记性……
    禁止密码登录,用证书登录妥妥的……
    MrMario
        36
    MrMario  
       Dec 6, 2015
    phperstar
        37
    phperstar  
       Dec 6, 2015
    需要兼职运维不,可以联系我,哈哈
    ianisme
        38
    ianisme  
       Dec 6, 2015
    因为可以做跳板,可以扫肉鸡,可以干很多事情,他们其实和你无仇无怨,只是碰巧遇到你了
    GeekTest
        39
    GeekTest  
       Dec 6, 2015 via Android
    用 key 登录 禁用密码登录 IP 白名单 基本没啥问题
    raysmond
        40
    raysmond  
    OP
       Dec 6, 2015 via iPhone
    @GeekTest 基本我也按照這個思路了
    GeekTest
        41
    GeekTest  
       Dec 6, 2015 via Android
    @raysmond 要不 ssh 监听内网,然后弄个 VPN
    raysmond
        42
    raysmond  
    OP
       Dec 6, 2015
    @phperstar 付不起运维的钱
    raysmond
        43
    raysmond  
    OP
       Dec 6, 2015
    @MrMario 我看看学习一下
    love
        44
    love  
       Dec 6, 2015
    LZ 用这个随机的密码关 ssh 什么事啊,明显不可能是 ssh 的问题。
    46fo
        45
    46fo  
       Dec 6, 2015 via iPhone
    阿里云硬盘&系统盘。不是自动备份的嘛。
    raysmond
        46
    raysmond  
    OP
       Dec 6, 2015
    @xdeng 我的阿里云香港的服务器好像没有自动备份,我得问问阿里云怎么回事去
    raysmond
        47
    raysmond  
    OP
       Dec 6, 2015
    @love 我也觉得,可能是通过其他漏洞进来的,不太可能是暴力破解密码
    lyragosa
        48
    lyragosa  
       Dec 6, 2015
    我推荐一个, virtualmin 的自带备份,然后 dropbox 自动上传,谁用谁知道。

    唯一缺点就是太占空间……
    raysmond
        49
    raysmond  
    OP
       Dec 6, 2015
    @lyragosa 谢谢,我去了解一下
    Parallel
        50
    Parallel  
       Dec 7, 2015
    @matrix67 噗,哥们你这名字取的, Matrix67 本人知道吗。。 LOL
    hoythan
        51
    hoythan  
       Dec 7, 2015
    我只想问楼主的网站是什么程序?
    hoythan
        52
    hoythan  
       Dec 7, 2015
    还有注册的账户永远提示登录失败
    hoythan
        53
    hoythan  
       Dec 7, 2015
    @hoythan 尼玛,找回密码直接提示邮箱不存在...前一秒还在邮箱里验证账号的,后一秒就不认了...
    yuriko
        54
    yuriko  
       Dec 7, 2015
    ……我会说,我买了 VPS 才 3 天就爆炸了么……
    xuhaoyangx
        55
    xuhaoyangx  
       Dec 7, 2015
    目测-,-密码比较简单

    常识啊, ssh 证书登录 关闭密码和 root 登录。

    fail2ban + 防火墙 检测状态 开 ssh 端口访问

    数据库除了 bind ,也要用防火墙限制。
    raysmond
        56
    raysmond  
    OP
       Dec 7, 2015
    @hoythan 可能是浏览器的问题,你的账号一直没有激活,我帮你激活了。这个问题比较傻逼,得改一下。
    raysmond
        57
    raysmond  
    OP
       Dec 7, 2015
    @yuriko 你比较惨
    raysmond
        58
    raysmond  
    OP
       Dec 7, 2015
    @xuhaoyangx ssh 禁用了密码登录, fail2ban 和防火墙也在搞起,希望管用
    wawehi
        59
    wawehi  
       Dec 7, 2015   ❤️ 1
    所有端口改成非默认
    不是必须的话不开放外网服务端口, 数据库,缓存这些都只开 127 或者局域网 IP
    SSH 登录必须 KEY ,禁用掉密码登录,禁用 ROOT 远程
    进程尽量不以 root 启动
    关注自己网站所用的程序的漏洞
    关注自己所用的开源程序的漏洞
    及时更新版本
    ooTwToo
        60
    ooTwToo  
       Dec 7, 2015
    @wawehi 赞赞赞
    atan
        61
    atan  
       Dec 7, 2015
    阿里云 SSD 的是没有自动快照的,一直不明白为啥
    raysmond
        62
    raysmond  
    OP
       Dec 7, 2015
    @atan 是啊,搞不懂
    msg7086
        63
    msg7086  
       Dec 7, 2015
    「写了个脚本每天备份」
    为啥不用 MySQL 复制功能。
    raysmond
        64
    raysmond  
    OP
       Dec 7, 2015
    @msg7086 MySQL 我都没用
    msg7086
        65
    msg7086  
       Dec 7, 2015
    @raysmond 所以才说要用啊。另外 Redis 也支持复制啊。不知道你用的是哪家的。
    raysmond
        66
    raysmond  
    OP
       Dec 7, 2015
    @msg7086 不用 MySQL ,单机跑 Redis 也暂时不需要复制
    lovelynn
        67
    lovelynn  
       Dec 7, 2015
    redis 最近爆了一个漏洞 http://www.freebuf.com/vuls/85021.html
    看来就是这个情况了,可以远程写 SSH 公钥,这个洞都玩了好多天了。。。解决方案
    1 )禁止使用 root 权限启动 redis 服务;
    2 )对 redis 访问启用密码认证,并且添加 IP 访问限制;
    3 )尽可能不对公网直接开放 SSH 服务。
    msg7086
        68
    msg7086  
       Dec 7, 2015
    @raysmond 复制的主要目的是备份而不是读写分离负载均衡。
    重要网站、商业网站,为了防止数据丢失的话,复制备份比每日 dump 要好得多,因为前者是实时的。
    就算是机房被轰炸了,你也能拿到最后 1 秒钟那个时刻的数据。
    ( Redis 的话是最后几分钟的数据)

    当然如果本来就没多少写入的话倒是无所谓……
    lovelynn
        69
    lovelynn  
       Dec 7, 2015
    另外一点,黑客可能不是针对你,而是在钟馗之眼类似的这种站点搜索到了楼主服务器有 redis 漏洞而已。脑补黑客独白:我不是指你是傻逼,而是在座的 redis 都是傻逼 2333333
    raysmond
        70
    raysmond  
    OP
       Dec 7, 2015
    @msg7086 小网站暂时用不着读写分离或负载均衡。数据库 replication 倒是做备份的一个不错的选择。数据库复制又不是 MySQL 才有的功能。

    anyway ,小网站,数据量小。数据库复制,负载均衡留给以后考虑
    raysmond
        71
    raysmond  
    OP
       Dec 7, 2015
    @lovelynn 嗯,前面 1 , 2 已经做了
    msg7086
        72
    msg7086  
       Dec 7, 2015
    @lovelynn 发行版自带的 redis 应该都是无权用户。
    如果抓到漏洞被黑,肯定是运维能力不到家了……
    lovelynn
        73
    lovelynn  
       Dec 7, 2015
    @raysmond 这个洞刚爆出来的时候,玩了好久国外的站。楼主也是脸差,估计漏洞搜索引擎优先级排名很高。。一般也就玩搜索引擎搜出来的前几个。。
    lovelynn
        74
    lovelynn  
       Dec 7, 2015
    @msg7086 恩 说的很有道理~~~
    raysmond
        75
    raysmond  
    OP
       Dec 7, 2015
    @lovelynn
    @msg7086 Redis 已经 bind 了本地,启用密码,已非 root 用户运行,目前一切正常。这个漏洞太明显了。
    raysmond
        76
    raysmond  
    OP
       Dec 7, 2015
    @hoythan 这个问题会在某些浏览器中出现,已经 fixed ,以后不会出现了
    tSQghkfhTtQt9mtd
        77
    tSQghkfhTtQt9mtd  
       Dec 7, 2015
    完全没想通阿里既然都检测到是“被破解”为什么不拦下来。。
    linjuyx
        78
    linjuyx  
       Dec 9, 2015
    @raysmond 阿里云 io 优化实列没有自动快照
    raysmond
        79
    raysmond  
    OP
       Dec 9, 2015
    @linjuyx 很奇怪,居然没有,这不科学
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3740 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 10:41 · PVG 18:41 · LAX 03:41 · JFK 06:41
    ♥ Do have faith in what you're doing.