redis预防攻击配置
redis预防攻击配醅呓择锗置
一:入侵现象
•Redis可能被执行过flushall命令
•Redis内建了名为crackit的key
•Redis的conf文件中dir参数指向了/root/.ssh
•/root/.ssh/authorized_keys被覆盖或者包含Redis相关的内容
二:修复办法
•禁止公网开放Redis端口,可以在防火墙上禁用6379 Redis的端口
•检查authorized_keys是否非法
•增加Redis密码验证
1:禁止公网开放Redis端口,可在防火墙上禁用 6379 Redis端口
检查IPTABLES里面配置是否包含6379端口通过命令(如果有则去掉)
用此命令查看防火墙状态:service iptables status
如果有则去掉,方法如下(方法暂时未验证,提前备份此文件:/opt/ams/software/ams-9.4.20-307980/lib/platform/bin/portdescriptor.xml):
通过iptables -L -n --line-number可以显示规则和相对应的编号num target prot opt source destination1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:33062 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:213 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
根据端口6379找到规则对应的是编号
然后就可以进行删除了iptables -D INPUT 2删除INPUT链编号为2的规则。
如删除后出现问题,可进行如下操作:
用备份的文件覆盖掉/opt/ams/software/ams-9.4.20-307980/lib/platform/bin/portdescriptor.xml
然后用root账号执行:
/opt/ams/software/ams-9.4.20-307980/bin/ams_updatefirewall
然后重启iptables:
service iptablesrestart
2:检查authorized_keys是否非法
如果找到/root/.ssh/authorized_keys文件,先删除此文件
到/etc/ssh/替换正常的ssh_config文件,以下文件问濮阳的ssh_config文件。
/>
重新启动SSH服务
servicesshd restart
3:增加 Redis 密码验证
首先停止REDIS服务
打开redis.conf配置文件
/etc/redis/6379.conf
找到# requirepassfoobared去掉前面的#号,然后将foobared改为自己设定的密码(统一修改为sanss123);最后保存。这样redis密码就设置好了!
/>
重启启动redis服务 service redis stop
service redis start
这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许
redis-cli -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> keys *
(error) NOAUTH Authentication required
redis 127.0.0.1:6379> select 1
(error) NOAUTH Authentication required
尝试用密码登录并执行具体的命令看到可以成功执行
redis-cli -h 127.0.0.1 -p 6379 -a sanss123
redis 127.0.0.1:6379> keys *
-p:端口号
-a:密码
4:修改conf文件
打开6379.conf文件
找到bind0.0.0.0前面加上#(禁止全网访问)