LoginSignup
8
8

More than 5 years have passed since last update.

mackerelで不正ログインの検知

Last updated at Posted at 2015-07-07

mackerelとfluentdを組み合わせると、ログの統計と見える化が比較的簡単に実現できる。
Secureログにログイン記録を付けているシステムは多いと思うが、せっかくなのでそれを見える化して定常的に監視できるようにしてみよう。

以下はtd-agentを使用しているものとしての例。

必要なfluent-pluginインストール

統計用のプラグインとmackerel用プラグインをインストールする。

$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-datacounter
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-mackerel

fluentd設定

以下は/etc/td-agent/config.dをincludeしているという想定。

$ cd /etc/td-agent/
$ sudo mkdir config.d
$ sudo vim config.d/mackerel-secure-check.conf

こんな感じで作る。
{{ }} の部分は変数のつもり。環境に合わせて設定してほしい。
「ログイン失敗」ではなく、「ログイン試行」を数えるためにパスワードフェイルを1回として数えている。

mackerel-secure-check.conf
<source>
  type tail
  format syslog
  path /var/log/secure
  tag log.secure
  pos_file /tmp/secure.pos
</source>


<match log.secure>
  type datacounter
  count_interval 60s
  count_key message
  output_per_tag yes
  pattern1 password_accepted ^Accepted password
  pattern2 password_failed ^Failed password
  pattern3 publickey_accepted ^Accepted publickey
  pattern4 publickey_failed ^Failed publickey
  tag_prefix count
</match>

<match count.log.secure>
  type mackerel
  api_key {{ mackerel-apikey }}
  hostid {{ mackerel-hostid }}
  metrics_name login.count.${out_key}
  out_keys password_accepted_count,password_failed_count,publickey_accepted_count,publickey_failed_count
  use_zero_for_empty
  #service {{ service-name }}
  flush_interval 60s
</match>

もしhostidがわからなければ下記補足を参照。

fluentdサービスを再起動して適用。

$ sudo service td-agent restart

mackerel Webサイトにてグラフの調整・監視設定

「login.count」グラフを探して見た目を直す。
好みの問題だけど、私はこうした。

  • 単位を「integer」に変更
  • 積み重ねグラフに変更
  • 色の関係で、並び順をaccept->failed->accept->failedに変更

メトリック表示例

これで、Monitorsから監視設定を入れることもできる。

補足: mackerel-hostidの確認方法

$ cat /var/lib/mackerel-agent/id
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8