後綴別名和“冒充”問題
我最近開始在我的 postfix 伺服器上配置地址,偶然發現我的同事遇到了一個問題。
所以假設我有一個別名 testing@bar.ru
將郵件轉發到 somedude@gmail.com 和 vitali.r@foo.net
如果我們發送到同一個域,別名是,一切正常並且電子郵件已發送,但讓我們更深入地研究其他域問題,因為電子郵件會立即反彈並出現此錯誤:
<vitali.r@foo.net> (expanded from <alias@somedomain.com>): host mx.foo.net[144.76.75.247] said: 550 You must be authenticated (in reply to RCPT TO command)
幸運的是,這個 otherdomain 的所有者是我的同事,所以我先向他們提出了這個問題。我們進行了一些探勘並弄清楚了,該電子郵件不僅僅是從 vitali.r@foo.net 發送的,而是冒充其他人發送的。
為了更好地理解這個問題,我建議您查看發送到 somedude@gmail.com 的電子郵件的標題,該郵件被 foo.net 伺服器拒絕。
Delivered-To: somedude@gmail.com Received: by 10.140.108.54 with SMTP id i51csp86667qgf; Thu, 24 Apr 2014 04:54:02 -0700 (PDT) X-Received: by 10.14.246.1 with SMTP id p1mr2029071eer.20.1398340441786; Thu, 24 Apr 2014 04:54:01 -0700 (PDT) Return-Path: <vitali.r@foo.net> Received: from bar.ru (bar.ru. [47.175.193.55]) by mx.google.com with ESMTPS id p8si7998323eew.276.2014.04.24.04.54.01 for <somedude@gmail.com> (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 24 Apr 2014 04:54:01 -0700 (PDT) Received-SPF: fail (google.com: domain of vitali.r@foo.net does not designate 47.175.193.55 as permitted sender) client-ip=47.175.193.55; Authentication-Results: mx.google.com; spf=hardfail (google.com: domain of vitali.r@foo.net does not designate 47.175.193.55 as permitted sender) smtp.mail=vitali.r@foo.net; dkim=pass header.i=@foo.net Received: from mx.foo.net (mx.foo.net [144.76.75.247]) by bar.ru (Postfix) with ESMTPS id BC4E9BC0031 for <testing@bar.ru>; Thu, 24 Apr 2014 15:54:00 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=foo.net; s=default; h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=Sr6qzI6M/AdTYgu33PjdinGA745C3GUCsXevUC1TgDI=; b=DpO1qnFhn+Srhuuj+2bzi4bUOoMOAr4tSRqK/sbz0gt5Ogp+RK9BJQTpix5oPoebo7M7MYIV+zHlzTdJnpPa0FSa4WTewvYxOE81CX/+k/VLQdK1SPcbdPSRACzKsS3Jq7QE9XKK1maW8s0syGbToGT/KNXHkeBKtP6QhIrUs3Y4=; Envelope-to: testing@bar.ru Delivery-date: Thu, 24 Apr 2014 13:54:00 +0200 Message-ID: <5358FB52.8040508@foo.net> Date: Thu, 24 Apr 2014 14:53:54 +0300 From: Vitali R <vitali.r@foo.net> User-Agent: Mozilla/5.0 (X11; Linux i686; rv:16.0) Gecko/20121028 Thunderbird/16.0.2 MIME-Version: 1.0 To: testing@bar.ru Subject: hello world this is alias test Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit testest
更好理解的圖片:http: //i.imgur.com/XAVZY5L.png 所以有趣的部分是這一行
Received-SPF: fail (google.com: domain of vitali.r@foo.net does not designate 47.175.193.55 as permitted sender) client-ip=47.175.193.55;
他是正確的,11.111.111.11 確實沒有指定到 otherdomain.com,因為 47.175.193.55 是發送電子郵件的伺服器的 IP(通過別名)。
簡單來說,伺服器假裝自己是從vitali.r@foo.net 發送的電子郵件,而實際上它是從bar.ru 發送的,因此我的同事伺服器拒絕了一封信。
我知道這可能看起來令人困惑,但請以這種方式看待。您可以向幾乎任何伺服器發送一封信,告訴伺服器您是通過電子郵件發送的,而您顯然無權訪問。這幾乎就是別名問題在這裡發生的情況。
您對此類問題有何反應?您認為在這裡拒絕電子郵件是否合適?
感謝您的幫助。
postfix 接收郵件並將其轉發到別名的方式是完全正確的。當然,由於發件人來自外部域,並且您已經創建了外部域的別名,因此接收伺服器會注意到您確實不應該從您不負責的域發送郵件。一些伺服器反對向他們發送郵件,聲稱來自他們負責的域。這並非不合理,考慮到如今發送的垃圾郵件數量甚至可能是明智的。
有多種方法可以解決這個問題。
- 不要使用您不負責的域中的電子郵件創建別名。這是限制性的,但卻是解決問題的最簡單方法。
- 使用smtp_generic_maps,這將需要創建條目以將錯誤的地址映射到正確的地址,例如
vitali.r@foo.net vitali@bar.ru
,當然,這將需要為您要映射的每封電子郵件提供一個條目,並為您不知道的電子郵件提供一個通用條目:@foo.net info@bar.ru
將將任何@foo.net
地址重寫為info@bar.ru
,除了vitali.r@foo.net
。這具有消除原始發件人的副作用。如果您想回復發送原始郵件的人,這不是很好。- 如果別名被發送到的伺服器是您的帳戶,sender_dependent_relayhost_maps可能是一個有效的解決方案,因為它允許 postfix 提供遠端伺服器在這種情況下要求的身份驗證。缺點:只有當發送者是地圖中配置的那個時,它才會提供身份驗證,當然,它只會解決那個單一伺服器的問題。如果您只有幾個這樣的情況範例,那麼它可能是最好的解決方法。