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 / 问题 / 644306
Accepted
Neel
Neel
Asked: 2014-11-15 01:07:49 +0800 CST2014-11-15 01:07:49 +0800 CST 2014-11-15 01:07:49 +0800 CST

对 alias_maps 和 virtual_alias_maps 感到困惑

  • 772

我已经重新阅读了关于这个的文档以及这里的其他帖子,这对我来说仍然很不清楚。我一直在测试各种东西以了解和之间的区别alias_maps,virtual_alias_maps我没有看到在 postfix 中使用这两个单独的设置。这是我到目前为止发现的(注意 - 我在与我的 Web 服务器相同的服务器中使用 postfix 作为空客户端仅发送电子邮件):

1) /etc/aliases 文件:

root: [email protected]

当我将上述内容添加到alias_maps. 但是,我也注意到一些其他服务(如mail命令)不尊重这一点,并尝试将电子邮件直接发送到不存在的 [email protected](我认为它myorigin是添加 @mydomain.com 的后缀设置) . 为了解决这个问题,我添加了virtual_alias_maps

2) /etc/postfix/虚拟

root     [email protected]

添加上述内容后,所有服务都使用此虚拟别名电子邮件。我还注意到,一旦我添加了上述内容,即使是 fail2ban 也开始忽略我在/etc/aliases/文件中的初始设置,并开始遵循虚拟文件中给出的电子邮件地址。

现在这让我更加困惑 -

  1. /etc/aliases/当虚拟别名映射中的电子邮件似乎覆盖它时,为什么我们需要它?

  2. 拥有这两个单独的别名映射的目的是什么?我们何时决定何时使用什么?

  3. 为什么fail2ban(配置为发送电子邮件至root@localhost)首先遵循alias_maps(/etc/aliases/)中给出的电子邮件地址,然后决定忽略该电子邮件地址virtual_alias_maps?

  4. 为什么不是所有服务都读取 /etc/aliases 中提到的电子邮件别名,并且它们仅在将电子邮件别名添加到虚拟别名映射中时才起作用?

从昨天开始,我已经花了几个小时,但仍然不确定。有人可以帮我解决我的困惑吗?

编辑:mail root这是使用命令 将电子邮件发送到 root 时的邮件日志。/etc/aliases/ 中提到了 root 的别名电子邮件。但是直到我将此根别名电子邮件从移动aliases_maps到virtual_aliases_maps

在以下内容中提到根电子邮件别名时记录/etc/aliases/:

Nov 14 16:39:27 Debian postfix/pickup[4339]: 0F12643432: uid=0 from=<root>

Nov 14 16:39:27 Debian postfix/cleanup[4495]: 0F12643432: message-id=<[email protected]>

Nov 14 16:39:27 Debian postfix/qmgr[4338]: 0F12643432: from=<[email protected]>, size=517, nrcpt=1 (queue active)

Nov 14 16:39:27 Debian postfix/error[4496]: 0F12643432: to=<[email protected]>, orig_to=<root>, relay=none, delay=0.04, delays=0.03/0/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to domainname.com[128.199.147.136]:25: Connection refused)

这是将 root 的电子邮件别名从更改后电子邮件传递成功的位置移动后的/etc/aliases/日志/etc/postfix/virtual:

Nov 14 16:44:58 Debian postfix/pickup[4545]: ADD9A43436: uid=0 from=<root>

Nov 14 16:44:58 Debian postfix/cleanup[4563]: ADD9A43436: message-id=<[email protected]>

Nov 14 16:44:58 Debian postfix/qmgr[4544]: ADD9A43436: from=<[email protected]>, size=453, nrcpt=1 (queue active)

Nov 14 16:45:00 Debian postfix/smtp[4551]: ADD9A43436: to=<[email protected]>, orig_to=<root>, relay=somesite.com[108.160.157.120]:25, delay=1.9, delays=0.03/0/0.97/0.88, dsn=2.0.0, status=sent (250 OK id=1XpEqC-0002ry-9s)

Nov 14 16:45:00 Debian postfix/qmgr[4544]: ADD9A43436: removed
debian
  • 2 2 个回答
  • 30619 Views

2 个回答

  • Voted
  1. Best Answer
    masegaloeh
    2014-11-15T07:38:19+08:002014-11-15T07:38:19+08:00

    一些背景

    Postfix 从旧的 sendmail 中继承了一些特性,比如 milter 和 aliases。该文件/etc/aliases是aliases继承的一部分,由alias_maps. 另一方面,后缀有virtual_maps/virtual_alias_maps用于处理电子邮件别名。那么它们之间有什么区别呢?

    范围alias_maps

    • 仅用于本地(8)交付

    • 根据postfix 中的地址类别,如果收件人域名在mydestination

    • 查找输入只是来自完整电子邮件地址的本地部分(例如来自 [email protected] 的 myuser)。它丢弃收件人的域部分。

    • 查找结果可以包含以下一项或多项:

      • 电子邮件地址:电子邮件将转发到电子邮件地址
      • /file/name:电子邮件将附加到/file/name
      • |command : 通过管道传送到命令的邮件
      • :include:/file/name : 包含来自/file/name的别名

    范围virtual_alias_maps

    • 由virtual(5) 交付使用

    • 总是在任何其他地址类之前第一次调用。它不关心收件人域是否列在mydestination或virtual_mailbox_domains其他地方。它将覆盖在其他地方定义的地址/别名。

    • 查找输入具有某种格式

      • user@domain:它将匹配user@domain字面意思

      • user :当 site 等于、 site 列在 或 列在or时,它将匹配用户@site 。此功能与本地别名 (5) 数据库的功能重叠。$myorigin$mydestination$inet_interfaces$proxy_interfaces

      • @domain:它将匹配任何用于发送的电子邮件,domain无论本地部分如何

    • 查找结果必须是

      • 合法的邮件地址
      • 没有域的用户。$myorigin如果append_at_myorigin设置为yes ,后缀将附加

    当虚拟别名映射中的电子邮件似乎覆盖它时,为什么我们需要 /etc/aliases?

    正如你在上面看到的,alias_maps(/etc/aliases)有一些额外的特性(除了转发),比如管道到命令。与此相反virtual_alias_maps,仅转发电子邮件。

    拥有这两个单独的别名映射的目的是什么?我们何时决定何时使用什么?

    alias_maps缺点是您无法区分原始收件人是[email protected]还是[email protected]。两者都将映射到alias_maps. 换句话说,您可以使用 定义不同的转发地址virtual_alias_maps。

    为什么fail2ban(配置为通过电子邮件发送到root@localhost)首先遵循alias_maps(/etc/aliases/)中给出的电子邮件地址,然后在添加virtual_alias_maps后决定忽略它?

    在添加 virtual_alias_maps 之前:root@localhost 是别名,alias_maps 因为 localhost 列在mydestination.

    定义 virtual_alias_maps 后:条目root(在 virtual_alias_maps 中)没有域部分,并且 localhost 已在 中列出mydestination,因此它将匹配root [email protected]。

    为什么不是所有服务都读取 /etc/aliases 中提到的电子邮件别名,并且它们仅在将电子邮件别名添加到虚拟别名映射中时才起作用?

    命令mail root将向 root 发送电子邮件。由于缺少域部分,postfix trivial-rewrite会将 myorigin 附加到域部分。因此,邮件将发送到root@myorigin。

    在 virtual_alias_maps 添加之前: 不幸的是,myorigin没有在 中列出mydestination,所以它不会被alias_maps.

    添加 virtual_alias_maps 后:条目root(在 virtual_alias_maps 中)没有域部分和 myorigin(显然)与 相同myorigin,因此它将匹配root [email protected]。

    • 49
  2. NickW
    2014-11-15T03:27:28+08:002014-11-15T03:27:28+08:00
    1. /etc/aliases是否主要用于本地交付,例如,从 cron 到 root 的邮件等,保持本地别名分开很好,virtual_alias_maps也可以与 SQL DB 一起使用,等等。

    2. virtual_alias_maps适用于当您拥有虚拟用户(和虚拟域)时,通常不会映射到系统用户,但如果您没有虚拟域且用户很少,则可能不需要这种功能。

    3. fail2ban 不在乎,它只是向 MTA 提交电子邮件。

    4. 您需要更具体,哪些服务,他们如何以及在哪里提交邮件?

    • 1

相关问题

  • 关闭 FTP

  • 如何在同一台电脑上从 putty 连接 debian vmware

  • debian- 文件到包的映射

  • Debian Ubuntu 网络管理器错误 [关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

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