邮件日志中的“UGFzc3dvcmQ6”详解
今天邮箱服务器又报了内存不足,Kaijia思考平常也并没有什么使用量,肯定是有外部因素,看了一下/var/log/mail.log日志,办天内出现了30万条错误类似如下的错误:
Aug 11 16:08:14 mta postfix/smtpd[1650]: connect from unknown[IP]
Aug 11 16:08:21 mta postfix/smtpd[1593]: warning: unknown[IP]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Aug 11 16:08:21 mta postfix/smtpd[1593]: lost connection after AUTH from unknown[IP]
Aug 11 16:08:21 mta postfix/smtpd[1593]: disconnect from unknown[IP] ehlo=1 auth=0/1 commands=1/2
这些错误的核心内容是“SASL LOGIN authentication failed: UGFzc3dvcmQ6”,前面部分好理解,验证错误,后面的“UGFzc3dvcmQ6”,实则是“Password:”经过Base64加密后的密文,即:
1 2 |
echo "UGFzc3dvcmQ6" | base64 -d Password: |
按照Eric Shalov给出的解释,这个神秘的字符串错误是一个与标准Dovecot协议不兼容的程序试图在握手后通过Dovecot的SASL验证时留下的。而显然,发送“Password:”作为验证的只有可能是垃圾邮件的扫描者(Spammer)。
一般碰到这种情况直接忽略这种错误即可。如果垃圾邮件量巨大(可能造成Postfix忙消耗内存)可以利用Fail2ban或手动从mail.log中提取扫描者的IP添加到防火墙屏蔽:
1 |
grep UGFzc3dvcmQ6 /var/log/mail.log | grep -oe "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | sort -u |
Kaijia今天从上面代码返回的结果中拉黑了2000多个IP,随机查询了几个均是电信家用IP(所以是肉鸡),因此应当感叹一下网络安全问题。
评论