使用 HAProxy 作为 PowerMTA 的正向代理

使用 HAProxy 作为 PowerMTA 的正向代理

PowerMTA 是否可以使用 HAProxy 作为正向代理,使用 HAProxy 所服务的 IP 地址传递邮件?

这不是 HAProxy 的典型用例,因为它不是负载平衡,而是通过 haproxy 连接以使用 HAProxy 所在的 IP 地址。他们在这里写了一篇关于此的文章:

https://www.postmastery.com/powermta-5-0-using-a-proxy-for-email-delivery/

我在 Google 上搜索过,但没找到太多内容。我找到的一篇文章与我想要的正好相反:

https://www.linuxbabe.com/mail-server/smtp-imap-proxy-with-haproxy-debian-ubuntu-centos

他们说使用以下内容:

frontend ft_smtp
      bind 12.34.56.78:25
      mode tcp
      timeout client 1m
      log global
      option tcplog
      default_backend bk_smtp

backend bk_smtp
      mode tcp
      log global
      option tcplog
      timeout server 1m
      timeout connect 7s
      server postfix 10.10.10.101:2525 send-proxy

我想连接到端口 2525 上的 HAProxy,并让它作为连接 smtp 服务器的代理,即[电子邮件保护]

我不确定我是否解释得足够清楚,如果没有,请告诉我。任何帮助都将不胜感激,因为我在网上找不到太多信息。

答案1

如果您想将 HAProxy 用作所谓的“正向代理”,那么您基本上可以翻转两端并最终得到一个反向代理,用于对您自己的邮件中继进行反向代理:

frontend ft_smtp
      bind 12.34.56.78:2525
      mode tcp
      timeout client 1m
      log global
      option tcplog
      default_backend bk_smtp

backend bk_smtp
      mode tcp
      log global
      option tcplog
      timeout server 1m
      timeout connect 7s
      server postfix 10.10.10.101:25 send-proxy

这意味着您可以连接到 2525/tcp 上的 HAProxy,并将转发到后端“bk_smtp”中指定端口上添加的服务器之一。使用“send-proxy”设置,您可以启用代理协议 v1,它将在会话开始时传输原始客户端的 IP。请注意,在这种情况下,10.10.10.101:25 上的应用程序必须支持代理协议 v1。

如果上游(读取“服务器”)不支持此功能,或者您希望使请求看起来像是来自运行 HAProxy 实例的节点,请删除“send-proxy”以禁用代理协议。

通过复制以“server”开头的行并为其分配您选择的名称以及邮件中继正在运行的正确 IP + 端口,您可以根据需要将任意数量的中继邮件服务器添加到您的后端。在默认设置中,HAProxy 将循环遍历它们。

答案2

前端 ft_smtp

绑定 12.34.56.78:2525 accept-proxy#绑定后写入accept-proxy。

后端 bk_smtp

服务器 s1 10.10.10.101:25#删除此行中的 send-proxy。

相关内容