redis安全基线设置

一、禁止使用root用户启动 | 访问控制

使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。redis crackit 漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的

使用root切换到redis用户启动服务:
```
useradd -s /sbin/nolog -M redis
sudo -u redis /<redis-server-path>/redis-server /<configpath>/redis.conf
```

二、限制redis 配置文件访问权限 | 文件权限

因为redis密码明文存储在配置文件中,禁止不相关的用户访问改配置文件是必要的,设置redis配置文件权限为600,

执行以下命令修改配置文件权限:
```
chmod 600 /<filepath>/redis.conf
```

三、修改默认6379端口 | 服务配置

避免使用熟知的端口,降低被初级扫描的风险

编辑文件redis的配置文件redis.conf,找到包含port的行,将默认的6379修改为自定义的端口号,然后重启redis

四、开启redis密码认证,并设置高复杂度密码 | 身份鉴别

redis在redis.conf配置文件中,设置配置项requirepass, 开户密码认证。 redis因查询效率高,auth这种命令每秒能处理9w次以上,简单的redis的密码极容易为攻击者暴破。

打开redis.conf,找到requirepass所在的地方,修改为指定的密码,密码应符合复杂性要求:
```
1、长度8位以上
2、包含以下四类字符中的三类字符:
英文大写字母(A 到 Z)
英文小写字母(a 到 z)
10 个基本数字(0 到 9)
非字母字符(例如 !、$、%、@、^、&等,#除外)
3、避免使用已公开的弱密码,如:abcd.1234 、[email protected]等
```
再去掉前面的#号注释符,然后重启redis

五、禁用或者重命名危险命令 | 入侵防范

Redis中线上使用keys *命令,也是非常危险的。因此线上的Redis必须考虑禁用一些危险的命令,或者尽量避免谁都可以使用这些命令,

Redis没有完整的管理系统,但是也提供了一些方案。

修改 redis.conf 文件,添加
```
rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""
rename-command KEYS     ""
rename-command SHUTDOWN ""
rename-command DEL ""
rename-command EVAL ""
```
然后重启redis。
重命名为"" 代表禁用命令,如想保留命令,可以重命名为不可猜测的字符串,如:
`rename-command FLUSHALL  joYAPNXRPmcarcR4ZDgC`

六、禁止监听在公网 | 访问控制

Redis监听在0.0.0.0,可能导致服务对外或内网横向移动渗透风险,极易被黑客利用入侵。

在redis的配置文件redis.conf中配置如下:
bind 127.0.0.1或者内网IP,然后重启redis

七、打开保护模式 | 访问控制

redis默认开启保护模式。要是配置里没有指定bind和密码,开启该参数后,redis只能本地访问,拒绝外部访问。

redis.conf安全设置: # 打开保护模式 protected-mode yes

原文地址:https://www.cnblogs.com/heruiguo/p/12103338.html

时间: 2024-10-08 14:32:36

redis安全基线设置的相关文章

Redis的主从复制设置与安装

1 验证redis的主从复制,将过程抓图 实验步骤 A.  安装Redis B.  启动Master Redis C.  创建redis-slave.conf配置文件 修改Redis端口和打开slaveof 设置 port 6389 ....... slaveof 127.0.0.1 6379 D.  启动Redis Slave E.  查看进程,确认启动正常 F. 操作master redis G. 读取slave Redis Redis的主从复制设置与安装,布布扣,bubuko.com

Redis + keepalived 主从设置与搭建

Redis+keepalived安装及配置: 1.ip规划: 服务器 Ip地址 VIP 应用软件 Redis主 192.168.1.102 192.168.1.120 Redis+ keepalived Redis备 192.168.1.103 Redis+ keepalived 2.服务器基础配置安装 先安装好基础装机环境,具体参考  服务器基础环境配置 文档 redis安装: 1.#下载redies安装包 wget http://download.redis.io/releases/redi

Linux下Nginx、PHP、MySQL、Redis开机自启动设置

一.Nginx开机启动设置 1.在/etc/init.d/目录下创建脚本 vi /etc/init.d/nginx 2.更改脚本权限 chmod 775 /etc/init.d/nginx 3.编写脚本内容 #! /bin/shset -ePATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDESC="nginx daemon"NAME=nginxDAEMON=/usr/local/nginx/sbin/$N

Windows环境下redis 配置文件中设置的密码无效

当我们安装了redis服务后,发现在其配置文件redis.windows.conf(或redis.conf)设置了密码:requirepass ****** 但是打开redis-cli.exe后输入命令config get requirepass发现: 这说明配置文件中密码设置后没有生效. 原因:问题在于我们启动redis服务时是直接在其安装目录中双击redis-server.exe启动的,这样启动的结果是,配置文件不会指定,此时redis并不会自动使用安装目录下的redis.windows.c

[redis] mac下redis安装、设置、启动停止

From: https://www.cnblogs.com/shoren/p/redis.html 下载安装 需要下载release版本,下载地址: http://download.redis.io/releases/ 我这里下载的是: http://download.redis.io/releases/redis-3.2.5.tar.gz 解压到/usr/local/redis目录中,然后依次执行以下命令: cd /usr/local/redis make test sudo make ins

redis 自启动服务设置

1.安装redis tar -zxvf redis-2.8.6.tar.gz  解压 cd redis-2.8.6 Make Make install   目的把Redis中生成的redis-server redis- cli 拷贝到 /usr/local/bin 目录中 好处:可以在Linux服务器中的任意位置 执行 redis-server  redis-cli 2.安装(我也执行了这一步) Mkdir /etc/redis   放置Redis的配置文件的   查看:find redis 或

Redis登录密码设置

1. 更改Redis.conf配置 # requirepass foobared 去掉注释,foobared改为 自己的password , 我测试的时候用的是默认的 foobared 2.启动redis /usr/local/redis/src/redis-server -p 6371 3.测试 /usr/local/redis/src/redis-cli -p 6371 -a foobared redis>set a b (error) ERR operation not permitted

Redis 外部访问设置

1.错误原因 Redis搭建好后一般都是使用编程语言进行连接调用,默认Redis的设置是不允许外界访问的,连接Redis只能通过本地(127.0.0.1)来连接,而不能使用网络IP(192.168.1.x)来连接,如果需要请修改配置文件redis.conf 2.解决方案 进入Redis目录打开Redis.conf配置文件 1>注释掉bind #bind 127.0.0.1 2>默认不是守护进程方式运行,这里可以修改 daemonize no 3>禁用保护模式 protected-mode

redis文档翻译_key设置过期时间

Available since 1.0.0.    使用开始版本1.01 Time complexity: O(1)  时间复杂度O(1) 出处:http://blog.csdn.net/column/details/redisbanli.html Set a timeout on key. After the timeout has expired, the key will automatically be deleted. A key with an associated timeout