SSH ログインされたらメール通知する(Ubuntu 版)

先日、CentOS7 環境で SSH ログインされたらメール通知するという記事を書きました。Ubuntu 16.04.1 だと環境変数やパスの違いから若干、修正が必要だったのでメモしておきます。

apt-get で ssmtp を標準リポジトリからインストールします。/etc/ssmtp/ssmtp.conf の修正は CentOS7 と同じで OK です。

1
apt-get -y install ssmtp

/etc/ssh/sshrc の内容だけ、以下のように微修正が必要でした。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/bin/sh

MAIL_TO=[通知先メールアドレス]

TIME=`/bin/date "+%Y/%m/%d %H:%M:%S"`
HOSTNAME=`/bin/hostname`

FROM_ADDR=`echo $SSH_CONNECTION | cut -d' ' -f1`
FROM_PORT=`echo $SSH_CONNECTION | cut -d' ' -f2`
FROM_ADDR_PORT=${FROM_ADDR}:${FROM_PORT}

TO_ADDR=`echo $SSH_CONNECTION | cut -d' ' -f3`
TO_PORT=`echo $SSH_CONNECTION | cut -d' ' -f4`
TO_ADDR_PORT=${TO_ADDR}:${TO_PORT}

echo -e "Time\t${TIME}\nHost\t${HOSTNAME}\nUser\t${USER}\nFrom\t${FROM_ADDR_PORT}\nTo\t${TO_ADDR_PORT}" | /usr/bin/mail -s "[SSH]${HOSTNAME}/${USER} (${TIME})" ${MAIL_TO}