麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Nginx > 正文

nginx限制IP惡意調用短信接口處理方法

2024-08-30 12:29:39
字體:
來源:轉載
供稿:網友

真實案例:

查看nginx日志,發現別有用心的人惡意調用API接口刷短信:

30966487 115.213.229.38 "-" [05/Jun/2018:14:37:29 +0800] 0.003 xxxxxx.com "POST /xxx/sendCheckCode HTTP/1.1" 401 200 46 xx.xx.xx.xx:0000 0.003 200 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" "https://xxxxxx/sendCheckCode"30963985 60.181.111.140 "-" [05/Jun/2018:14:37:29 +0800] 0.004 xxxxxx.com "POST /xxx/sendCheckCode HTTP/1.1" 401 200 46 xx.xx.xx.xx:0000 0.004 200 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" "https://xxxxxx/sendCheckCode"30959954 220.190.18.25 "-" [05/Jun/2018:14:37:29 +0800] 0.003 xxxxxx.com "POST /xxx/sendCheckCode HTTP/1.1" 401 200 46 xx.xx.xx.xx:0000 0.003 200 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" https://xxxxxx/sendCheckCode

思考了幾種方案,最終考慮使用ip黑名單的方式:

處理方法:

一、nginx黑名單方式:

1、過濾日志訪問API接口的IP,統計每10分鐘調用超過100次的IP,直接丟進nginx的訪問黑名單

2、具體步驟:

編寫shell腳本

vim /shell/nginx_cutaccesslog.sh#!/bin/bashlog_path=/xxx/nginx/logsdate=`date -d "10 min ago" +%Y%m%d-%H:%M:%S`nginxpid=`cat ${log_path}/nginx.pid`cd ${log_path}#過濾access.log中正常訪問API接口并在10分鐘(下面是日志切割,再做個定時任務每10分鐘執行一次,就可以實現了)內訪問量最高的30個IP,取值如果此IP訪問量大于100次,則把此IP放入黑名單cat access.log | grep sendCheckCode | grep -v 403 | awk '{print $2}'|sort|uniq -c | sort -k1 -n | tail -30 | awk '{if($1>100) print "deny "$2";"}' > ../conf/denyip.conf#日志切割,做定時任務,每10分鐘執行一次mv ${log_path}/access.log ${log_path}/accesslog.bak/access_${date}.log../sbin/nginx -s reload

可自己定義時間間隔和訪問量,也可取消篩選訪問量最高的30個,直接取值每10分鐘訪問接口超過100次的

其中:"grep -v 403" 是把已經禁止訪問的IP給過濾掉,只篩選正常訪問的

3、修改nginx.conf

在http模塊加入:

include       denyip.conf;

重新加載nginx生效。

4、添加計劃任務:

*/10 * * * * /bin/bash /shell/nginx_cutaccesslog.sh > /dev/null 2>&1

5、驗證:

[root@xxx logs]# ll accesslog.bak/-rw-r--r-- 1 root root 2663901 Jun 5 15:10 access_20180605-15:00:01.log-rw-r--r-- 1 root root 13696947 Jun 5 15:20 access_20180605-15:10:01.log-rw-r--r-- 1 root root 13265509 Jun 5 15:30 access_20180605-15:20:01.log-rw-r--r-- 1 root root 13846297 Jun 5 15:40 access_20180605-15:30:01.log[root@xxx logs]# cat ../conf/denyip.conf ……………………deny 112.12.137.28;deny 183.167.237.229;deny 111.41.43.58;deny 115.217.117.159;deny 219.133.100.133;deny 171.221.254.115;deny 60.184.131.6;……………………

再查看已經禁用IP的訪問日志,則會返回403錯誤:

[root@xxx logs]# tail -f access.log | grep "60.184.131.6"31268622 60.184.131.6 "-" [05/Jun/2018:15:47:34 +0800] 0.000 xxxxxx.com "POST /xxxxxx/sendCheckCode HTTP/1.1" 377 403 168 - - - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" "https://xxxxxx/sendCheckCode"31268622 60.184.131.6 "-" [05/Jun/2018:15:47:35 +0800] 0.000 xxxxxx.com "POST /xxxxxx/sendCheckCode HTTP/1.1" 377 403 168 - - - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" "https://xxxxxx/sendCheckCode"31268622 60.184.131.6 "-" [05/Jun/2018:15:47:35 +0800] 0.000 xxxxxx.com "POST /xxxxxx/sendCheckCode HTTP/1.1" 377 403 168 - - - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" https://xxxxxx/sendCheckCode

二、限制IP請求數:

處理這種情況的方法還有一種是限制單 IP 單位時間的請求數,以及單 IP 的并發連接數

此方法沒有實際運用,因為感覺這種方法會誤殺正常的訪問用戶

寫一下此方法的大概配置,http模塊加入:

http { limit_req_zone $binary_remote_addr zone=one:10m rate=8r/s; server {  location /search/ {   limit_req zone=one burst=5;  }

如何估算 limit_req_zone size:

一兆字節區域可以保持大約1萬6064字節的狀態。

那么 10M 就可以存儲 16 萬的 IP 統計信息, 這個對普通應用足夠了,16 萬每秒的 UV,已經超級厲害了。

如果 size 的大小如果設置小了, 例如設置成 1M,那么當一秒內的請求 IP 數超過 16000 的時候,超出的 IP 對應的用戶看到的均為 503 Service Temporarily Unavailable 頁面了。參考, 漏桶算法 Leaky Bucket。 同時,rate 的單位用 r/s 非常合適,如果換成按天,按小時計數,10M 的內存肯定不夠用。

如何估算 limit_req_zone rate:

首先需要知道的是,普通瀏覽器的同時并發數量。按照 Dropbox 技術博客里所談到的,目前主流瀏覽器限制 AJAX 對同一個子域名的并發連接數是6個。IE 6,IE 7 是兩個。

大多數瀏覽器每個主機名都有6個并發連接的限制。

總結

以上所述是小編給大家介紹的nginx限制IP惡意調用短信接口處理方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲国产精品二区 | 激情久久精品 | 黄色aaa视频 | xnxx18日本| 免费观看国产精品视频 | 欧美人与性禽动交精品 | 男女羞羞视频在线观看免费 | 九九热九九热 | 爽毛片| 国产精品久久久久久久不卡 | av电影在线观看网址 | 中文在线观看免费视频 | 49vvv| 成人区一区二区三区 | 黄色av免费 | 国产一精品一av一免费爽爽 | 国产98色在线 | 亚洲成人福利在线观看 | 国产99久久精品一区二区300 | 4399一级成人毛片 | 一级在线 | 最新91在线视频 | 国内性爱视频 | 内地av在线 | 奶子吧naiziba.cc免费午夜片在线观看 | 一区国产视频 | 懂色av懂色aⅴ精彩av | 国产精品爱久久久久久久 | 国产三级在线视频观看 | 久久久久97国产精 | 黄色视品 | hd极品free性xxx护士人 | 精品一区二区三区免费看 | 久久久久久久国产a∨ | 黄色的视频免费看 | 色羞羞| 欧美一级小视频 | 青青草成人免费视频在线 | 一区二区三区四区高清视频 | 久久精品一区视频 | 强伦女教师视频 |