PHP安全:Redis的使用安全

  • A+
所属分类:安全文章

PHP安全:Redis的使用安全


微信公众号:计算机与网络安全

ID:Computer-network


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,表示命令已经禁用成功。



一如既往的学习,一如既往的整理,一如即往的分享。感谢支持PHP安全:Redis的使用安全

【好书推荐】

PHP安全:Redis的使用安全

PHP安全:Redis的使用安全

2020hw系列文章整理(中秋快乐、国庆快乐、双节快乐)

HW中如何检测和阻止DNS隧道

ctf系列文章整理

日志安全系列-安全日志

【干货】流量分析系列文章整理

【干货】超全的 渗透测试系列文章整理

【干货】持续性更新-内网渗透测试系列文章

【干货】android安全系列文章整理



扫描关注LemonSec

PHP安全:Redis的使用安全

PHP安全:Redis的使用安全


本文始发于微信公众号(LemonSec):PHP安全:Redis的使用安全

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: