我在数据中心的个人服务器上运行 Postfix。我既不是专业的邮件托管商,也不是 Postfix 专家,它只是用于该服务器提供的几个域。
IIRC,我主要关注本指南设置 Postfix 时。发往服务器管理的某个域的邮件将在本地 (/srv/mail) 发送,以便使用 Dovecot 获取。发往其他域的邮件需要使用 SMTPS。邮箱配置存储在 MySQL 中。
我遇到的问题是,我突然发现磁盘上正在创建新的邮箱。假设我有域名“example.com”。那么我会有很多新目录,例如
/srv/mail/example.com/abenaackart
/srv/mail/example.com/abenaacton
等。
我的数据库中没有这些地址的条目,无论是邮箱还是别名。
这显然是自动生成名称的垃圾邮件。大多数以“a”开头,少数以“b”开头,还有几个以其他字母开头的随机名称。起初我担心遭到攻击,但所有安全限制似乎都有效。如果我尝试向这些地址发送邮件,在“RCPT TO”阶段,我会收到“收件人地址被拒绝:虚拟邮箱表中的用户未知”的提示。
于是我查看了这些邮箱中存储的邮件。结果发现它们都是退回的。似乎它们都是从随机生成的名称到一个确实存在于我的系统上的别名,但指向另一台主机上的无效目标地址。因此 Postfix 接受了它,然后尝试将其重定向到另一台邮件服务器,但该服务器拒绝了它。这封邮件被退回到我的 Postfix 服务器,该服务器现在接收了退回邮件并将其存储在本地 — — 因为它似乎来自它管理的某个地址。
例子:
- 我的 Postfix 服务器处理 example.com 域。
- [电子邮件保护]配置为重定向至[电子邮件保护]。
- [电子邮件保护]已从 Hotmail 服务器中删除。
- 垃圾邮件发送者发送带有以下信息的邮件:[电子邮件保护]并:[电子邮件保护]。
- 我的 Postfix 服务器接受邮件并尝试将其转交给 hotmail.com。
- hotmail.com 发送退回邮件。
- 我的 Postfix 服务器接受退回邮件并将其发送至 /srv/mail/example.com/bob。
最后一步是我不想要的。我不太确定它应该做什么,但在我的磁盘上创建数百个新邮箱不是我想要的...
有什么想法可以摆脱这种行为吗?我很乐意发布部分配置,但目前我还不确定从哪里开始调试问题。
我的main.cf:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/pf.pem
smtpd_tls_key_file=/etc/ssl/private/pf.key
smtpd_tls_security_level=may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = <hostname removed>
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
relayhost =
mydestination = localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, <server ip and some subnets removed>, 192.168.2.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
答案1
似乎您没有验证收件人是否是有效地址。请检查您是否正确配置了 local_recipient_maps。如果不是,请包含您的 main.cf 文件以供审核。