解决方法:
登录到跑青龙面板容器的宿主机:
docker exec -it qinglong ql resetlet
这样就可以重新登陆了。
重点来了
彻底解决:
要解决,需要彻底搞清楚导致的原因。但凡不是小白,都知道这是因为有人在不停的尝试我们密码导致的。
先说说危害性,一般我们跑“青龙面板”都是为了挂机签到,领资源,所以这个青龙面板里就包含了我们挂机平台的账号token,有了这个就能任意登陆我们的账号,并操作,青龙其实就是利用的这个原理,只是加了很多第三方脚本。
这里提供两个解决思路:
方案一
使用青龙推荐的二次验证,每次登陆的时候需要用手机app验证一次,但是有个缺点,如果别人继续尝试密码,还是会导致登陆锁定时间的出现
方案二
写脚本,将尝试登陆的ip的密码加入到系统防火墙的黑名单。
1.编写脚本
[root@centos8 script]# pwd
/usr/local/script
[root@centos8 script]# cat docker_black_IP_in_firewall.sh
#!/bin/bash
BADIP=$(docker exec qinglong tail -1000 /var/lib/nginx/logs/access.log |awk '{ip[$1]++}END{for(i in ip){print i,ip[i]}}'|awk '$2>5{print $1}')
PUTINIP=$(firewall-cmd --list-rich |awk -F"\"" '{print $4}')
for i in ${BADIP}
do
echo ${PUTINIP} > 3.txt
grep $i 3.txt
if [ $? -ne 0 ];then
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=${i} drop" > /dev/null
fi
rm -rf 3.txt >/dev/null
done
firewall-cmd --reload > /dev/null
[root@centos8 script]#chmod +x /usr/local/script/docker_black_IP_in_firewall.sh
2.将脚本
添加到任务计划中周期执行
[root@centos8 script]# crontab -e
*/5 * * * * /usr/bin/sh /usr/local/script/docker_black_IP_in_firewall.sh
:wq 保存
注意,这个也有缺陷,就是如果爆破密码的人用的肉鸡是跟你常登陆的ip一致时,会导致你自己也无法访问。(比如你邻居就偷偷的爆破你服务器,但是概率很低)。所以用哪个方案自己选择,第二种方式直接是在宿主机的层面禁止ip,如果一旦出现我说的情况,只能通过云后台登陆去删除ip了。