【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 from=xxxxxxx@qq.com #发送者QQ账号 
set smtp=smtps://smtp.qq.com:465 #发送地址 这里使用的是QQ邮箱
set smtp-auth-user=xxxxxxx@qq.com #发送者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 "服务器登陆提醒" xxxxxxx@xxx.com #记住这里是要你要发送的对象

在这里插入图片描述

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 "服务器登陆提醒" public_class_xuan@163.com

在这里插入图片描述

8、测试重新登陆

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值