nginx/apacheのログを分析して、攻撃IPをアクセス拒否する

attackip.sh

#!/bin/sh
########################################

nginx_home="/opt/nginx/conf"           #nginxの設定ディレクトリ
log_path="/data/logs/web_log/www_startnews24_com_access.log" #アクセスログのパス

########################################

tail -100 ${log_path} \
|grep -i -v -E “dnspod|google|yahoo|baidu|msnbot|FeedSky|sogo" \
|awk '{print $1}’ |sort |uniq -c|sort -nr|head \
|awk '{if($1>80)print “deny “$2″;"}’ > ${nginx_home}/safe_block_deny.conf

#重要なパラメータの説明
#tail -100 ${log_path} ログの中で最近の100行目の記録を読み取る
#|grep -i -v -E “dnspod|google|yahoo|baidu|msnbot|FeedSky|sogo" 検索エンジンのスパイダーを除く
#|awk '{print $1}’ |sort |uniq -c|sort -nr|head 重複したレコードを合併して、数量を計算する
#|awk '{if($1>80)print “deny “$2″;"}’ > ${nginx_home}/safe_block_deny.conf

#多于80行的IP将在nginx配置目录生成 Nginx deny 语法的配置文件给予调用。
#80行以上のIPはNginx denyファイルに調達し使用することを与える
#以上の変数は使う時に機能よって修正しましょう

Source

Posted by arkgame