今天在使用Redis的時候遇到了一些問題,這個問題的解決,發(fā)現(xiàn)很多人使用Redis的時候沒有一點安全意識。所以又重溫了一下Redis,覺得應該寫一下Redis的安全和配置。
今天在使用Redis的時候遇到了一些問題,這個問題的解決,發(fā)現(xiàn)很多人使用Redis的時候沒有一點安全意識。所以又重溫了一下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為客戶端程序。
創(chuàng)建服務
二進制文件是編譯完成后在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已經(jīng)安裝完畢。
配置
為什么配置要單獨列出來一個標題呢?
這是因為Redis并沒有最大地去優(yōu)化安全方面,而是盡最大可能去優(yōu)化高性能和易用性。
Redis默認情況下會開啟6379端口,在認證未開啟的情況下,可導致任意用戶進行未授權(quán)訪問操作。
所以我們這里需要做一些安全性配置
新增用戶
千萬不要用一個有較高權(quán)限的用戶來啟動Redis。如果你的Reidis不安全,那么你的高權(quán)限用戶將會成為突破口,導致你的服務器被攻擊。
所以我們需要創(chuàng)建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行左右? 設(shè)置快照文件目錄,切勿設(shè)置成一個redis用戶沒有權(quán)限的目錄
dir /usr/local/redis/
# 第500行左右? 設(shè)置密碼
requirepass YOUR_PASSWORD
$ mkdir /var/log/redis
$ chown -R redis:redis /var/log/redis/
配置一個啟動程序
redis-server默認不是后臺程序啟動,所以我們需要為它配置一個啟動程序
$ vim /sr/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