ユーザ用ツール

サイト用ツール


ubuntu-server-18-04:email-alert-on-login

文書の過去の版を表示しています。


サーバーにユーザーがログインしたらメールでアラートを送る

セキュリティ向上のためキーボードまたは SSH でログインした時にメールでアラートを送るようにシェルスクリプトを設定する。

sendmail コマンドが動くことが前提。

インストール環境

  • Ubuntu 18.04.3 LTS 64bit
  • お名前.com VPS (KVM) 1GB プラン

インストール

メールを送信するスクリプトファイルを用意する。RECIPIENT と SENDER 変数を適当なメールアドレスに置き換える。

#!/bin/sh
  
RECIPIENT="example@gmail.com"
SENDER="john@hogepiyo.com"
TIME_ZONE=Asia/Tokyo

if [ "$PAM_TYPE" != "close_session" ]; then
    MESSAGE="To: $RECIPIENT
Subject: '$PAM_USER' has logged in '`hostname`'
From: $SENDER

'$PAM_USER' has logged in successfully from '$PAM_RHOST' 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 ログインを拒否する。

参考

ubuntu-server-18-04/email-alert-on-login.1566874770.txt.gz · 最終更新: 2019/08/27 11:59 by admin