1、業務場景
1、很多時候爲了各方面原因,需要用到登陸到linux系統的時候,提醒管理員是誰登陸的,在哪登陸的,以及登陸的ip,是不是非常用性的ip,是不是被非法入侵。。。。等等原因,所以就需要提醒服務,這裏採用的是郵件提醒方式。
2、這裏採用的是SendMail的方式,也可以採用自己寫個python腳本,或者php腳本,等等腳本語言,先實現發送郵件的功能,然後直接到服務器啓動的地方觸發腳本,即可完成郵箱預警,這裏寫個博客,只做大致展示,精細以及完善,還得靠自己!
2、安裝SendMail
yum -y install sendmail
3、安裝Mailx
yum install -y mailx
4、開啓防火牆端口25和465(這裏是服務器虛擬機裏面開啓,如果是買的阿里雲,去安全組就行了)
#開啓25端口
firewall-cmd --add-port=25/tcp --zone=public --permanent
#開啓465端口
firewall-cmd --add-port=465/tcp --zone=public --permanent
#重啓防火牆
systemctl restart firewalld
5、配置/etc/mail.rc文件
1、查找位置 取下圖紅圈圈出來的部分
find / -name "cert*.db"
2、進入編輯文件
vi /etc/mail.rc
3、寫入以下配置**(這裏使用的是QQ郵箱 註釋記住最好刪掉)**
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
set [email protected] #發送者QQ賬號
set smtp=smtps://smtp.qq.com:465 #發送地址 這裏使用的是QQ郵箱
set [email protected] #發送者QQ賬號
set smtp-auth-password=xxxxxxx #發送者QQ賬號密鑰 不是QQ密碼!!!!
set smtp-auth=login
4、重啓SendMail服務
#重啓
systemctl restart sendmail
#查看狀態
systemctl status sendmail
6、先手動觸發命令測試是否能成功發送郵件
echo "我是郵件提醒" | mailx -v -s "服務器登陸提醒" [email protected] #記住這裏是要你要發送的對象
7、linux設置登陸的時候觸發發送郵件(這裏採用的是centos7)
1、各種環境下寫入的配置位置:
Linux用戶登陸都會執行/etc/profile文件
Ubuntu/Debian系統環境 編輯根目錄下 ~/.bashrc文件
CentOS系統 編輯 ~/.bash_profile文件
vi ~/.bash_profile
2、寫入配置**(如下圖所示:)**
#獲取登陸賬戶
user=$USER
#獲取登陸時間
time=$(date +%F%t%k:%M)
#獲取登陸ip
ip=${SSH_CLIENT%% *}
#登陸ip歸屬地 這個http地址是獲取ip的,也可以自己找個網站替換掉
address=`curl http://icanhazip.com`
echo "用戶 $user 用 $address ip地址在 $time 登陸線上服務器 " | mailx -v -s "服務器登陸提醒" [email protected]