logmonのログをTypetalkに通知する
はじめに
企業や組織によっては、不正アクセス防止・検知の観点から、リモートサーバーへのSSHログイン履歴をログに保存したりリアルタイムに検知することが求められる場合があります。
簡易的な方法として、logmonで検知した結果をTypetalkに通知する設定を行ってみます。
セキュリティ監査などの証跡とする場合や、本番サーバーでの運用にのせる場合は、"どのようなログを検知するか" "そもそもそのログは改ざんされてないか" など考慮することがあると思いますが、ここではそれには触れません。
前提条件
- Typetalkのアカウントがあり、利用していること。
- logmonが動作するOS環境があること。(ここでは、CentOS 6や、Amazon Linuxを想定)
参考情報
- https://developer.nulab-inc.com/ja/docs/typetalk/
- https://qiita.com/inouet/items/cc1eacef237f2328e98f
Typetalk bot の設定
"ID" と "名前" は任意の名称を設定します。ここでは、logmon_botとします。 "topic.post"にチェックをいれます。
さきほどのボット一覧画面に、作成したボットが表示されました。歯車のアイコンをクリックし、内容を確認します。
"メッセージの投稿コマンドのサンプル" に表示されている curl コマンドを、後述の logmon で使用します。
logmon
インストール
$ git clone https://github.com/moomindani/logmon.git
$ cd logmon
$ sudo ./setup.sh
設定
公開鍵認証でSSH接続に成功したログを検知する例。
curlコマンドの行には、Typetalkでlogmon_botを作成した際の "メッセージの投稿コマンドのサンプル"をコピペします。
$sudo vi /etc/logmon/logmon.conf
:/var/log/secure
(Accepted publickey)
curl --data-urlencode 'message=<%%%%>' -d 'typetalkToken=xxxxxxxxxxxxx' 'https://typetalk.com/api/v1/topics/xxxxx'
設定内容をチェックし、サービスを再起動します。
logmon.conf を編集した場合は、サービスの再起動が必要です。再起動しなければ設定内容が反映されません。
$ sudo service logmon check
$ sudo service logmon restart