SSH 用戶登入時發信件通知管理者

一個控制慾很強稱職的管理者可能會想要 SSH 用戶登入時能有郵件通知,網路上有些 Linux 的文件可以參考,這邊紀錄一下 FreeBSD 的作法。

比較簡單的方式,是利用 PAM 模組來發送這個訊息。PAM 有一個 pam_exec.so 可以用來執行指令,所以運作原理就是當用戶登入時,去執行發送郵件的 script。

首先你要有個 script 用來發郵件,PAM 會將各種資訊以環境變數的方式傳入 scirpt 中,所以我們可以利用這些變數來做判斷,達成不同的目的。

就我所知不同平台可能有不同的變數名稱,若是想知道有哪些變數可用,可以在 script 內,將 env 輸出的內容寄給自己。
完成後大概長這樣:

將上面的 script 存放在 /root/notify.sh,並使用 chmod 加上可執行的權限。
再來修改 /etc/pam.d/sshd,加上這一行:

其中的 optional 表示不管 script 執行是否成功,都不影響用戶的登入。若是將 optional 改為 required,則 script 若執行失敗也會阻擋用戶登入。

接著就可以嘗試登入看看,並檢查是否有收到郵件了。

發佈留言