CentOSなど各種ログから検索してアクセスの多いIPを抜き出す

大量の不正なログを吐くIPを抜き出したり、その他IP抜き出したい時に。

例 maillogで20回以上FAILEDを繰り返したIPを抽出
cat /var/log/maillog  | grep 'FAILED' | egrep -o -e '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sed -e 's/^\(.*\)$/\1/g' | sort | uniq -c | awk '$1 > 20 {print $2}'
上記1行で使用

/var/log/maillog  取得したいログに適宜変更
grep ‘FAILED’ を適宜変更
$1 > 20 数字を適宜変更

正規表現がざっとしてるので、IPの発信国など正当性を検証したあと
不正と思われた場合、iptables、firewalld、hosts.denyにて手動BANで使う感じ。

You might also like