1.准备工作
1 2 |
准备好相关便于发邮件的邮件服务商。不建议使用个人QQ,一是发多了,容易被封!我们用于Fail2ban 的报警的,哪一天,多个攻击,一小时发几十封都可能是正常的! 阿里有一款免费的企业邮箱,最好用这个,本篇文章用smtp.qq.com做演示 |
1 2 3 4 5 6 7 |
第二步:把Linux服务器的安全组、IPtables 、控制面板的端口、如果有安全狗等第三方安全软件,把25和465的端口的进出入端口全部进行开放! #Iptables使用如下命令 iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 465 -j ACCEPT iptables -A OUTPUT -p tcp --sport 465 -j ACCEPT 然后重启下iptables |
2.安装mailx
1 |
yum -y install mailx |
3.配置发邮件参数
1 |
vim /etc/mail.rc |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
set from=1361927759@qq.com #发件人信息 set smtp=smtp.qq.com #通信代理服务默认25端口 set smtp-auth-user=1361927759@qq.com #发件人邮箱 set smtp-auth-password=eqzqqpelvcdkgfjj #邮箱授权码 set smpt-auth=login #邮件认证方式 #set smtp-use-starttls=yes #STARTTLS时使用 #set ssl-verify=ignore ## 忽略证书警告 #set nss-config-dir=/tmp/.certs #SSL证书保存位置,如果你要配置这个自行处理,暂时本章用不到 注意: 如果是465端口,需要加上smtps://协议(smtps://smtp.qq.com:465) 如果是587端口,不需要加smtps://或者写smtp://xxxx 如果使用587端口通讯,应当显示设置smtp-use-starttls; 有些邮件服务器的587端口不是使用STARTTLS而是SMTPS,此时仍需加上smtps://协议,例如126邮箱. |
4.配置完成后 测试发件
1 2 3 4 5 6 7 |
#测试发信 echo hello word | mailx -v -s "demo title" xxxx@126.com #正常发信 echo "have you email" | mailx -s "Hack Reports" xxx@126.com 注意: 如果使用:mailx -s "Hack Reports" xxx@126.com 请回车输入内容,很多人一直问在这卡着是什么原因,以为是bug或者错误,其实他在等你输入内容 ,输入内容完成后,Ctrl+D 发送 |

5.获取ssl证书来配置发件
1 2 3 4 5 6 7 8 9 10 11 12 |
获取邮件服务器证书: # 465端口 echo -n "" | openssl s_client -connect smtp.xxx.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > xxx.crt # 587端口 echo -n | openssl s_client -starttls smtp -connect smtp.xxx.com:587 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > xxx.crt # 也可以直接在浏览器上打开网页版,保存证书为PEM(base64格式)格式然后上传到服务器 #因为我是QQ 所以我请求qq的smpt证书(.certs文件没有自己创建) echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /root/.certs/qq.crt |
将证书添加到受信任列表
1 2 3 4 5 6 7 |
certutil -A -n 'xxx' -t "P,P,P" -d . -i ./xxx.crt 上述命令中 -A表示添加 -n是nickname,可以随意取,例如126或qq -t表示受信任的标签,可取值是t/c/p三种或者其组合 -d表示证书所在目录,-i指示证书文件的位置 |
1 2 3 4 5 6 |
#方法1: certutil -A -n 'smtpqq' -t "P,P,P" -d . -i ./certs/qq.crt #方法2:(当前我选择的用第二种) certutil -A -n "GeoTrust SSL CA" -t "C,," -d /root/.certs -i /root/.certs/qq.crt certutil -A -n "GeoTrust Global CA" -t "C,," -d /root/.certs -i /root/.certs/qq.crt certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d /root/.certs/./ -i /root/.certs/qq.crt |

重新配置mail.rc 使用465端口

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
[终端命令] [root@rabbitmqnode1 ~]# echo "我在测试啊" |mailx -v -s "first title" xxxxxxxx@126.com Resolving host smtp.qq.com . . . done. Connecting to 14.17.57.241:465 . . . connected. Comparing DNS name: "pop.qq.com" Comparing DNS name: "dav.qq.com" Comparing DNS name: "ex.qq.com" Comparing DNS name: "smtp.qq.com" SSL parameters: cipher=AES-128, keysize=128, secretkeysize=128, issuer=CN=Secure Site CA G2,OU=www.digicert.com,O=DigiCert Inc,C=US subject=CN=pop.qq.com,OU=R&D,O=Tencent Technology (Shenzhen) Company Limited,L=Shenzhen,ST=Guangdong,C=CN 220 smtp.qq.com Esmtp QQ Mail Server >>> EHLO rabbitmqnode1 250-smtp.qq.com 250-PIPELINING 250-SIZE 73400320 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN 250-MAILCOMPRESS 250 8BITMIME >>> AUTH LOGIN 334 VXNlcm5hbWU6 >>> MTM2MTkyNzc1OUBxcS5jb20= 334 UGFzc3dvcmQ6 >>> ZXF6cXFwZWx2Y2RrZ2Zqag== 235 Authentication successful >>> MAIL FROM:<123456789@qq.com> 250 Ok >>> RCPT TO:<xxxxxxxxx@126.com> 250 Ok >>> DATA 354 End data with <CR><LF>.<CR><LF> >>> . 250 Ok: queued as >>> QUIT 221 Bye [root@rabbitmqnode1 ~]# |

- 本文固定链接: https://www.yoyoask.com/?p=345
- 转载请注明: shooter 于 SHOOTER 发表