linux宝塔拉黑ip,宝塔面板自动拉黑恶意IP到Cloudflare防火墙
下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。
宝塔面板免费版本足够用了,所以我们从来也不去折腾什么开新版本,当然了土豪可以购买专业版,但是对于屌丝来说,免费版真的是足够好用,如果我们动手能力稍微强一点,那么使用起来和专业版也是没有什么差别的,而且都是自己动手,这样对于提高自己的服务器水平还是很有帮助的。
关于 Cloudflare 也讲过不少了,不过今天还是要说的是它,如果我们的网站遭遇 CC 和 DDoS 攻击时,我们可以启用 Cloudflare 经典的 5 秒盾防攻击,如果把握不了攻击的频率的话,可以设置一个定时任务,当系统负载超过某一个值(一般来攻击会导致系统负载爆增),调用 Cloudflare API 启用 5 秒盾。
当然,如果我们是宝塔用户的话,那设置起来会更简单一点,但是当我们启用 Cloudflare CDN 时候,需要在 Nginx 中启用 Real IP 模块,然后利用脚本分析网站日志,从日志中搜集异常 IP,然后使用 Cloudflare API 批量将恶意 IP 添加到 Cloudflare 的防火墙当中。不过看这篇文章之前,我们需要了解下,如何启用 Real IP 模块。不过宝塔面板 6.9.0 默认是已经开启了 Real IP 模块,如图:
如果你的宝塔面板没有开启这个模块,可以按照上文就设置。这篇文章我们就说说如何利用 shell 脚本,自动拉黑恶意 IP 到 Cloudflare 防火墙,自动切换 5 秒盾防 CC 攻击。
一:定位恶意 IP
我们需要找到恶意 ip,可以利用脚本分析在一分钟单个 IP 访问的频率,超过一定的频率(一般来正常的访问,一分钟内应该不超过 60 次,你可以设置为更小),即认定为恶意 IP。宝塔面板的 shell 脚本如下:
#/bin/bash
#日志文件,如不是宝塔面板可以根据需要改成你自己的路径
logfile=/www/wwwlogs/
last_minutes=1
#开始时间1分钟之前(这里可以修改,如果要几分钟之内攻击次数多少次,这里可以自定义)
start_time= date +"%Y-%m-%d %H:%M:%S" -d '-1 minutes'
echo $start_time
#结束时间现在
stop_time=`date +"%Y-%m-%d %H:%M:%S"`
echo $stop_time
cur_date="`date +%Y-%m-%d`"
echo $cur_date
#过滤出单位之间内的日志并统计最高ip数,请替换为你的日志路径
tac $logfile/www.daniao.org.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($2,RSTART+14,21);if(t>=st && t<=et) {print $0}}' | awk '{print $1}' | sort | uniq -c | sort -nr > $logfile/log_ip_top10
ip_top=`cat $logfile/log_ip_top10 | head -1 | awk '{print $1}'`
ip=`cat $logfile/log_ip_top10 | awk '{if($1>2)print $2}'`
# 单位时间[1分钟]内单ip访问次数超过2次的ip记录入black.txt,这里为了测试设置了2,你需要改成其它的数字
for line in $ip
do
echo $line >> $logfile/black.txt
echo $line
# 这里还可以执行CF的API来提交数据到CF防火墙
done
二:计划任务
关于宝塔面板的计划任务如何设置,就不多说了,我们看看如何把上面的 ip 定位的脚本放在计划任务中。点击计划任务选择 Shell 脚本即可如图:
这个脚本,我们需要测试是否可用,我们设置的是每隔 3 分钟执行一次,所以我们可以自己手动不停刷新自己的网站或者自己的测试站点即可。我们看看最终的效果,如图:
几乎无时无刻没有扫描的,所以还是很有必要做一个防御的。
三:添加 IP 到 CF 防火墙
使用以下代码就可以将恶意 IP 批量添加到 Cloudflare 的防火墙了,记得替换为你的 Cloudflare API。
#!/bin/bash
# Author: Zhys
# Date : 2018
# 填Cloudflare Email邮箱
CFEMAIL="daniao@gmail.com"
# 填Cloudflare API key
CFAPIKEY="xxxxxxxxxxxxxxxx"
# 填Cloudflare Zones ID 域名对应的ID
ZONESID="xxxxxxxxxxxxxxxxxxxx"
# /www/wwwlogs/black.txt存放恶意攻击的IP列表
# IP一行一个。
IPADDR=$(
# 循环提交 IPs 到 Cloudflare 防火墙黑名单
# 模式(mode)有 block,challenge,whitelist,js_challenge
for IPADDR in ${IPADDR[@]}; do
echo $IPADDR
curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$ZONESID/firewall/access_rules/rules"
-H "X-Auth-Email: $CFEMAIL"
-H "X-Auth-Key: $CFAPIKEY"
-H "Content-Type: application/json"
--data '{"mode":"block","configuration":{"target":"ip","value":"'$IPADDR'"},"notes":"CC Attatch"}'
done
# 删除 IPs 文件收拾干净
rm -rf /data/wwwlogs/black.txt
四:自动找出恶意 IP 并添加到防火墙
我们用宝塔面板当然是越省事越好,我们可以把定位 ip 和封锁 ip 到 CF 防火墙合并在一起。
#/bin/bash
#日志文件,你需要改成你自己的路径
logfile=/www/wwwlogs/
last_minutes=1
#开始时间1分钟之前(这里可以修改,这里为了测试设置了2,你需要改成其它的数字
for line in $ip
do
echo $line >> $logfile/black.txt
echo $line
# 这里还可以执行CF的API来提交数据到CF防火墙
done
# 填Cloudflare Email邮箱
CFEMAIL="xxx@xxx.com"
# 填Cloudflare API key
CFAPIKEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 填Cloudflare Zones ID 域名对应的ID
ZONESID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# /www/wwwlogs/black.txt存放恶意攻击的IP列表
# IP一行一个。
IPADDR=$(
# 循环提交 IPs 到 Cloudflare 防火墙黑名单
# 模式(mode)有 block,"notes":"CC Attatch"}'
done
# 删除 IPs 文件收拾干净
rm -rf /www/wwwlogs/black.txt
这里我们可以编辑在第二中编辑的计划任务的 Shell 脚本重新添加下即可。如果被猛烈的 CC 可以设置成每 1 分钟就执行一次,这里测试是设置成每 3 分钟执行一次脚本。自动添加恶意 IP 到 CloudFlare 防火墙的效果如下:
这样我们就实现了 CC 攻击临时救急的半自动流量清洗的功能。屏蔽成功的效果图如下:
这个错误页面提示,该网站所有者已经禁止了你的 ip 地址,额,总的来说效果还不错。
五:总结
如果这时候真有恶意攻击了,我们可以手动开启 5 秒盾脚本防 CC 攻击,这样就实现了一个遭受攻击从来实现流量清洗的功能。Cloudflare 真的是一个非常好用的防御 DDos 和 CC 攻击的工具,免费版本的 Cloudflare 结合 API 可以实现更加灵活的功能,对于普通的防御足够自己使用了。当然了,宝塔面板结合 Cloudflare 使用起来也更方便和更简单。如果你对 Cloudflare 的设在不是太熟悉,可以看看之前的文章。平时我们的域名虽然不用 Cloudflare 的解析服务,但是不妨在解析放在上面,如果遇到问题可以快速的切换过去。
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
linux宝塔拉黑ip,宝塔面板自动拉黑恶意IP到Cloudflare防火墙相关推荐
- Linux拉黑攻击IP,linux服务器如果被cc攻击怎么自动拉黑肉鸡IP(教程篇)
一.Shell 代码 #!/bin/bash#Author:ZhangGe#Desc:Auto Deny Black_IP Script.#Date:2014-11-05#取得参数$1为并发阈值,若留 ...
- Linux系统防CC攻击自动拉黑IP增强版Shell脚本
Linux系统防CC攻击自动拉黑IP增强版Shell脚本 文章目录 一.Shell代码 二.执行脚本 三.效果测试 四.附加说明 前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原 ...
- Linux系统防CC攻击自动拉黑IP增强版(Shell脚本)
这篇文章主要介绍了Linux系统防CC攻击自动拉黑IP增强版(Shell脚本),需要的朋友可以参考下 前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存 ...
- 宝塔linux面板ping网址找不到主机,云服务器安装宝塔面板后无法ping通ip地址问题的解决方法...
为什么云服务器搭建宝塔面板后,服务器ip地址就ping不通了?很多做网站的站长们,在买服务器之前都是怎么去测试IP呢,通常都是通过ping这个方式看看这个时间上,在就是去测试这个IP的节点好不好,那要 ...
- CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
CCKiller:Linux轻量级CC攻击防御工具,秒级检查.自动拉黑和释放 一.功能申明 二.功能介绍 三.工具安装 四.攻防测试 五.更多说明 文章目录 很久以前分享过一个CC攻击的防御脚本,写得 ...
- Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
一.功能申明 分享之前我必须先申明一下,众所周知,DDoS攻击指的是分布式拒绝服务.而CC攻击只是DDoS攻击的一种,本文所阐述的CC攻击,指的是单个IP达到我们设定好的阈值并发请求,而非海量IP的低 ...
- linux防黑工具,CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放 (网摘)...
功能说明 众所周知,DDoS 攻击指的是分布式拒绝服务.而 CC 攻击只是 DDoS 攻击的一种,本文所阐述的 CC 攻击,指的是单个 IP 达到我们设定好的阈值并发请求,而非海量 IP 的低并发攻击 ...
- 微信公众号 自动拉黑已经取关的用户
公众号是可以把用户加黑名单的,拉黑后用户就不会收到公众号的任何消息. 至于为什么要拉黑用户? 我自己的需求是防止被薅羊毛. 所以花了一点时间,自动拉黑已经取关的用户. 实现主要是基于公众号的API: ...
- Linux IP不为空 脚本,Linux系统防CC攻击自动拉黑IPShell脚本
加入到crontab计划任务执行的 脚本#!/bin/bash #Author:萧萧一风 #Desc:Auto Deny Black_IP Script. #Date:2019-9-28 #取得参数$ ...
最新文章
- path与classpath区别 path是Windows查找.exe文件的路径;classpath是jvm查找.class文件的路径
- lucene DocValues——没有看懂
- Blog_mini完整部署文档
- 批量删除txt文档内容命令_Linux@实用操作命令
- ubuntu11.10安装mysql+handlersocket
- 二分二题-P1678,P3902【二分,LIS】
- linux下的dns服务器
- STL之adjacent_difference
- 设计灵感|色彩叠加在海报设计中的妙用!
- 计算机网络高级技师,计算机网络管理员(高级技师)职业资格考核标准_new教案.doc...
- android从assets文件下面复制文件
- 怎样快速修改论文格式-使用人工智能技术助手
- C#窗体应用显示用户sa登录失败
- 使用table自带的deleteRow,insertRow方法实现表格内容滚动
- 3D车道线单目检测方法ONCE-3DLanes
- 基于STM32F103 HAL库 MB85RS128 驱动程序
- will not be managed by Spring
- curl wget 不验证证书进行https请求
- Scratch加减法
- Yii2之数据库迁移