Hugo博客公告弹窗

Fail2Ban对接cloudflare防火墙技巧

   
文章摘要
摘要小助理今天溜号啦……😜

我的大部分教程或者叫笔记,除了给自己看,考虑到其他朋友也会看到,本着简洁明白的原则,我基本上会制作一些快捷脚本,方便大家使用,本次脚本,我针对使用宝塔面板的朋友,当然,使用什么看个人情况,你可以更改我的脚本,已达到适合你的方式

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:

如何测试是否生效

  1. 打开脚本,选择第8项: 查看日志实时监控

  2. 假设你的网站是 https://baidu.com , 你就在后面加上一串不存在的字符, 例如: https://baidu.com/saddddx 这样返回的基本上就是404页面或者提示不存在,

  3. 观察终端的实时日志,你就会看到你的本地ip访问了一个不存在的页面,超过5次,将被拉进小黑屋一个小时,如果需要解除ip,选择第10个菜单,输入你本地的ip即可(不是服务器ip)

  4. 在cloudflare后台,打开站点,导航到 安全性事件 你就会看到被拉黑的ip

  5. 更多功能自行探索吧,很晚了,睡觉了..

  6. 最后,告诉你一个秘密: 使用https://www.itdog.cn/http/ 测速,多测几次,注意是把不存在的页面拿来测试,会把itdog的ip拉黑,效果显著! cf后台可以看到,

  7. 解除拉黑: 先选择菜单6:查看网站拦截记录 复制被拉黑的一长串ip,然后在回车,选择菜单10,粘贴ip即可.

clarity统计