网站被人恶意刷流量和攻击,Nginx限流和防火墙规则挡一下

Nginx limit_req限流、fail2ban封IP、UA和Referer过滤、Cloudflare免费防护
发布于
6

小站有时候会被莫名其妙的大量请求刷爆。可能是爬虫、可能是有人扫漏洞。Nginx 自带 limit_req 和 fail2ban 配合能挡住大部分。

服务器用的雨云,地址 rain.jiyueip.com,优惠码 admin01 五折。

Nginx limit_req 限流

http {
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;

    server {
        location / {
            limit_req zone=mylimit burst=20 nodelay;
        }
    }
}

rate=10r/s 每秒最多 10 个请求。burst=20 短时间内超额可以排队 20 个。超额返回 503。正常用户感觉不到,刷子直接被拦截。

fail2ban 封恶意 IP

装好之后在 /etc/fail2ban/jail.local 里加:

[nginx-http-auth]
enabled = true
maxretry = 5
bantime = 3600

[nginx-botsearch]
enabled = true
maxretry = 3
bantime = 3600

多次触发规则的 IP 自动封禁一段时间。

UA 和 Referer 过滤

一些爬虫靠 User-Agent 可以识别。Nginx 里直接拒绝常见的扫描工具 UA 和异常的 Referer。还有防止盗链保护图片资源被别的网站直接引用消耗你的带宽。

Cloudflare 免费 CDN 自带 DDoS 防护和 WAF 防火墙。套一层 Cloudflare 之后服务器 IP 不暴露,攻击全打在 CDN 上。

这几样配好之后被刷的概率低很多。雨云 rain.jiyueip.com,优惠码 admin01 五折。

本文由作者原创/授权发布于极跃圈(jiyueip.com),未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 / 600
0 讨论
热门最新
总结
暂无总结

暂无数据