首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使后缀拒绝到:从网络中删除,但如果本地发送则接受,并且仍然接受来自web的To:virtual_mailbox_domains

使后缀拒绝到:从网络中删除,但如果本地发送则接受,并且仍然接受来自web的To:virtual_mailbox_domains
EN

Unix & Linux用户
提问于 2020-04-15 00:12:43
回答 1查看 52关注 0票数 0

我几乎在CentOS8上安装了完美的后缀(v3.3.1)。我的目标是:

  • 允许服务向linux用户发送电子邮件。(crontab到root)
  • 不接受linux用户的公共电子邮件。(root@domain.com)
  • 定义哪些用户要接收公共电子邮件,而不让linux用户为他们服务。

我成功地完成了上面的工作,但有一个副作用,我想不出如何预防。我迄今所做的一些工作:

代码语言:javascript
复制
myhostname = server.foobar.com
mydomain = foobar.com
myorigin = $myhostname
mydestination = $myhostname, localhost
mail_spool_directory = /var/spool/mail

virtual_transport = virtual
virtual_mailbox_domains = foobar.com
virtual_mailbox_base = /var/spool/email/

这个位告诉后缀,服务发送给用户的任何邮件都会被添加到$myhostname (user@server.foobar.com)中,并被传递到/var/spool/mail中的标准系统电子邮件中。

当user@foobar.com被视为虚拟域时,发送给该域中的linux用户的任何电子邮件都会查找虚拟用户,如果没有拒绝该电子邮件的邮件。

如果我添加一个虚拟用户(如网站管理员),发送给该用户(webmaster@foobar.com)的任何电子邮件都将被接受并传递到/var/spool/email/...,将公共邮件与系统电子邮件分开。

THE问题…

如果有人明智地从互联网上向主机名(user@server.foobar.com)发送电子邮件,那么它就会被接受并发送到/var/spool/mail中。我不知道该怎么阻止这件事。

我尝试过设置default_transport = error:Domain doesn't accept email.,但这并没有改变行为。docs不支持这个功能,但我在论坛上看到了它,所以我尝试了一下。

将linux用户保留为user@$myhostname对我来说并不重要,这是我唯一能找到的方法,让linux用户与同一域名上的虚拟用户保持分离,以防止垃圾邮件发送者攻击root@foobar.com、postmaster@foobar.com等。

其他配置设置(如果重要):

代码语言:javascript
复制
html_directory = no
local_recipient_maps =
luser_relay = postmaster
mail_spool_directory = /var/spool/mail
meta_directory = /etc/postfix
mydestination = $myhostname, localhost
mydomain = foobar.com
myhostname = server.foobar.com
mynetworks_style = host
myorigin = $myhostname
relay_domains =
relayhost =
virtual_mailbox_base = /var/spool/email/
virtual_mailbox_domains = foobar.com
virtual_transport = virtual

有什么办法吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-04-21 22:12:16

I找到了一个解决方案。

保持将本地用户与虚拟用户分离的myorigin = $myhostname方式,就像我在问题中所述的一样。

smtpd_recipient_restrictions部分的main.cf中,在permit_mynetworks添加指向列表的check_recipient_access之后。我使用了hash:,它看起来像:

代码语言:javascript
复制
# Don't include the "...", its just to show this is among other settings

smtpd_recipient_restrictions =
   ...
   permit_mynetworks
   check_recipient_access hash:/etc/postfix/block_mydomain
   ...

然后创建列表/哈希文件/etc/postfix/block_mydomain

代码语言:javascript
复制
hostname.domain.com     513 Invalid domain.

保存文件并运行postmap block_mydomain以创建*.db版本。

然后重新启动后缀systemctl restart postfix,这样就可以了。

我测试了它,我可以使用sendmail命令本地发送邮件给任何linux用户。Crontab可以向本地linux用户发送电子邮件。但是如果你从互联网上发送一封电子邮件到user@hostname.domain.com,它就会被反弹。如果你想知道,double@hostname.domain.com仍然会被接受和丢弃。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/580114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档