我的大部分教程或者叫笔记,除了给自己看,考虑到其他朋友也会看到,本着简洁明白的原则,我基本上会制作一些快捷脚本,方便大家使用,本次脚本,我针对使用宝塔面板的朋友,当然,使用什么看个人情况,你可以更改我的脚本,已达到适合你的方式
fail2ban原理
Fail2ban通过监视日志文件,检测并阻止恶意登录尝试和攻击.
当Fail2ban检测到系统日志中的恶意行为模式时,它会自动阻止攻击者的IP地址,以保护系统安全。
安装fail2ban
Debian/Ubuntu安装
使用root用户
apt update -y && apt install -y fail2ban
CentOS安装
yum update -y
yum install -y epel-release
yum install -y fail2ban
yum install -y nano
启动
systemctl start fail2ban
开机自启
systemctl enable fail2ban
查看状态
systemctl status fail2ban
按键盘 q
退出
获取Cloudflare令牌
到cf后台右上角
我的个人资料,选择左侧API令牌,获取Global API Key
获取地址: https://dash.cloudflare.com/login
对接Cloudflare
以下脚本适用于宝塔面板建站的朋友
一键脚本
curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/fail2ban.sh && chmod +x fail2ban.sh && ./fail2ban.sh
国内机器
curl -sS -O https://gitee.com/dayu777/open_shell/raw/main/fail2ban-c.sh && chmod +x fail2ban-c.sh && ./fail2ban-c.sh
使用方法
选择 12 : 对接cloudflare防火墙
, 输入coudflare的登录账号,输入Global API Key
测试
注意要点1: 因为我们需要对接cloudflare,就必须开启cloudflare的cdn
,也就是把小云朵
打开.
注意要点2: 在cloudflare的后台, SSL/TLS模式改为 完全(严格)
或者 完全
区别: 完全(严格)
模式需要你的域名已经有了ssl证书, 如果还没有开启ssl,可以使用完全
模式
注意要点3: 打开宝塔面板,修改网站配置,如下图:
把 access_log /dev/null;
改成 access_log /www/wwwlogs/access.log;
然后重启nginx使其生效
开启ssl:
如何测试是否生效
打开脚本,选择第8项:
查看日志实时监控
假设你的网站是 https://baidu.com , 你就在后面加上一串不存在的字符, 例如: https://baidu.com/saddddx 这样返回的基本上就是404页面或者提示不存在,
观察终端的实时日志,你就会看到你的本地ip访问了一个不存在的页面,超过5次,将被拉进小黑屋一个小时,如果需要解除ip,选择第10个菜单,输入你本地的ip即可(不是服务器ip)
在cloudflare后台,打开站点,导航到
安全性
–事件
你就会看到被拉黑的ip更多功能自行探索吧,很晚了,睡觉了..
最后,告诉你一个秘密: 使用https://www.itdog.cn/http/ 测速,多测几次,注意是把不存在的页面拿来测试,会把itdog的ip拉黑,效果显著! cf后台可以看到,
解除拉黑: 先选择菜单6:
查看网站拦截记录
复制被拉黑的一长串ip,然后在回车,选择菜单10,粘贴ip即可.