如何設定 Linux 上 SSH 登入的 Email 提醒

linux.cn發表於2015-04-26

虛擬私有伺服器 (VPS)上啟用 SSH 服務使得該伺服器暴露到網際網路中,為黑客攻擊提供了機會,尤其是當 VPS 還允許root 直接訪問時。VPS 應該為每次 SSH 登入成功嘗試配置一個自動的 email 警告。 VPS 伺服器的所有者會得到各種 SSH 伺服器訪問日誌的通知,例如登入者、登入時間以及來源 IP 地址等資訊。這是一個對於伺服器擁有者來說,保護伺服器避免未知登入嘗試的重要安全關注點。這是因為如果黑客使用暴力破解方式通過 SSH 來登入到你的 VPS 的話,後果很嚴重。在本文中,我會解釋如何在 CentOS 6、 CentOS 7、 RHEL 6 和 RHEL 7上為所有的 SSH 使用者登入設定一個 email 警告。

如何設定 Linux 上 SSH 登入的 Email 提醒

使用root使用者登入到你的伺服器;

在全域性源定義處配置警告(/etc/bashrc),這樣就會對 root 使用者以及普通使用者都生效:

[root@vps ~]# vi /etc/bashrc

將下面的內容加入到上述檔案的尾部。

echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" recipient@gmail.com

你也可以選擇性地讓警告只對 root 使用者生效:

[root@vps ~]# vi .bashrc

將下面的內容新增到/root/.bashrc的尾部:

echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" recipient@gmail.com

整個配置檔案樣例:

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" recipient@gmail.com

你也可以選擇性地讓警告只對特定的普通使用者生效(例如 skytech):

[root@vps ~]# vi /home/skytech/.bashrc

將下面的內容加入到/home/skytech/.bashrc檔案尾部:

echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" recipient@gmail.com

相關文章