【CentOS】 Linux 7.4.1708 (Core)系统远程登陆服务器时发送邮件提醒

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]

在这里插入图片描述

8、测试重新登陆

在这里插入图片描述

9、遇到困难可以评论(有信必回)小轩微信17382121839。
发布了47 篇原创文章 · 获赞 57 · 访问量 8882

猜你喜欢

转载自blog.csdn.net/qq_41741884/article/details/100087690