一次postfix垃圾邮件问题处理的方法分享(图文)

发布时间:2020-08-06编辑:脚本学堂
分享一次postfix垃圾邮件问题处理的案例,现在垃圾邮件超多,很是烦人,看看本文分享的方法,对大家是否有帮助?

问题描述:
邮件服务器的负载一直都很低。
nagios监控到:现在比较反常的达到满载。进程数也比之前暴涨。

原因:
有个邮箱账号可能密码被垃圾邮件组织爆掉了,在利用这个账号疯狂的发送垃圾邮件。

1、问题排查,定位故障:
#ps auxww

查看进程快照
#netstat -an |grep :

查看tcp连接情况
很容易就可以发现是本机在疯狂的连接其他邮件服务器的25端口。
#netstat -an |grep :25

#lsof -i tcp:25
如下图:
lsof

前面部分为邮件主机名,未截取全部。第一反应就是发送垃圾邮件。
测试关闭本机的postfix服务,服务器马上就正常。问题应该就是在postfix上。一开始没有想治本的东西,就是想先让邮件服务器停止发送垃圾邮件。就一直在纠结iptables,hosts.deny这方面,拒绝连接对方服务器的25端口。但是效果一直不明显。

2、问题处理
反复查看日志信息,发现以下两段信息:
 

Dec 23 09:59:45 mail postfix/qmgr[4400]: EF2CB2FFFE1: from=<xxx@xx.cn>, size=3584, nrcpt=10 (queue
active)
Dec 23 09:46:48 mail postfix/error[5148]: 2ADAC305172: to=<n51015@jb200.com>,
relay=none, delay=138070, delays=138069/0.32/0/0.46, dsn=4.7.0, status=deferred (delivery temporarily suspended: host
mx1.mail.tw.yahoo.com[203.188.197.119] refused to talk to me: 421 4.7.0 [TS01] Messages from xxx.xxx.xxx.xxx temporarily deferred due to
user complaints - 4.16.55.1; see http://postmaster.yahoo.com/421-ts01.html)

2.1、停止掉第一段日志信息中"from=<xxx@xx.cn>" 中的这个邮箱账户,发现问题依然。同事提醒可能是之前提交的,在邮件队列里等待发送。
2.2、查看邮件队列,发现大量如下信息:
 

复制代码 代码示例:
#/usr/local/postfix/sbin/postqueue -p
(delivery temporarily suspended: connect to mx1.mail.tw.yahoo.com[203.188.197.119]: Connection timed out)
andy801105@jb200.com
julia66226@jb200.com
lincolntaiwan@jb200.com
rigger_168@jb200.com
sky1487520@jb200.com
sm08576000@jb200.com
sunvictor26@jb200.com
three08kimo@jb200.com
tingwang77@jb200.com

2.3、清空邮件队列
 

复制代码 代码示例:
#/usr/local/postfix/sbin/postsuper -d ALL

最后提示清理掉了9W多条记录。查看服务器的连续信息正常,查看负载也随即掉了下来,回归正常。

如下图:
清空邮件队例
注:发送的垃圾邮件是随机产生的用户,如果对方没有此用户的邮件用户,发送不成功,则还是会在邮件队列等待一段时间之后再次重新发送。