AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 792442
Accepted
Dave
Dave
Asked: 2016-07-29 01:59:02 +0800 CST2016-07-29 01:59:02 +0800 CST 2016-07-29 01:59:02 +0800 CST

Postfix REJECT (not BOUNCE) 未知虚拟别名

  • 772

我们使用虚拟别名映射并配置了 spamassassin,为多个托管域运行一个小型 postfix(和 dovecot)邮件服务器。

最近很明显,我们正在产生一些反向散射;垃圾邮件进入不存在的电子邮件地址,并被退回给伪造的发件人。就我们的邮件服务器的声誉而言,这显然是一个问题,也意味着我们正在代表垃圾邮件发送者发送垃圾邮件。

然后我想做的是更改后缀行为,以便在 SMTP 事务期间拒绝邮件,而不是生成退回电子邮件表单 MAILER-DAEMON。

我尝试添加 local_recipient_maps ( http://www.postfix.org/LOCAL_RECIPIENT_README.html ),但这没有任何区别。我认为这是因为我正在使用 virtual_alias_maps(其他虚拟邮箱解决方案似乎也不适用于这里)。

postconf -n 生成:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = all
inet_protocols = all
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 0
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = verrotech.com
myhostname = mail.verrotech.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.domain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.domain.com/privkey.pem
smtpd_tls_security_level = may
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

谢谢你。

postfix aliases
  • 2 2 个回答
  • 12622 Views

2 个回答

  • Voted
  1. Best Answer
    NuTTyX
    2016-08-02T09:51:19+08:002016-08-02T09:51:19+08:00

    经过一番研究,你的问题让我意识到我的邮件服务器也有同样的问题,所以首先,thanx。

    其次,您应该注意,默认情况下,postfix 会阻止这种流量。在手册smtpd_reject_unlisted_recipient 中:

    smtpd_reject_unlisted_recipient (默认:是)

    请求 Postfix SMTP 服务器拒绝未知收件人地址的邮件,即使没有指定明确的 reject_unlisted_recipient 访问限制。这可以防止 Postfix 队列被无法投递的 MAILER-DAEMON 消息填满。

    那么,您为什么要收到250 OK未知目的地的邮件?因为这些行:

    mydestination = $myhostname, localhost.$mydomain, localhost
    virtual_alias_maps = hash:/etc/postfix/virtual

    smtpd_reject_unlisted_recipient检查目标邮件,但非常具体:

    当一个地址匹配一个虚拟(5)别名或一个规范(5)映射时,它总是被认为是“已知的”。

       The recipient domain matches $mydestination, $inet_interfaces or $proxy_interfaces, but the recipient is not listed in $local_recipient_maps, and $local_recipient_maps is not null.
       The recipient domain matches $virtual_alias_domains but the recipient is not listed in $virtual_alias_maps.
       The recipient domain matches $virtual_mailbox_domains but the recipient is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps is not null.
       The recipient domain matches $relay_domains but the recipient is not listed in $relay_recipient_maps, and $relay_recipient_maps is not null. 
    

    由于您mydestination不包括您的$mydomain(仅服务器名称和本地主机)并且您没有任何*_domains地方,因此没有其他检查“已知”目的地。

    您只需要添加:

    virtual_alias_domains = $mydomain

    重新加载后缀。(如果我的配置正确并且您的所有邮件都采用“[email protected]”的形式)


    如果这不起作用,你可以试试这个:

    smtpd_recipient_restrictions = permit_mynetworks、reject_unauth_destination、reject_unverified_recipient

    注意:它将通过命令检查传入和传出消息RCPT TO的目标是否确实存在。请谨慎使用,因为它会为每个新目的地建立额外的连接,并且需要一些时间来响应您的服务器处理的每封邮件(测试每个目的地可能需要几秒钟)。

    • 8
  2. Aaron
    2016-07-29T07:40:38+08:002016-07-29T07:40:38+08:00

    这个答案并不完全符合您的要求,但这就是我为自己的用例解决该问题的方式。

    丢弃反弹:

    在 /etc/postfix/main.cfg 中,我有:

    2bounce_notice_recipient = devnull
    bounce_notice_recipient = devnull
    bounce_queue_lifetime = 0d
    delay_warning_time = 0h
    alias_maps = hash:/etc/postfix/aliases
    alias_database = hash:/etc/postfix/aliases
    

    在 /etc/postfix/aliases 中,我有:

    devnull:    /dev/null
    

    然后我运行:

    postmap aliases
    postfix reload
    

    最终结果是退回到 /dev/null。它可能无法捕捉到所有这些,所以 YMMV。请让我知道这是否适合您。

    • 2

相关问题

  • Postfix 在特定端口上接受邮件

  • 让 Postfix 以两种方式处理垃圾邮件

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 后缀电子邮件地址

  • 什么是最好的开源电子邮件解决方案包

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve