先日から公開しているサーバに対してのアクセスが気になって仕方がないので、確認する作業を自動化してしまおおうと考えた。
いっその事、アクセスが多い場合、メール送信するか、何らかのお知らせを送るようにすると、即時に対応出来るようになるしね。
とりあえず、Linuxは便利なAccess-logが存在するので、それを簡単に確認できるように、コマンドを備忘録として残しておくことにする。
ログインattack確認の「auth.log」
ログイン認証のログが書き込まれる「auth.log」はデフォルトで1週間に1回ログローテートされる。
海外からのアタックを受けると、この容量が半端なく肥大化してくるので、アクセスの多いIPアドレスなどを調査して、ブロックするようにすれば
ログの肥大化も、アクセスのボリュームに応じてかかるサーバー負荷を回避することができる。
まずは、auth.logのカラムフォーマットの確認
月 / 日 / 時分秒 / OS / type / message
さらにmessage内に"rhost=***"にIPアドレスが入るようなので、この値を一覧で取得します。
$ awk '{if($0~/rhost=/){split($0,s1,"rhost=");split(s1[2],s2," ");print s2[1];}}' /var/log/auth.log | sort | uniq -c | sort -k1 -n
簡単に解説すると、awkコマンドで、auth.logファイル内の"rhost="を含む行のみを処理します。
行全体を"rhost="でsplitして、その後方の文字列を" "で分解して、アドレス部分だけを取得します。
結果は以下のようなアクセス履歴が取れます。(※サンプルです。)
10 111.222.333.444
123 test.example.com
2346 hoge.example.com
...
見てわかりますが、桁違いのアクセスが確認できます。
これで問題のアドレスが見つけやすくなります。
対象のモノをすぐにでも、ブロックしておきましょう。
とりあえず、auth.logだけの操作でしたが、他のログ・ファイルも同様に調査して、サーバーの健康状態を保つようにしましょう。
0 件のコメント:
コメントを投稿