linux 将新密码邮件发送,Linux配置root登陆时发送邮件到指定邮箱

出于安全考虑,需要监控部分敏感主机的root账号访问情况,于是实现root登录时发送邮件到指定邮箱。

提前明确:

发件箱、发件箱授权码、发件箱smtp地址、收件箱

第一步 申请邮箱授权码

选择腾讯企业邮箱,登录发件箱账号后,绑定微信,启用安全登录,选择“客户端专用密码-生成新密码”,此即授权码。

db91dd72c9bec3a854e3bb0fb0103f61.png

参考:https://www.yiyisoft.com/news/402.html

第二步 配置邮件发送

编辑/etc/mail.rc,增加如下内容

set from=server@domainname.com    #发件箱

set smtp=smtp.exmail.qq.com               #smtp地址,腾讯企业邮就是这个了

set smtp-auth-user=server@domainname.com

set smtp-auth-password=vT6K1234543XdsqV   ## set smtp-auth=login

测试配置效果

echo Hello World | mail -s test samgg@domainname.com

收件箱samgg@domainname.com即可收到主题test、内容Hello World的邮件。

PS:最好采用同一服务商的邮箱,否则可能出现互相屏蔽的情况,比如腾讯与网易,原因你懂的。

参考:https://blog.csdn.net/ipenx/article/details/78441291

第三步 配置账号访问时发送邮件

如果要监控所有账号登陆,配置/etc/bashrc;监控指定账号,在该账号默认目录下,编辑.bashrc,我要监控的是root,加入如下内容

echo "ALERT - Root Shell Access (`hostname`) on:" `date` `who` | mail -s "`hostname` Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" samgg@domainname.com

即时生效:source .bashrc

再次使用root登录时,samgg@domainname.com即可收到来自server@domainname.com的邮件。

参考:https://www.jb51.net/LINUXjishu/336236.html

报错:

Jun 11 13:40:56 VM_13_11_centos postfix/postqueue[1558]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol

Jun 11 13:40:56 VM_13_11_centos postfix/postqueue[1558]: warning: inet_protocols: configuring for IPv4 support only

修改/etc/postfix/main.cf如下参数

inet_protocols = all 改为 inet_protocols =ipv4

重启服务:

service postfix restart

报错:could not connect: Connection timed out

"/root/dead.letter" 11/305

. . . message not sent.

排查1:smtp服务器地址dns解析无误

排查2:smtp服务器端口25是否可以访问;

排查结果:25端口不通

PS:smtp端口知识延伸:smtp涉及三个端口:25 587 465;

具体参考:https://blog.csdn.net/zhangyuan12805/article/details/78781330

解决:要么解决25端口不通的问题,要么参考如下改用smtps:

查看/etc/postfix/master.cf

smtp inet n - n - - smtpd

查看/etc/services里面smtp相关465端口ok

urd 465/tcp smtps # URL Rendesvous Directory for SSM / SMTP over SSL (TLS)

配置ssl,修改/etc/mail.rc

set smtp=smtps.exmail.qq.com               #smtp地址,腾讯企业邮就是这个了,如果不行,就换成set smtp=smtps://smtp.exmail.qq.com:465

set ssl-verify=ignore #ssl认证方式

set nss-config-dir=/root/.certs #证书所在目录

请求数字证书(这里用的qq邮箱,所以向qq请求证书)

mkdir -p /root/.certs/

echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt

certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs -i ~/.certs/qq.crt

certutil -L -d /root/.certs

如果未请求证书,将报错:Error in certificate: Peer's certificate issuer is not recognized.

有时邮件可以发送,但依然报错:Error in certificate: Peer's certificate issuer is not recognized.,删除.certs,重新申请证书。

其他问题排查:

1、查看防火墙是否对相应端口有限制,修改防火墙策略

-A INPUT -p tcp -m multiport --dports 465,25 -j ACCEPT

2、邮箱是否开启smtp

邮箱开启smtp

如果遇到,503错误,smtp-server: 535 Error

1

那代表你的邮箱还没开启smpt服务。

例如,QQ邮箱登录后,设置–>帐号–>pop3/smtp,开启,然后QQ邮箱还会给出授权码,就是上面配置时候填的smtp-auth-passwd。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值