Linuxのアクセスログを確認するサンプルコマンド

2017年9月23日

Linux Tips テクノロジー

先日から公開しているサーバに対してのアクセスが気になって仕方がないので、確認する作業を自動化してしまおおうと考えた。 いっその事、アクセスが多い場合、メール送信するか、何らかのお知らせを送るようにすると、即時に対応出来るようになるしね。 とりあえず、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だけの操作でしたが、他のログ・ファイルも同様に調査して、サーバーの健康状態を保つようにしましょう。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。