Nginx 禁止猜测路径上传恶意代码
Nginx 禁止猜测路径上传恶意代码 #需要nginx server字段中添加include blockip.conf 文件路径。 然后将其脚本放到crond计划中 |
1 #!/usr/bin/bash 2 LOG_DIR=/usr/local/nginx/logs 3 LOG_NAME=access.log 4 DEFINE=20 5 BLOCK_IP=/tmp/block_nginx.txt 6 INITIALIZE=$BLOCK_IP 7 WHITE_IP= 8 NGX_PID=/usr/local/nginx/logs/nginx_pid 9 NGX_BLOCK_CONF=/usr/local/nginx/conf/blockip.conf 10 NGX_COM=/usr/local/nginx/sbin/nginx 11 cd $LOG_DIR 12 grep -i -E -e "POST" -e "put" $LOG_NAME | grep "404" | awk '{print $1}' | sort -n | uniq -c | sort -nr | awk '{print $2"="$1}' > $BLOCK_IP 13 for i in $WHITE_IP ;do 14 15 sed -i '/$i/d' $BLOCK_IP 16 done 17 for i in `cat $BLOCK_IP` ;do 18 ip=`echo $i |/usr/bin/awk -F"=" '{print $1}'` 19 number=`echo $i | awk -F'=' '{print $2}'` 20 if [ $number -ge $DEFINE ]; then 21 grep $i $NGX_BLOCK_CONF &> /dev/null 22 fi 23 if [ $? -gt 0 ]; then 24 echo "deny $ip;" >> $NGX_BLOCK_CONF 25 fi 26 done 27 $($NGX_COM -s reload)