Intro
可以利用/etc/pam.d/
下檔案的 hook 效果去觸發執行外部 Shell script file,而 Shell 中去抓取登入者資訊並寄送 email,以達到 SSH Login 自動發信通知
作法
-
先撰寫建立好 Shell script file 作為發送信件程式:
$ vim /etc/ssh/login-notify.sh
#!/bin/sh # Change these two lines: sender="sender-address@example.com" recepient="notify-address@example.org" if [ "$PAM_TYPE" != "close_session" ]; then host="`hostname`" subject="SSH Login: $PAM_USER from $PAM_RHOST on $host" # Message to send, e.g. the current environment variables. message="`env`" echo "$message" | mailx -r "$sender" -s "$subject" "$recepient" fi
-
將 Shell 檔案設定為可執行以及設定 owner:
$ chmod +x login-notify.sh $ sudo chown root:root login-notify.sh
-
在
/etc/pam.d/sshd
檔案中加入 hook 以執行 Shell 檔案:session optional pam_exec.so seteuid /etc/ssh/login-notify.sh
sshd 檔案中的
optional
指令參數為非 require 條件以防止執行錯誤無法登入