ubuntu-server-18-04:email-alert-on-login
サーバーにユーザーがログインしたらメールでアラートを送る
セキュリティ向上のためキーボードまたは SSH でログインした時にメールでアラートを送るようにシェルスクリプトを設定する。
sendmail コマンドが動くことが前提。
インストール環境
- Ubuntu 18.04.3 LTS 64bit
- お名前.com VPS (KVM) 1GB プラン
インストール
SSH ログイン
メールを送信するスクリプトファイルを用意する。RECIPIENT と SENDER 変数を適当なメールアドレスに置き換える。
ログインしたユーザー名と時間と環境変数をとりあえずメールする。
#!/bin/sh RECIPIENT="foobar@hogepiyo.com" SENDER="root@hogepiyo.com" TIME_ZONE="Asia/Tokyo" REVERSED_ADDR="N/A" if [ "$PAM_TYPE" != "close_session" ]; then if [ "$PAM_RHOST" != "" ]; then REVERSED_ADDR=`dig -x $PAM_RHOST +short` fi MESSAGE="To: $RECIPIENT Subject: '$PAM_USER' has logged in '`hostname`' From: $SENDER '$PAM_USER' has logged in successfully from '$PAM_RHOST' ($REVERSED_ADDR) on `hostname`. Login Time: `TZ=$TIME_ZONE date +\"%Y-%m-%d %T %Z %:::z\"` `env` " echo "$MESSAGE" | sendmail -t fi
実行権限を与えるためパーミッションを変更。
$ chmod 755 ./notify-login.sh
/etc/pam.d/sshd の設定を変更して、作成したスクリプトを SSH でユーザーがログインした時に実行する。以下の行を追加する。
% sudo vi /etc/pam.d/sshd
session optional pam_exec.so seteuid /path/to/notify-login.sh
optional を required に置き換えると、スクリプトの実行が失敗すると SSH ログインを拒否する。
sshd_config で UsePAM を yes にしておかないと動かない。
キーボード等のデバイス
キーボード等でのログインでもメール通知を行うようにする。/etc/pam.d/login に同じ行を追加する。
$ sudo vi /etc/pam.d/login
session optional pam_exec.so seteuid /path/to/notify-login.sh
参考
ubuntu-server-18-04/email-alert-on-login.txt · 最終更新: 2019/11/22 21:03 by admin