使用滴滴云DC2,在CentOS7安装Redis并进行安全加固

简介

Redis是开源的内存数据库,并以其良好的灵活性、性能、可扩展性与兼容性著称。

Redis本身被设计成客户端授信的环境下进行访问,服务本身并没有强大的安全功能。但是也具有一些关于安全的基本功能,包括访问密码、命令的重命名与屏蔽等能力。本教程提供了如何配置这些安全功能的说明,并且包含CentOS7上能够为Redis提供的安全特性。

请注意,本文档不涉及分布式与跨地域的Redis集群。

环境准备

本教程使用滴滴云DC2环境进行部署,不同环境部署可能略有不同。

安装Redis

以yum方式安装CentOS7支持的Redis默认版本(如需其他版本则需要从redis.io进行下载):

$ sudo yum install redis -y

整个操作过程使用默认用户即dc2-user进行操作

完成安装后,启动Redis服务:

$ sudo systemctl enable redis

如需在系统启动时启动Redis服务,可执行如下命令:

$ sudo systemctl enable redis

执行如下命令,查看Redis服务状态:

$ sudo systemctl status redis.service

输出内容如下:

● redis.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/redis.service.d
           └─limit.conf
   Active: active (running) since Thu 2018-11-08 17:20:58 CST; 15s ago
 Main PID: 21637 (redis-server)
   CGroup: /system.slice/redis.service
           └─21637 /usr/bin/redis-server 127.0.0.1:6379

Nov 08 17:20:58 10-255-20-202 systemd[1]: Starting Redis persistent key-value database...
Nov 08 17:20:58 10-255-20-202 systemd[1]: Started Redis persistent key-value database.

一旦确认服务已启动,可使用如下命令进行测试:

$ redis-cli ping

屏幕中会输出 PONG ,表示服务已运行,接下来我们就可以配置安全选项了。

绑定Redis访问地址

打开Redis配置文件并进行编辑:

$ sudo vi /etc/redis.conf

找到以bind开头的行,并在下面加入如下内容:

bind 127.0.0.1

强烈建议此处只添加私有地址,添加共有地址会增加额外的风险。如果你需要绑定其他地址,可在IP后加空格和其他IP地址。

配置Redis密码

再次打开Redis配置文件:

$ sudo vi /etc/redis.conf

光标移动到SECURITY章节,找到如下注释内容:

# requirepass foobared

通过移除‘#’,并将foobared修改成更为安全的密码,比如使用sha256sum对简单密码进行加密:

$ echo "didicloud" | sha256sum

将输出结果修改到配置文件中并重启服务:

$ sudo systemctl restart redis.service

现在来测试下是否需要密码进行登录:

$ redis-cli
127.0.0.1:6379> set key1 10

显然,这时候需要密码才能够正常操作了,那么首先需要进行认证:

127.0.0.1:6379> auth your_redis_password

Redis会返回 OK,此时表示已经认证成功,可继续上面的数据操作:

127.0.0.1:6379> set key1 10
OK

127.0.0.1:6379> get key1
"10"

退出Redis命令行,可执行如下命令:

127.0.0.1:6379> quit

对危险命令进行重命名

Redis的另一个内置的安全机制,允许将危险命令进行重命名或者完全禁用,已防止未授权用户使用命令擦除或销毁数据。

危险命令包含如下:

  • FLUSHDB
  • FLUSHALL
  • KEYS
  • PEXPIRE
  • DEL
  • CONFIG
  • SHUTDOWN
  • BGREWRITEAOF
  • BGSAVE
  • SAVE
  • SPOP
  • SREM
  • RENAME
  • DEBUG

以上并不是一个完善的清单,但是从如上命令进行重命名或禁用是一个很好的开始。

重新打开Redis的配置文件

sudo vi  /etc/redis.conf

通过配置一个重命名空值来禁用命令

rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""

通过配置一个新的名称来给命令重命名:

rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG

配置好之后重启服务:

$ sudo service redis-server restart

滴滴云技术团队在Redis部署实战方面积累了丰富的经验,敬请关注本系列文章的后续分享。

本文作者:杜文迪

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值