我的 Postfix 邮件日志中每天都会出现几条消息,例如:
postfix/smtpd[7363]: warning: non-SMTP command from unknown[xx.xx.xx.xx]: GET / HTTP/1.0
我应该忽略它们还是阻止它们?如果有必要阻止这些尝试,最好的方法是什么(iptables、后缀访问映射等)?
答案1
我使用fail2ban。您可以编辑 /etc/fail2ban/filter.d/postfix.conf 以捕获任何进一步的尝试。我监视我的 /var/log/mail.log 文件以查找可疑行为并根据需要添加到 postfix.conf 中。这是我的 postfix.conf,它确实捕获了您上面提到的行。
[INCLUDES]
before = common.conf
[Definition]
_daemon = postfix/smtpd
failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$
^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$
^%(__prefix_line)sNOQUEUE: reject: VRFY from \S+\[<HOST>\]: 550 5\.1\.1 .*$
^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 454 4\.7\.1 :*$
reject: RCPT from (.*)\[<HOST>\]: 550 5.1.1
reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1
reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1
reject: RCPT from unknown\[<HOST>\]: 454 4.7.1
connect from unknown\[<HOST>\]
ignoreregex =
你还可以添加
warning: non-SMTP command from unknown\[<HOST>\]:: GET / HTTP/1.0
如果以上没有涵盖全部。
如果您希望手动禁止历史 IP 地址,请使用 IP 表。
问候并祝你好运,
马特
答案2
无需阻止“命令”。如果您发现有人执行大量无效命令,则会阻止该 IP 地址。无效的命令不会造成任何损害,并且在某些情况下是实用的(即支持有问题的客户端)。