/etc/ssh/sshrc
というファイルを作成します。
このファイルはすべてのユーザがSSHログインした際に自動的に実行されます。
このファイル内でmailxコマンド(存在しない場合は yum install mailx
)を使って、メール送信します。
全てのSSHログインを通知する
/etc/ssh/sshrc
MAIL_TO=to@example.com
echo ""$USER" has logged in from [$SSH_CLIENT] at `date +"%Y/%m/%d %H:%M:%S"` " | mail -s "[$HOSTNAME ]sshd login alert" $MAIL_TO
認知しているIPアドレスは通知しない
IPS
変数に指定します。(複数指定したい場合は空白で区切ります)
/etc/ssh/sshrc
MAIL_TO=to@example.com
FOUND=0
IPS="123.456.78.901"
DETECT_IP=
for ip in $IPS
do
if [ "${SSH_CLIENT:0:${#ip}}" = "$ip" ]; then
FOUND=1
DETECT_IP=$ip
fi
done
if [ $FOUND = 0 ]; then
echo ""$USER" has logged in from [$SSH_CLIENT] at `date +"%Y/%m/%d %H:%M:%S"` " | mail -s "[$HOSTNAME ]sshd login alert" $MAIL_TO
# else
# echo "detect defined ip [$DETECT_IP]" | mail -s "[$HOSTNAME ]sshd login alert" $MAIL_TO
fi
※$SSH_CLIENT
と$HOSTNAME
は環境変数です。
付録/届くメール
上記コードだと以下の様なメールが届きます。