Nginx封禁恶意IP

本文介绍了如何使用Nginx封禁恶意IP,包括在Linux服务器和Nginx层面设置IP黑名单,以及通过编写shell脚本和利用crontab实现自动化封禁策略,以应对TCP洪水攻击、注入攻击和DDoS等威胁。
摘要由CSDN通过智能技术生成

网络攻击时有发生,

TCP洪水攻击、注入攻击、DOS等
比较难防的有DDOS等
数据安全,防止对手爬虫恶意爬取,封禁IP

一般就是封禁ip

linux server的层面封IP:iptables

nginx的层面封IP ,方式多种 (但 req还是会打进来, 让nginx 返回 403, 占用资源)

Nginx作为网关,可以有效的封禁ip
单独网站屏蔽IP的方法,把include xxx; 放到网址对应的在server{}语句块,虚拟主机
所有网站屏蔽IP的方法,把include xxx; 放到http {}语句块。

nginx配置如下:

http{
# …
include blacklist.conf;
}

location / {
proxy_pass http://lbs;
proxy_redirect default;
}


#blacklist.conf目录下文件内容
deny 192.168.159.2;
deny 192.168.159.32;
./nginx -s reload #重新加载配置,不中断服务

拓展-自动化封禁思路

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

接下来后面就是关于实际真实云主机(基于宝塔面板的环境)编写的shell脚本
blacklist.sh

(之前所写的脚本存在问题,现在已重新修改)
#!/bin/bash
Access_File=/www/wwwlogs/qjuke.com.log
Info_File=/www/wwwlogs/ddos_check.log
Blacklist=/www/server/nginx/conf/blacklist.conf

#从日志上获取短时间内的访问量
awk ‘{hotel[$1]++}END{for(pol in hotel)print pol,hotel[pol]}’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值