nginx设置抵御千万级别的DDos攻击

春节之前公司某个站点的nignx记录日志异常多,这是不让人好好过年的节奏啊!

0.161 – IP:xxx.xxx.xxx.xxx – [01/Feb/2017:15:25:18 +0800] GET /index/server/p/176 HTTP/1.1 – 200 – Mozilla/5.0 (compatible; MSIE 9.0; qdesk 2.4.1272.203; Windows NT 6.1; WOW64; Trident/5.0)  – from:http://mydomain.com/index/server

0.120 – IP:xxx.xxx.xxx.xxx – [06/Feb/2017:00:00:05 +0800] GET /index/server/p/199 HTTP/1.1 – 200 – Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 – from:http://mydomain.com/index/server

异常的请求记录,这个http://mydomain.com/index/server/p/176请求的这个页面是分页,需要请求数据库虽然对服务器影响没有立马表现出现,但是不能不重视,万一哪天….    并且查看日志行数wc -l 请求记录在千万级别

解决思路:

1.攻击的IP不是固定,使用shell脚本判断IP然后加入iptables,这个容易误杀,且服务器节点都需要部署较麻烦。
2.使用nginx 的 deny 91.212.45.0/24,可以使用,但是也很麻烦,如果攻击者改变ip。
3.查看日志规律,从访问日志入手  

解决办法:

a.http_referer为空,则返回禁止访问;

if ($http_referer ~ ^$){
                        return 403;
                }

b.http_referer不是本站的来源则禁止访问:

if ($http_referer !~* mydomain) {
                        return 403;
                }

到过几天了,攻击者增加了http_referer,并且改变了agent
c.agent如果有wget、curl、qdesk等关键字就禁止访问

if ($http_user_agent ~* (wget|curl|qdesk) ) {
                        return 403;
                } 

整个nginx的设置:

#防止刷http://*.mydomain.com/index/server/p/*
location /index/server/p/ {
                if ($http_referer ~ ^$){
                        return 403;
                }
                if ($http_referer !~* mydomain) {
                        rewrite ^/(.*)$ http://127.0.0.1/ redirect;
                }
                if ($http_user_agent ~* (wget|curl|qdesk) ) {
                        return 403;
                }
        }

增加规则之后查看日志:

0.000 – IP:xxx.xxx.xxx.xxx – [10/Feb/2017:15:55:20 +0800] GET /index/server/p/180 HTTP/1.1 – 403 – Mozilla/5.0 (compatible; MSIE 9.0; qdesk 2.4.1272.203; Windows NT 6.1; WOW64; Trident/5.0) – www.mydomain.com – from:http://mydomain.com/index/server

世界安静了!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇