SSHでサーバにログインしたら、Slackの特定チャンネルに通知する仕組みを作りたいなぁ と思ったのでそのメモを。
まずはWebhookを利用してSlackに投稿するスクリプトを作成します。
# vim /var/local/Script/sshlogin.sh
スクリプトのサンプルは下記。
#!/bin/sh # USER : $1 # CLIENT : $2 # HOSTNAME : $3" IP=`echo $2 | cut -d ' ' -f 1` MESSAGE="$IP が $3 の $1 にログインしたようですわ。。。" curl -X POST --data-urlencode 'payload={"channel": "#loginhistory", "username": "mita", "text": "'"${MESSAGE}"'"}' https://hooks.slack.com/services/xxxxxxxxxxxxx > /dev/null 2>&1 #echo "お知らせ:このログインは記録・通知されています。"
続いて、SSHでログインしたら自動的に先程作成したシェルをキックするようにします。
ただしSCPなどでの接続時は記録するのが面倒なので、bashrcに記載すれば楽でした。
# vim /etc/bashrc
下記を記載。
if [ $PS1 ]; then /var/local/Script/sshlogin.sh "$USER" "$SSH_CLIENT" "$HOSTNAME" fi
これで完了です。