SSHログイン時に、ログインユーザをchatworkに通知させる方法

SSHログイン時に、ログインユーザをchatworkに通知させる方法

正常なログインもログを取得して、監視しなさい。
と審査機関やセキュリティ会社に言われることって多くないですか?
正常なログインを監視するにもサーバも多いし、大変ですよね。

そこでチャットツールに正常なログイン情報を通知させて、
後からでも誰がどのサーバにログインしたのかを把握できるようにしてみました!
弊社では、chatworkが使いやすいのでchatworkにログイン通知を飛ばす設定をご紹介します!

 

前提条件

  1. CentOS6.x (x64)
  2. chatworkを利用していること
  3. 該当サーバからchatworkのAPIサーバへアクセスが許可されていること

chatwork API利用申請

chatworkのAPIは今現在(2016年5月)プレビュー版であり、
申請し承認されると順次利用が可能になります。
一般ユーザの方は、こちらのリンクからの申請になります。
下記画面で申込みボタンをクリックします。

一般ユーザAPI申請画面
企業版(KDDI Chatwork)の場合は、管理者経由での申請になります。
管理者の方が申請リンク経由でログインすると下記画面になります。
利用したい方の、メールアドレスを入力し、申請してください。

企業版API申請画像

通知用グループチャットを作成

chatworkに通知用のグループチャットを新規作成します。

グループチャット追加

チャット名を入力し、各種必要メンバーをグループチャットに登録します。

chatadd02

サーバに通知用スクリプトを設定

SSHディレクトリの下に、sshrcというファイルを作成します。

# cd /etc/ssh
# vi sshrc
下記の内容を書き込み保存します。APIキーや、チャットルーム番号等は
ご自身の環境に合わせて変更してください。
チャットルーム番号は、URLの #rid= の後の数字部分です。

/usr/bin/curl --connect-timeout 5 -s -X POST -H "X-ChatWorkToken:<<APIキー>>" -d "body=[info][title]$HOSTNAME - Login[/title]$USER has logined.[/info]" "https://api.chatwork.com/v1/rooms/<<チャットルーム番号>>/messages" > /dev/null

サーバへログインし通知確認

設定したサーバへログインし、作成したグループチャットに
ログイン通知がくることを確認します。
下記画像のような形で通知されてきます。
弊社のデータなので一部マスク処理をしています。

ログイン通知

サーバ台数が増えても、これなら1チャットにすべてのログが集まるのでわかりやすいですね!
これで審査期間やセキュリティ会社に正常なログインを確認していますか?
と聞かれても自身を持って、ログインを確認しております!(キリッ っていえますね!