Redian新闻
>
个人网站 总被攻击?写个自动封禁 IP 的脚本给你!

个人网站 总被攻击?写个自动封禁 IP 的脚本给你!

公众号新闻

来源:blog.csdn.net/qq_38925100/article/details/123742463

1.在ngnix的conf目录下创建一个blockip.conf文件

2.里面放需要封禁的IP,格式如下

deny 1.2.3.4;

3.在ngnix的HTTP的配置中添加如下内容

include blockips.conf;

图片

4.重启 ngnix

/usr/local/nginx/sbin/nginx -s reload

5.然后你就会看到IP被封禁了,你会喜提403

图片

小思考:如何实现使用ngnix自动封禁ip的功能

  1. AWK统计access.log,记录每分钟访问超过60次的ip,然后配合nginx进行封禁
  2. 编写shell脚本
  3. crontab定时跑脚本

好了上面操作步骤列出来了,那我们先来实现第一个吧

图片

操作一: AWK统计access.log,记录每分钟访问超过60次的ip

awk '{print $1}' access.log | sort | uniq -cd | awk '{if($1>60)print $0}'
  1. awk '{print $1}' access.log  取出access.log的第一列即为ip。
  2. sort | uniq -cd 去重和排序
  3. awk '{if($1>60)print $0}' 判断重复的数量是否超过60个,超过60个就展示出来

操作二: 编写shell脚本,实现整体功能(写了注释代码)

#不能把别人IP一直封着吧,这里就清除掉了
echo "" > /usr/local/nginx/conf/blockip.conf

#前面最开始编写的统计数据功能
ip_list=$(awk '{print $1}' access.log | sort | uniq -cd | awk '{if($1>60)print $0}')

#判断这个变量是否为空
if test -z "$ip_list"
then
        #为空写入 11.log中,并重新启动ngnix
        echo "为空"  >> /usr/local/nginx/logs/11.log

        /usr/local/nginx/sbin/nginx -s reload

else
        #如果不为空 前面加上 deny格式和ip写入blockip.conf中
        echo "deny" $ip_list > /usr/local/nginx/conf/blockip.conf
    
        #因为前面携带了行数,所有我们需要去除掉前面的行数,写入后在读取一次
        ip_list2=$(awk '{print $3}' /usr/local/nginx/conf/blockip.conf)
        
        #最后再把读取出来的值,在次写入到blockip.conf中
        echo "deny" $ip_list2";"> /usr/local/nginx/conf/blockip.conf

        #重启ngnix
        /usr/local/nginx/sbin/nginx -s reload
        #清空之前的日志,从最新的开始截取
        echo "" > /usr/local/nginx/logs/access.log

fi

操作三: 使用crontab定时,来实现访问每分钟超过60的

这个crontab 就不多讲的,不会的可以参考:

  • https://blog.csdn.net/qq_38925100/article/details/123043112

直接实操吧:

crontab -e 
* * * * * cd /usr/local/nginx/logs/ && sh ip_test.sh  每一分钟运行一次
systemctl restart crond.service 重启一下配置既可


END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

刘遄老师QQ:5604241

Linux技术交流群:3762708

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
看这样的直播很享受——一个新兴的百万富翁诞生了!试物说vol.632| 爱上洗手,从买入一个自动起泡机开始李森科主义复刻:央媒采访过的专家,不准攻击?比价低过拼DD!这个自动感应泡沫洗手机,让我天天都盼着洗手你的文献综述还是记流水账?写不出来综述怎么办 ?成人网站女星专挑已婚男聊天, 一次$1000!妻子们却纷纷点赞......如何防范算法漏洞对 AI 系统带来的恶意攻击?中国应出手帮俄?写在大战之前欧洲15船游+自由行-6 Valencia-瓦伦西亚向“阳”而生?写在感染峰值到来之前张文宏钟南山被攻击,官媒表态为什么喜欢熬夜的人,最擅长自我攻击?强制送精神病患就医效果甚微,救助者反被攻击,新规被众人质疑天花板的高度决定于组织度拜登妻子与哈里斯丈夫当众“唇吻”引热议!荷兰女王储花枝招展却因太胖被攻击!LV被攻击ChatGPT教你写AI包教包会,7段对话写个识别模型,准确度最高达99.7%“全球第二成人网站”改行做教育?玩偶姐姐们要失业了……毛泽东说错误常常是正确的先导老板让我写个营销方案,对标疯狂星期四从阿里跳槽来的工程师,写个Controller都这么优雅!10 个杀手级的 Python 自动化脚本!恋爱不愿AA就被人身攻击??谢谢有被离谱到...LV被攻击,用这三个颜色都不行了?小红书封禁超1万个违规售卖防疫药品账号;知乎永久封禁“1888万彩礼”热帖相关作者账号 | 一周简讯前期是老板给你发工资,中期是能力给你发工资,后期是品德给你发工资想要新年新气象?这里有一份过年“禧”指南送给你!给你最特别的新年仪式感,赶紧收藏!乌克兰战争可能扩大化的两个重要迹象:美欧主战坦克或登场,克里米亚面临被攻击危险日本给入境中国人发红牌?日商家还在期盼春节中国游客到来!成人网站女星专跟已婚男聊天,1小时收$1000!妻子们却纷纷点赞中文文本生成发展到哪一步了?写方案、写广告的AI全能工具已上线Ngnix IP封禁以及实现自动封禁IP“出去!”奥克兰华人家长买网红冰淇淋,不料被店员斥责!孩子当场吓哭!店家:“是我们被攻击了!”波士顿North Station终于装了个自动检票口,结果被骂惨了...
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。