安全矩阵

 找回密码
 立即注册
搜索
查看: 4747|回复: 0

PHP安全:Redis的使用安全

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2020-11-8 08:39:48 | 显示全部楼层 |阅读模式
原文链接:PHP安全:Redis的使用安全

Redis是一款基于内存与硬盘的高性能非关系型数据库,被各种大型互联网企业、机构等广泛采用。


1、密码安全

很多企业、机构等的Redis存在弱密码、空口令等安全风险。低版本的Redis在未进行有效验证,并且在服务器对外开启SSH服务的情况下,攻击者可以通过Redis未授权访问,然后通过authorized_keys强行获取root权限。

在使用Redis时,不要将Redis暴露在公开网络中,让不受信任的用户接触到Redis是非常危险的。一定要设置Redis密码,Redis的密码是通过requirepass以明文的形式配置在Conf文件中的,密码要尽可能得长和复杂,降低被破解的风险。

config get requirepass // 获取当前密码
config set requirepass "password" // 设置当前密码,服务重新启动后又会置为默认,即无密码,不建议此种方式

在配置文件redis.conf中设置密码如下。

# redis.conf #
requirepass password // 此处注意,行前不能有空格

重新设置密码后,重新登录才能获取操作权限。

#!/bin/sh
redis-cli.exe -h 127.0.0.1 -p 6379 -a password // 需添加密码参数

2、IP访问限制

如果没有对外提供服务器,在Conf中设置为本地绑定:bind 127.0.0.1,不要使用6379默认端口,这样可以在一定程度上避免被扫描。

# redis.conf
bind 127.0.0.1 // 只允许127.0.0.1访问
prot 6300 // 更改默认访问端口

3、运行安全

避免使用管理员账号启动服务,尽可能用nobody或Redis用户来启动Redis,并设置禁止登录。

作为服务端的redis-server,常常需要禁用以上命令来使服务器更加安全,如config、flushall、flushdb等操作都是很关键的,不小心就会导致数据库不可用。可以通过配置文件在SECURITY这一项中,通过rename-command重命名或禁用这些命令。

# redis.conf
appendonly no
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command KEYS ""

而如果要保留命令,但是不能轻易使用,可以重命名命令来设定。

rename-command FLUSHALL RENAME_FLUSHALL
rename-command FLUSHDB RENAME_FLUSHDB
rename-command CONFIG RENAME_CONFIG
rename-command KEYS RENAME_KEYS

对于FLUSHALL命令,需要设置配置文件中appendonly no,否则服务器无法启动。重启服务器后,执行这些命令,服务器会报错unknown command,表示命令已经禁用成功。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 10:59 , Processed in 0.012644 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表