凉风有信,秋月无边
亏我思娇的情绪、好比度日如年

liunx宝塔面板添加shell 脚本通过nginx日志封访问频率过高的IP

文章摘要

这篇文章主要介绍了在宝塔面板中通过编写shell脚本来封堵访问频率过高的IP,以应对网站遭受的DDoS攻击等安全威胁。文章详细讲解了如何在宝塔面板的计划任务中添加脚本,以及如何设置脚本的执行时间。具体步骤包括: 1. **添加shell脚本**:通过宝塔面板的计划任务功能,编写代码来过滤访问日志,统计高访问IP,并通过IPset封堵这些IP。 2. **设置执行时间**:可以手动设置脚本每天1点30分执行,或者根据需要调整执行周期。 3. **注意事项**:在编写脚本前需仔细检查,确保脚本能够正常运行,避免因错误导致封堵失败。 文章强调,使用简单的shell脚本即可有效解决部分网络攻击问题,适合个人维护网站的参考。

额,这篇文章是bt(宝塔)面板来写的文章,其他的程序如果是wdcp管理面板也有添加shell脚本的功能,大鸟自己用的是bt(宝塔)面板,所以说说如何添加shell 脚本通过nginx日志封访问频率过高的IP,就是你的网站被攻击的一些简单的应对措施,当然了,这些网上也有很多其他的相类似的教程,大鸟这里就是整合到bt(宝塔)面板来说而已。

bt(宝塔)面板用起来方便点,面板管理里面刚好有一个添加shell脚本的功能,可以定时执行一些数据备份啊等等一些常见功能,下面来看下!

第一、打开宝塔管理面板点击计划任务

bt(宝塔)面板添加shell 脚本通过nginx日志封访问频率过高的IP

大鸟已经标注了红框,大家可以很清楚的看到,就是这个地方添加一些任务啊,如果需要可以仔细看看。

第二、添加shell脚本来封闭访问过高的ip

#/bin/bash#日志文件路径logfile=/usr/local/tengine/logs
last_minutes=1#开始时间start_time=`date -d"$last_minutes minutes ago" +"%H:%M:%S"`echo $start_time#结束时间stop_time=`date +"%H:%M:%S"`echo $stop_time#过滤出单位之间内的日志并统计最高ip数tac $logfile/access.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($4,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>200)print $2}'`# 单位时间[1分钟]内单ip访问次数超过200次的ip通过ipset封锁for line in $ipdoecho $line >> $logfile/black.log
ipset add blacklist $linedone

 

第三、设置shell脚本的执行时间

我们添加好了脚本需要设置在服务器中的执行时间,来看看如何设置

bt(宝塔)面板添加shell 脚本通过nginx日志封访问频率过高的IP
bt(宝塔)面板添加shell 脚本通过nginx日志封访问频率过高的IP

大鸟设置的是每天1点30分开始执行这个脚本程序来封掉访问过高的ip,如果需要修改执行时间,可以自己调整,bt(宝塔)面板给出了很多时间设置。

总结、输入任务名称,选择执行周期,输入执行的脚本内容。

注意事项: 输入脚本内容前请检查脚本内容,确保脚本的正常执行,否则将会导致,计划任务执行后,脚本执行错误。无法正常执行。

过程就是这样,其实也是很简单,只需要一段shell代码就可以解决很多问题。大鸟对于这些也只是懂的皮毛,只是把自己维护网站的一点心得分享给大家!

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《liunx宝塔面板添加shell 脚本通过nginx日志封访问频率过高的IP》
文章链接:https://www.1004619.com/biji/20230801150.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫