今天在使用Redis的时候遇到了一些问题,这个问题的解决,发现很多人使用Redis的时候没有一点安全意识。所以又重温了一下Redis,觉得应该写一下Redis的安全和配置。
安装
下载,解压,编译:
$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz
$ tar xzf redis-4.0.10.tar.gz
$ mv redis-4.0.10 /usr/local/redis
$ cd /usr/local/redis
$ make
二进制文件是编译完成后在src目录下
$ ll -a src | grep redis
-rw-rw-r-- 1 root root 2.4K Jun 13 19:02 redisassert.h
-rwxr-xr-x 1 root root 2.6M Sep 14 12:05 redis-benchmark
-rw-rw-r-- 1 root root 29K Jun 13 19:02 redis-benchmark.c
-rw-r--r-- 1 root root 129K Sep 14 12:05 redis-benchmark.o
-rwxr-xr-x 1 root root 6.0M Sep 14 12:05 redis-check-aof
-rw-rw-r-- 1 root root 7.0K Jun 13 19:02 redis-check-aof.c
-rw-r--r-- 1 root root 38K Sep 14 12:05 redis-check-aof.o
-rwxr-xr-x 1 root root 6.0M Sep 14 12:05 redis-check-rdb
-rw-rw-r-- 1 root root 14K Jun 13 19:02 redis-check-rdb.c
-rw-r--r-- 1 root root 68K Sep 14 12:04 redis-check-rdb.o
-rwxr-xr-x 1 root root 2.8M Sep 14 12:05 redis-cli
-rw-rw-r-- 1 root root 99K Jun 13 19:02 redis-cli.c
-rw-r--r-- 1 root root 450K Sep 14 12:05 redis-cli.o
-rw-rw-r-- 1 root root 22K Jun 13 19:02 redismodule.h
-rwxr-xr-x 1 root root 6.0M Sep 14 12:05 redis-sentinel
-rwxr-xr-x 1 root root 6.0M Sep 14 12:05 redis-server
-rwxrwxr-x 1 root root 65K Jun 13 19:02 redis-trib
其中redis-server为服务端程序,redis-cli为客户端程序。
创建服务
二进制文件是编译完成后在src目录下,通过下面的命令启动Redis服务:
$ ln -s /usr/local/redis/src/redis-cli /usr/bin/redis
$ ln -s /usr/local/redis/src/redis-server /usr/bin/redisd
输出版本
$ redis --version
redis-cli 4.0.10
$ redisd --version
Redis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=e53a76b77e60d5b0
至此,表明你的redis已经安装完毕。
配置
为什么配置要单独列出来一个标题呢?
这是因为Redis并没有最大地去优化安全方面,而是尽最大可能去优化高性能和易用性。
Redis默认情况下会开启6379端口,在认证未开启的情况下,可导致任意用户进行未授权访问操作。
所以我们这里需要做一些安全性配置
新增用户
千万不要用一个有较高权限的用户来启动Redis。如果你的Reidis不安全,那么你的高权限用户将会成为突破口,导致你的服务器被攻击。
所以我们需要创建redis账户,并通过该账户启动redis服务,并且配置该账户禁止登陆。
$ adduser redis
$ vim /etc/passwd
redis:x:1001:1001:,,,:/home/redis:/usr/sbin/nologin
$ chown -R redis:redis /usr/local/redis
修改配置文件
这里需要你对vim有基本的操作
$ vim redis.conf
# 第92行左右 修改端口
port 7379
# 第171行左右 日志文件
logfile /var/log/redis/redis.log
# 第263行左右 设置快照文件目录,切勿设置成一个redis用户没有权限的目录
dir /usr/local/redis/
# 第500行左右 设置密码
requirepass YOUR_PASSWORD
$ mkdir /var/log/redis
$ chown -R redis:redis /var/log/redis/
配置一个启动程序
redis-server默认不是后台程序启动,所以我们需要为它配置一个启动程序
$ vim /usr/bin/goredisd
nohup /usr/bin/redisd /usr/local/redis/redis.conf >> /var/log/redis/goredisd.log 2>&1 &
$ goredisd
$ ps -axu | grep redis
redis 19498 0.0 0.1 145304 2580 pts/0 Sl 10:49 0:09 /usr/bin/redisd *:7379
让您学习到的每一节课都有所收获
《Linux就该这么学》是一本由资深运维专家刘遄老师及国内多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。荣获双11、双12购物狂欢节IT品类书籍销量冠军,2017年、2018年国内读者增速最快的技术书籍,您可以在京东、当当、亚马逊及天猫搜索书名后购买,亦可加刘遄老师微信交流学习(手指按住下图3秒钟即可自动扫描)~
刘遄老师QQ:5604215
☀ Linux技术交流群:560843(新群,火热加群中……)
☀ 官方站点:www.linuxprobe.com
☀ 书籍在线学习(电脑在线阅读效果更佳):
http://www.linuxprobe.com/chapter-00.html
《Linux就该这么学》是一本基于最新Linux系统编写,面向零基础读者的技术书籍。从Linux基础知识讲起,然后渐进式地提高内容难度,详细讲解Linux系统中各种服务的工作原理和配置方式,以匹配真实生产环境对运维人员的要求,突显内容的实用性。想要学习Linux系统的读者可以点击按钮了解这本书,同时这本书也适合专业的运维人员阅读,作为一本非常有参考价值的工具书!