我正在尝试通过 postfix 代理(SSH 隧道或 SOCKET 代理)发送邮件。
我尝试做类似这样的模式:
我使用的是没有防火墙的 MacO。为了简化,省略了通过浏览器接收的客户端。该方案的最后一个元素是邮件服务器。
我想在电子邮件标题中替换我的 IP,仅用于隐私(但它将被 SOCKET 代理或 SSH 服务器记录)。
以下是标准邮件标头:
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from host.servermailsender.com (unknown [111.111.111.111]) by
mail.servermailreceiver.com (Postfix) with ESMTP id xxxxxxxxxxx for
<[email protected]>; Fri, 20 Mar 2020 00:24:34 +0000 (UTC)
Received: by host.servermailsender.com (Postfix, from userid 501) id 6B2xxxxxxD9E;
Fri, 20 Mar 2020 01:24:33 +0100 (CET)
Authentication-Results: mail.servermailreceiver.com; dmarc=none (p=none dis=none)
header.from=servermailsender.com
Authentication-Results: mail.servermailreceiver.com; spf=none
[email protected]
Authentication-Results: mail.servermailreceiver.com; dkim=none
To: [email protected]
Subject: Subject
From: A <[email protected]>
Reply-To: A <[email protected]>
Mime-Version: 1.0
Content-Type: text/html
Message-Id: <[email protected]>
.....
我不想表现出111.111.111.111(第四行)我想要改变它并且我想要代理我的 IP。
我现在做的事情是:
1)在我的计算机(127.0.0.1)和代理(proxyserver.com)之间创建一个隧道,在我的计算机的终端上写入
ssh -D 2525 [email protected]
2)在主配置文件我添加了行relayhost = [127.0.0.1]:2525
但这种配置不起作用。
接收客户端未收到任何邮件。
请帮助。
编辑:
header_checks mods ≠ 代理 IP
“Johannes H.”告诉我使用带有预检查的 header_checks,但正如你所见,有两个字段采用了这个词已收到
这是由 127.0.0.1 本地写入的
已接收:由 host.servermailsender.com (Postfix,来自用户 ID 501) ID 6B2xxxxxxD9E;2020 年 3 月 20 日星期五 01:24:33 +0100 (CET)
这是由 servermailreceiver.com 远程编写的
已收到:来自 host.servermailsender.com(未知 [111.111.111.111]),由 servermailreceiver.com (Postfix) 发送,ESMTP id 为 xxxxxxxxxxx;2020 年 3 月 20 日星期五 00:24:34 +0000 (UTC)
第二,无法通过更改我的机器上的预检查(本地 127.0.0.1)和(互联网上的 111.111.111.111)在本地进行编辑。
为此,我想通过 SOCKET 代理 v4 或 v5 或通过 SSH 隧道在 127.0.0.1 上代理我的 postifx。
答案1
如果您只想删除客户端 IP,那么有比代理服务器更简单的方法。您可以使用标头检查来删除外发电子邮件中的该部分:
主配置文件
header_checks = pcre:/etc/postfix/header_checks
header_checks
/^(Received:)\s+from.*(by your.hostname.*with ESMTPSA.*)$/ REPLACE $1 $2
如果您确实需要代理(虽然我不太明白为什么您的示例中需要代理),则需要在中间/代理服务器上安装充当代理的邮件服务器。 Postfix 可以充当 SMTP 代理,NGINX(通常是 Web 服务器/代理)也可以,还有一些专用软件。
如果代理上没有任何软件,您所能做的就是通过它实际建立隧道 - 在这种情况下,您需要绑定代理上的端口并将其转发到 SMTP 服务器(而不是从您的 PC 建立隧道到代理),然后指示您的 MUA 通过代理而不是您的实际 SMTP 服务器发送电子邮件。
但是如果 SMTP 服务器是公开可访问的,那么这样做实际上没有任何好处。实际上到达代理的任何东西都会通过隧道转发,包括可能的攻击。