ユーザ用ツール

サイト用ツール


20160110_notify_login_use_pam

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
20160110_notify_login_use_pam [2016-01-10 20:13]
tosihisa@netfort.gr.jp 作成
20160110_notify_login_use_pam [2018-02-05 21:37] (現在)
tosihisa@netfort.gr.jp
行 1: 行 1:
 +~~socialite~~
 ====== pam_execを使ってログイン時にメール通知 ====== ====== pam_execを使ってログイン時にメール通知 ======
  
行 5: 行 6:
 メール通知は,2016年の今では古典的な方法なのかも知れませんが, メール通知は,2016年の今では古典的な方法なのかも知れませんが,
 pam_exec 自身は実行できれば何でも良いので,ここでは古典的にログイン時に mail コマンドでメール通知するようにします. pam_exec 自身は実行できれば何でも良いので,ここでは古典的にログイン時に mail コマンドでメール通知するようにします.
 +
 +Debian (Wheezy,Jessie)で動きますが,Linux PAM で pam_exec が使えたら基本的に使えると思います.
 +
 +参考サイト:\\
 +http://blog.stalkr.net/2010/11/login-notifications-pamexec-scripting.html
  
 ===== メール送信スクリプト ===== ===== メール送信スクリプト =====
  
-<code bash /usr/local/bin/notify-login>+<file bash /usr/local/bin/notify-login>
 #!/bin/sh #!/bin/sh
 export LANG=C export LANG=C
行 31: 行 37:
 } | mail -s "`hostname -s` $PAM_SERVICE login alert: $PAM_USER" -a "From: $EMAILFROM" \ } | mail -s "`hostname -s` $PAM_SERVICE login alert: $PAM_USER" -a "From: $EMAILFROM" \
  $EMAILTO@送信先ドメイン  $EMAILTO@送信先ドメイン
 +</file>
 +
 +作成したら,chmod +x /usr/local/bin/notify-login で実行可能にします
 +
 +===== /etc/pam.d/common-session の修正 =====
 +
 +/etc/pam.d/common-session の最後に下記の1行を追加します.
 +
 +<code ini /etc/pam.d/common-session>
 +...
 +session    optional     pam_exec.so /usr/local/bin/notify-login
 </code> </code>
 +
 +これで,ssh によるリモートログイン時に /usr/local/bin/notify-login が実行され,メール通知されます.
 +
 +===== 通知されるもの =====
 +
 +要は,PAM による認証で,common-session を通るものは通知されます.
 +私が使っている Debian の場合,以下の様な感じで,chfn/chsh/su を実行した場合も pam_exec によって通知されるようになります.
 +
 +  $ grep -w common-session /etc/pam.d/* | grep include
 +  /etc/pam.d/chfn:@include common-session
 +  /etc/pam.d/chsh:@include common-session
 +  /etc/pam.d/cron:@include common-session-noninteractive 
 +  /etc/pam.d/login:@include common-session
 +  /etc/pam.d/other:@include common-session
 +  /etc/pam.d/samba:@include common-session-noninteractive
 +  /etc/pam.d/sshd:@include common-session
 +  /etc/pam.d/su:@include common-session
 +  /etc/pam.d/systemd-user:@include common-session-noninteractive
 +
 +===== まとめ =====
 +
 +要は pam_exec はコマンドを実行することが基本なので,メール通知でなくても使えます.
 +私はメール通知にしていますが,それは procmail でメールを振り分けて,この様な通知メールが飛んできたら pushover 経由でスマホに通知しています.
  
20160110_notify_login_use_pam.1452424390.txt.gz · 最終更新: 2016-01-10 20:13 by tosihisa@netfort.gr.jp