Redis设置密码以及与Django的配置

今日公司服务器redis被入侵,估计是被当成肉鸡,记录下修复过程。
早期的 redis 在软件源中安装以后是以 root 权限运行的。而 redis 提供了将数据转储到指定文件的功能。也就是说你可以以 root 权限在全盘任意位置写入文件。文件的内容也是可控的。而对于 ssh 的 authorized_keys 并不严格要求数据格式。只要某一行存在公钥即可。由此引发了漏洞。例如利用 redis 给 root 写公钥。给 web 目录写 php 的 webshell 等等。
具体的漏洞详情可以搜一下 redis 写公钥漏洞
新版本的 redis 在安装时候会自动建立一个名为 redis 的用户。然后以这个用户权限启动。

修复办法

1、升级到最新版本。
2、如不是特别必要。可将 redis 的监听地址改为 127.0.0.1。
3、给 redis 加上访问密码。但别是弱口令

被入侵后检测

1.检查 crontab(/etc/crontab 和 /var/spool/cron/crontabs/中的文件)
2.检查异常进程。这个依机器被入侵程度具体对待
3.检查~/.ssh/authorizeds_keys。如果发现持续写入。多半是有个进程监控或是定时任务
4.检查~/.profile 及~/.bashrc。看看是否有后门

redis设置密码的两种方式

    1、修改配置文件(需重启)
    2、命令修改密码(无需重启)
方式1:
    1-打开 /etc/redis/redis.config 文件
    2-找到 :# requirepass foobared  # 去掉行前的注释,并修改密码为所需要的密码。保存文件
    3-重启redis   sudo service redis restart
    4-连接redis:  redis-cli -h 127.0.0.1 -p 6379 -a 密码
方式2:
    1-连接redis
    2-config get requirepass           # 获取当前密码
    3-config set requirepass  123456   # 设置当前密码为123456(这里换成你自己的密码,越复杂越好)
    4-config get requirepass           # 获取当前密码

django配置

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://:[email protected]:6379/0",     # http://冒号:密码@ip:port/库号
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }

你可能感兴趣的:(Redis设置密码以及与Django的配置)