本文内容主要包括,以下两个方面:
- redis的安装及配置
- redis防入侵的保护措施
- 禁止一些redis高危命令(config,flushall,flushdb,keys)
- 为redis添加密码验证
- 禁止外网访问redis
- 为redis服务创建单独的用户和家目录,并配置禁止登录
安装redis
# 下载并解压安装包
[root@12 ~]# mkdir download
[root@12 ~]# cd download/
[root@12 download]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz
[root@12 download]# tar -zxvf redis-5.0.3.tar.gz
# 编译安装
[root@12 download]# cd redis-5.0.3
[root@12 redis-5.0.3]# make
[root@12 redis-5.0.3]# make install PREFIX=/usr/local/redis
配置redis.conf
# 从redis源码目录复制redis.conf到redis目录
[root@12 redis-5.0.3]# cd /usr/local/redis/bin/
[root@12 bin]# cp /root/download/redis-5.0.3/redis.conf /usr/local/redis/bin/redis.conf
[root@12 bin]# vim /usr/local/redis/bin/redis.conf
修改redis.conf中的以下内容:
# 1.禁止redis高危命令
rename-command CONFIG ""
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""
# 2.修改redis默认端口号
port 16970
# 3.打开保护模式,添加密码
protected-mode yes
requirepass xxxxxxx
# 4.开启守护进程
daemonize yes
# 5.暂时将监听ip开放,后期改回127.0.0.1
bind 0.0.0.0
# 6.修改redis目录
dir /home/redisuser/redis
# 7.修改pid文件的位置
pidfile /home/redisuser/run/redis.pid
为redis创建用户,并修改权限
# 创建用户组
[root@12 bin]# groupadd redis
# 创建用户redisuser并加入redis组中
[root@12 bin]# useradd redisuser -g redis
# 锁定用户,禁止远程登录
[root@12 bin]# usermod -L redisuser
# 将redis配置文件移入redisuser家目录中
[root@12 bin]# cp -rf /usr/local/redis/bin/redis.conf /home/redisuser/redis.conf
# 创建所需目录
[root@12 bin]# mkdir -p /home/redisuser/run
[root@12 bin]# mkdir -p /home/redisuser/redis
# 给redis目录修改权限
[root@12 bin]# chown -R redisuser:redis /home/redisuser
[root@12 bin]# chown -R redisuser:redis /user/local/redis
设置开机启动
# 添加开机启动服务
[root@12 bin]# vim /etc/systemd/system/redis.service
粘贴以下内容:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /home/redisuser/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@12 bin]# systemctl daemon-reload
# 开启redis服务
[root@12 bin]# systemctl start redis.service
# 设置开机启动
[root@12 bin]# systemctl enable redis.service
检查防火墙状态,开启redis对应端口
# 查看防火墙状态
[root@12 bin]# systemctl status firewalld
# 开启防火墙
[root@12 bin]# systemctl start firewalld
# 开放16970端口
[root@12 bin]# firewall-cmd --add-port=16970/tcp --permanent
创建软连接,添加别名
# 创建软连接
[root@12 bin]# ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis
# 添加别名(--raw 防止中文乱码)
[root@12 bin]# vi ~/.bashrc
添加如下内容:
alias redis='redis --raw'
# 使.bashrc生效
[root@12 bin]# source ~/.bashrc
# 检查是否生效
[root@12 bin]# redis -p 16970
127.0.0.1:16970> # 表示生效