Redis学习笔记四——redis安全设置

Redis的安全设计是在"Redis运行在可信环境"这个前提下做出的,在生产环境运行时不能允许外界直接连接到Redis服务器上,而应该通过应用程序进行中转,运行在可信的环境中是保证Redis安全的最重要方法。

1.为redis设置密码

在redis.conf中进行配置:

requirepass hellocarl
通过命令设置:

CONFIG set requirepass "hellocarl"
由于Redis的性能极高,并且输入错误密码后Redis并不会进行主动延迟(考虑到Redis的单线程模型),所以攻击者可以通过穷举法破解Redis的密码(1秒内能够尝试十几万个密码),因此在设置时一定要选择复杂的密码。

注意:配置Redis复制的时候如果主数据库设置了密码,需要在从数据库的配置文件中通过masterauth参数设置主数据库的密码,以使从数据库连接主数据库时自动使用AUTH命令认证。

2.危险命令重命名

配置文件中:

rename-command FLUSHALL oyfekmjvmwxq5a9c8usofuo369x0it2k   # 重命名FLUSHALL命令
rename-command FLUSHALL ""  # 禁用FLUSHALL命令

3.绑定只能本机连接

Redis的默认配置会接受来自任何地址发送来的请求,即在任何一个拥有公网IP的服务器上启动Redis服务器,都可以被外界直接访问到。要更改这一设置,在配置文件中修改bind参数,如只允许本机应用连接Redis,可以将bind参数改成:

bind 127.0.0.1

4.使用linux nobody启动redis

在root账户下使用nobody用户启动程序xxx的方法:
su -m nobody -c xxx
nobody账户默认是无法登陆的,直接使用su -nobody会出现
This account is currently not available.
需要修改配置文件etc/passwd实现登陆
vim /etc/passwd
	找到
	nobody:x:99:99:Nobody:/:/sbin/nologin
	改为nobody:x:99:99:Nobody:/:/bin/bash
	后保存执行su -nobody
默认 redis 安装存在漏洞, 可以直接 获取 root 权限

Redis安全设置 - 设置密码、禁用指令

linux nobody用户是什么 nobody用户介绍

如何在root下以nobody身份执行程序?

你可能感兴趣的:(NoSQL数据库)