$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




[应用&技术] 如何利用Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS+恶意访问+采集器)

通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx
( ^5 ~& R2 @" o  D脚本如下:
' r- J* `, B7 P5 T0 K  N#!/bin/sh
; X' }, b* \% b1 f$ S8 {nginx_home = /Data/app_1/nginx
2 M$ B" S4 Y! G# E# tlog_path = /Data/logs* c# L9 H8 x9 d3 ?) {2 z
/usr/bin/tail -n50000 $log_path/access.log \
& r; U- T6 d1 h|awk ‘$8 ~/aspx/{print $2,$13}’ \  g. J, v) o4 p9 v% T2 }5 O
|grep -i -v -E “google|yahoo|baidu|msnbot|FeedSky|sogou” \. A8 x; i' Y4 e7 T" v
|awk ‘{print $1}’|sort|uniq -c |sort -rn \: p) W$ i  }- U( p
|awk ‘{if($1>150)print “deny “$2″;”}’> $nginx_home/conf/vhosts/blockip.conf. l( w% W; a. [: z& t1 m1 p
/bin/kill -HUP `cat $nginx_home/nginx.pid`
0 ^$ w- D  e! Y! c也可以通过分析nginx日志过滤出频繁访问IP,直接用iptables屏蔽这个IP,就用不着重启nginx了,并且屏蔽效果更好。' w8 q  ?7 q/ h  b
单个IP的命令是, Z& v4 t2 I6 t# p8 s  S+ y
iptables -I INPUT -s 124.115.0.199 -j DROP  f) J* p5 E# f8 A6 c9 u
封IP段的命令是
  t: u/ `% ]0 g" P  `/ fiptables -I INPUT -s 124.115.0.0/16 -j DROP
# d8 `& \& {3 O& g0 d$ K封整个段的命令是& V5 ?! A: i7 W7 A% ?$ j$ b
iptables -I INPUT -s 194.42.0.0/8 -j DROP
" ]$ F5 Z( P9 h封几个段的命令是$ j* K5 g1 G8 M  x& n
iptables -I INPUT -s 61.37.80.0/24 -j DROP2 x1 a, _; U7 o: q( I2 m% y" ?: s/ H5 k
iptables -I INPUT -s 61.37.81.0/24 -j DROP
3 h) o% k% p5 \9 Z5 Y8 m$ P, E刚才不小心搞的自己都连不上了-_-!!!7 g- [' N; G3 }' Q& v6 i/ x1 e7 m
iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP1 }  D4 D3 w' q: E
以后用这种只封80端口就行了,不会出问题! * u; j6 H: u: U8 B. K( k* G# }
iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP7 d9 N  s  v' V# a- N. o' a
iptables -I INPUT -s 61.37.81.0/24 -j DROP
' X5 P  x7 m/ p解封
- q7 H# H" P1 ?+ F! O: jiptables -F
% C1 L4 e. \* }3 k5 Z  n清空6 h; w9 b$ F0 }& U$ t8 `6 }
iptables -D INPUT 数字




返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全