我在数据中心的个人服务器上运行Postfix。 我不是一个专业的邮件主机,而不是一个Postfix的专家,它只是用于从该服务器提供的一些域。
IIRC,我在设置Postfix时大部分都遵循了这个方法 。 发往本地服务器pipe理的域名邮件(/ srv / mail)将被提交给Dovecot。 邮件到其他域需要使用SMTPS。 邮箱configuration存储在MySQL中。
我遇到的问题是我突然发现磁盘上正在创build新的邮箱。 假设我有域名“example.com”。 那么我会有很多新的目录,例如
/srv/mail/example.com/abenaackart
/srv/mail/example.com/abenaacton
等等
我的数据库中没有这些地址的条目,既不是邮箱也不是别名。
这显然是来自自动生成的名称的垃圾邮件。 他们大多以“a”开头,less数以“b”开头,随机附带其他字母。 起初我害怕袭击,但所有的安全限制似乎都起作用。 如果我尝试向这些地址发送邮件,则会在“RCPT TO”阶段收到“收件人地址被拒绝:虚拟邮箱表中的用户未知”。
所以我看着存储在这些邮箱中的邮件。 原来,他们都是反弹。 看起来好像所有这些都是从一个随机生成的名字发送到我的系统上确实存在的别名,但却指向另一个主机上的无效目标地址。 所以Postfix接受它,然后试图将其redirect到另一个邮件服务器,拒绝它。 这反弹回到我的Postfix服务器,现在反弹并将其存储在本地 – 因为它似乎源于它pipe理的地址之一。
例:
最后一步是我不想要的。 我不太确定它应该做什么,但在我的磁盘上创build数百个新的邮箱是不是我想要的…
任何想法如何摆脱这种行为? 我会很高兴地发布我的configuration的一部分,但我不确定从哪里开始debugging这个问题。
我的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
看起来像你没有validation收件人是否是有效的地址。 检查你是否有一个正确configuration的local_recipient_maps。 如果不是这样,请包括您的main.cf文件进行审查。