LineNotify APIでsshログイン通知をする
以前、sshでログインしたことをSlackに通知するというのを書いたことがあります。
ちょっと前にLineNotify APIがリリースされたので、こちらでも使って見るようにしてみました。 基本的な設定方法は↑のエントリと同じですが、スクリプトなどの内容だけをこのエントリでは書いておきますね。
ファイル構成
/etc/pam.d/sshd
にて実行するファイルのパスなどを設定しておけば、そのスクリプトが実行されますが、今回はスクリプトとLineNotify API実行時にヘッダに設定するToken情報を記述するファイルを分けてみました。
/etc/line ├── line-token └── login-notify.sh
tokenは、https://notify-bot.line.me/my/で発行できます。
login-notify.shの内容は次のようにしました。
#!/bin/sh script_dir=`dirname "${0}"` endpoint=https://notify-api.line.me/api/notify if [[ $PAM_TYPE != "close_session" ]] ; then host=$(hostname) message="SSH Login: ${PAM_USER} from ${PAM_RHOST} on ${host}" token=$(cat "${script_dir}/line-token") header="Authorization: Bearer ${token}" curl -X POST -H "${header}" -F "message=${message}" ${endpoint} fi
Lineに送信する内容を変えたい場合には、message
を指定している部分を適宜変更してください。
基本的には上記の内容で動作するはずですが、うまく動かない場合にはcurl
の出力をファイルに書き出すと内容が確認できます。
例えば、-o /tmp/res
などを追加するとAPIを呼び出したレスポンスを確認できます。