我遇到了一点问题,因为我试图通过 Haproxy 将邮件转发到完全不同的服务器。
我遇到的问题是,有多个后端都指向不同的地方和不同的站点。我目前使用以下监听配置来执行此操作,但我知道 hdr_sub(host) 没有获得将电子邮件发送到其预期目的地的正确信息。
listen Mail_Handler
mode tcp
bind :25
# Set timeouts
timeout client 15s
timeout connect 30s
timeout server 30s
rate-limit sessions 30
################## ACL Handlers ####################
acl domain1.com hdr_sub(host) -i domain1.com
acl domain2.com hdr_sub(host) -i domain2.com
use_backend domain1.com if domain1.com
use_backend domain2.com if domain2.com
例如,我有 domain1.com 和 domain2.com,并且 domain1.com 的 MX 记录是
0 domain1.com
如何确保发送到 domain1.com 的 MX 处理程序的邮件确实到达 domain1.com,同样到达 domain2.com。我也在过滤邮件服务器,以防止潜在攻击者获取真实 IP
是否有任何特定的标头可用于确定邮件的目的地?或者还有其他方法可以做到这一点?如果有任何好处,我正在使用 Haproxy 1.4
感谢你的帮助。
答案1
正如解释的那样配置.txt,当你使用TCP模式时......“不会执行第7层检查。”并且hdr_sub是第7层检查(7.5.3.第7层匹配)。
您只能在第 4 级及以下级别工作(7.5.1. 在第 4 层及以下级别匹配)。