首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  站长

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

  •  
  •   raysmond · 2015-12-06 10:03:50 +08:00 · 10010 次点击
    这是一个创建于 1461 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    anyway ,小网站,数据量小。数据库复制,负载均衡留给以后考虑
        71
    raysmond   2015-12-07 10:08:21 +08:00
    @lovelynn 嗯,前面 1 , 2 已经做了
        72
    msg7086   2015-12-07 10:11:43 +08:00
    @lovelynn 发行版自带的 redis 应该都是无权用户。
    如果抓到漏洞被黑,肯定是运维能力不到家了……
        73
    lovelynn   2015-12-07 10:12:24 +08:00
    @raysmond 这个洞刚爆出来的时候,玩了好久国外的站。楼主也是脸差,估计漏洞搜索引擎优先级排名很高。。一般也就玩搜索引擎搜出来的前几个。。
        74
    lovelynn   2015-12-07 10:13:16 +08:00
    @msg7086 恩 说的很有道理~~~
        75
    raysmond   2015-12-07 10:20:49 +08:00
    @lovelynn
    @msg7086 Redis 已经 bind 了本地,启用密码,已非 root 用户运行,目前一切正常。这个漏洞太明显了。
        76
    raysmond   2015-12-07 11:15:48 +08:00
    @hoythan 这个问题会在某些浏览器中出现,已经 fixed ,以后不会出现了
        77
    liwanglin12   2015-12-07 13:03:05 +08:00
    完全没想通阿里既然都检测到是“被破解”为什么不拦下来。。
        78
    linjuyx   2015-12-09 13:06:49 +08:00
    @raysmond 阿里云 io 优化实列没有自动快照
        79
    raysmond   2015-12-09 13:39:32 +08:00
    @linjuyx 很奇怪,居然没有,这不科学
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   886 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 20:23 · PVG 04:23 · LAX 12:23 · JFK 15:23
    ♥ Do have faith in what you're doing.