誰かがログインしたときにお知らせをしたいことってありますよね。
最近Slackを使いはじめていい感じの僕はやっぱりsshでログインされたらSlackで通知させたいわけですよ。
ということで、sshでログインした瞬間にSlackへ通知する方法を書いていきます。
webhookの作成
Slack側でAdd New Integrationで新しいIntegrationを作成します。
Add New Integrationをおしたら、Incomming WebHooksをクリックしましょう。
押すとURLが発行されるのでtoken=
でかかれたtokenをこの次に書くトークン
の部分に記載してください。
sshrcを作成する
/etc/ssh/sshrc
ファイルを作成します
<<<<<<< HEAD
$ sudo vim /etc/ssh/sshrc
=======
>>>>>>> YOUR_EDITION
/etc/nodejs/sshlogin.js $USER $SSH_CLIENT
aaaa
実行するスクリプトの作成する
まずはディレクトリを作成します。
$ sudo mkdir /etc/nodejs/
$ sudo npm init
つぎに必要なライブラリを準備します。
今回はnode-slackrを利用します。
$ sudo npm install --save node-slackr
あとはスクリプトを書くだけ
/etc/nodejs/sshlogin.js
var Slack = require("node-slackr");
var slack = new Slack("サブドメイン","トークン",{
channel: "#alert",
username: "ウォッチサーバよりお知らせします",
icon_url: "http://imgak.1mobile.com/group2/M00/26/E7/S36rZFMoT-mAeyE9AAL2y4L9Xm8291.png"
});
slack.notify(process.argv[2]+"がログインしたよ! IPアドレス:"+process.argv[3],function(err, result){
console.log(err, result);
});
実際に動いているか確認してみる
こんな感じにSlackに表示されました。
これで不正アクセスがあってもすぐにわかってしまいますね!