Postfix 禁用“出站”电子邮件

Postfix 禁用“出站”电子邮件

我正在努力理解以下内容。是否可以有一个 postfix-“仅接收”服务器。例如 mx.example.com 应该只接收特定域列表的邮件。应该不可能通过它发送邮件。我似乎找不到任何解决这个问题的文章。我知道我可以禁用 sasl,但这并不能阻止无需身份验证的发送。这甚至可以完全禁用吗?

答案1

默认情况下,Postfix 允许来自受信任网络的无限制中继:

mynetworks(默认:参见“postconf -d”输出)

比“陌生人”拥有更多权限的“受信任”远程 SMTP 客户端列表。

特别是,“受信任”的 SMTP 客户端被允许通过 Postfix 中继邮件。请参阅smtpd_relay_restrictions参数说明。

默认值可能类似于以下内容,至少本地环回网络:

mynetworks = 127.0.0.0/8 198.51.100.100/24 [::1]/128 [fe80::]/64

默认值为smtpd_relay_restrictions

permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination

permit_mynetworks当客户端 IP 地址与 中列出的任何网络或网络地址匹配时,允许请求$mynetworks

因此,最简单的方法是permit_mynetworks从该列表中删除。(或者可以设置mynetworks不包括127.0.0.0/8,但这可能会导致其他问题。)

答案2

第一个也是最简单的方法

创建 iptables 规则以阻止所有外发电子邮件。示例:

iptables -A OUTPUT -p tcp --dport 25 -j DROP

但您也需要丢弃所有出站流量。您可以使用默认策略执行此操作:

iptables -P OUTPUT DROP

或者(更好的)默认策略是接受所有并在链末尾删除规则。并且您需要接受所有已建立和相关的流量。规则的反弹将如下所示:

iptables -P OUTPUT ACCEPT

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j DROP
iptables -A OUTPUT -s <type_host_ip> -j DROP

这只是规则集的一部分!!!您需要允许所有出站 IMAP 和 POP3 流量以及其他流量,例如 SSH!!!

第二种方法

创建运输地图:

> /etc/postfix/transport

在此文件中添加以下内容:

your_domain:
* local:some_local_user

每个域一行。

添加/etc/aliases此字符串:

some_local_user:  /dev/null

main.cf

luser_relay = some_local_user@your_domain.tld
transport_maps = hash:/etc/postfix/transport
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

逐个运行:

postmap /etc/postfix/transport
postmap /etc/aliases
service postfix reload

您可以使用拒绝动作图将拒绝信息发送回给用户。

用以下方式替换运输地图:

your_domain:
* error: not allowed!

相关内容