none
mail relay test 的奇怪訊息... RRS feed

  • 問題

  • 請教各位專家...

     

    就是我到 http://www.abuse.net/cgi-bin/relaytest 來測試 mail relay

     

    卻出現奇怪的狀況:

     

    Relay test 1

    >>> RSET
    <<< 250 2.0.0 Resetting
    >>> MAIL FROM:<spamtest@abuse.net>
    <<< 250 2.1.0 spamtest@abuse.net....Sender OK
    >>> RCPT TO:<securitytest@abuse.net>
    <<< 550 5.7.1 Unable to relay for securitytest@abuse.net

    Relay test 2

    >>> RSET
    <<< 250 2.0.0 Resetting
    >>> MAIL FROM:<spamtest>
    <<< 250 2.1.0 spamtest@xxx.no-ip.org....Sender OK
    >>> RCPT TO:<securitytest@abuse.net>
    <<< 550 5.7.1 Unable to relay for securitytest@abuse.net

     

    關於 Relay test 1 我可以理解

    可是 Relay test 2 中的第四行我覺得很奇怪

    因為我的 AD 裡根本就沒有這個帳號,為什麼它可以回應 Sender OK

    請問要如何設定才可讓第四行的回應是:

    有這帳號才回應 Sender OK
    沒有這帳號就回應 Sender not OK(或是類似失敗,無此帳號的訊息),而讓這樣的 mail relay test 的結果是失敗的...

     

    謝謝...


    2007年6月24日 上午 05:20

解答

  • SMTP Protocol的設計本身就無法事先檢查Sender的欄位值是否正確

    因為Sender可能來自N個變數,試問要如何檢查?

    關於你提到的垃圾信件問題,在Exchagne 2003中若你可拆成兩個SMTP VS來做過濾

    一個是正式對外讓別人寄信進來的SMTP VS然後去設定只要是xxx@公司Domain就一律拒收

    另一個SMTP VS則是保留給POP3 Client使用

    此外在Exchange中使用Outlook Express POP3 Client or Outlook MAPI Client預設情況下

    是不允許使用自己帳號以外的帳戶做為寄件者的

    另一種情況是別人根本就不需要經由你的Mail Server寄垃圾信件給你

    一樣可以在Sender中輸入xxx@公司的Domain然後寄大量的垃圾信件到你公司去

    此種情況你應該啟用Exchange 2003/2007的收件者篩選功能,先過濾掉不在AD目錄中的使用者

    以減少垃圾郵件的量

    2007年6月25日 上午 12:14

所有回覆

  • 這是正常的!

    SMTP Protocol當初在設計的時候本來就不會針對Sender做檢查的

    Exchange 2000/2003/2007預設是禁止Mail Relay Test的,如果你是在上述的Mail System做Mail relay test

    會出現失敗才是正常的,否則那就代表你的Mail Server是Open relay.

    2007年6月24日 下午 02:01
  • 專家你好,,

     

    在下是知道最後的正常結果是要 unable to relay

    而在下的疑問是在第四行

     

    Relay test 2

    >>> RSET
    <<< 250 2.0.0 Resetting
    >>> MAIL FROM:<spamtest>
    <<< 250 2.1.0 spamtest@xxx.no-ip.org....Sender OK

     

    我是希望 mail server 可以在第四行回覆沒有這個帳號

    因為事實上在我的 server 上就沒有這個帳號,為什麼會回應有這個寄件者呢?

     

    因為如果這樣可以 ok,那有心人士不就可以隨便建立亂數的帳號再加上我的 server 的 domain 的e-mail add

    就可以寄一堆沒用的 mail 給我 server 裡的每個使用者

    然後又無法用擋 ip 或 domain 的方法來擋,因為等於是在擋自己

    請問要如何設定才可以造成雖然 @domain 跟我 server 一樣,但是 sender 不是我 server 中的帳號

    在第四行的判斷就會失敗

    因為這樣多多少少可以減少垃圾信進來公司內

    謝謝...

    2007年6月24日 下午 03:08
  • SMTP Protocol的設計本身就無法事先檢查Sender的欄位值是否正確

    因為Sender可能來自N個變數,試問要如何檢查?

    關於你提到的垃圾信件問題,在Exchagne 2003中若你可拆成兩個SMTP VS來做過濾

    一個是正式對外讓別人寄信進來的SMTP VS然後去設定只要是xxx@公司Domain就一律拒收

    另一個SMTP VS則是保留給POP3 Client使用

    此外在Exchange中使用Outlook Express POP3 Client or Outlook MAPI Client預設情況下

    是不允許使用自己帳號以外的帳戶做為寄件者的

    另一種情況是別人根本就不需要經由你的Mail Server寄垃圾信件給你

    一樣可以在Sender中輸入xxx@公司的Domain然後寄大量的垃圾信件到你公司去

    此種情況你應該啟用Exchange 2003/2007的收件者篩選功能,先過濾掉不在AD目錄中的使用者

    以減少垃圾郵件的量

    2007年6月25日 上午 12:14
  • 您好,不好意思,您所說的問題與內容我有點搞混了

     

    若是以此內容來說sender 是指寄件者,並非來自於收件的伺服內的帳號(因為設定時網域即不同)

    若是網域相同,則收件伺服器就會檢查自身帳號,這樣子可避免外部使用偽冒 local domain 的帳號來寄送給其他的user

     

    所以sender 本來就不是您 server 中的帳號不是嗎??

    這點我看不太懂

    2007年6月25日 上午 01:32
  • 專家你好...

     

    我現在的問題不是擔心公司內的人用別人或是自己的帳號在公司內來寄垃圾信

    而是擔心公司外部的人

    我知道外面的人可以用軟體寄垃圾信時有時都是用=> 亂數帳號@公司domain 當 sender

    而在 sender 中出現的帳號大部份都不是公司 ad 中有的帳號

    小部份才會是,除非那個外在人士有特別設定過只用公司 ad 中有的帳號來當 sender

    那這個我就只能用信件主旨或內容來做判斷

     

    我是希望當有"外部"來的信它的 sender add 的帳號(但帳號後面是 @公司domain)不是公司 ad 的帳號時

    mail server 就不要回應對方 sender ok 而繼續跑下面的步驟

    而是回應沒這個帳號或 sender,那就可以防止外面的人用  亂數帳號@公司domain 來寄垃圾信到公司內

    Relay test 1 所示的第四行,回應 sender ok 我是可以接受的,因為 @domain 是別人的,我管不了..

    但 Relay test 2 所示的第四行,假設那是我公司的domain name ,但是根本就沒那個帳號

    但是卻也回應 sender ok,這點就蠻奇怪的了,如果是用公司domain 有的帳號來當 sender 可以 ok 那就算了

    就好像一封信的寄件者地址是不存在的,但郵局卻認為是存在的,這不是很奇怪嗎?

    (我知道現實生活的確是有人寄信地址是亂寫而且郵局也不會去查是不是有這地址)

    不過在電腦系統方面我希望可以在這關卡做個判斷

    這樣就可以擋掉如 Relay test 2 中第四行以 @公司domain 為底但帳號不是公司 ad 內帳號的信了

    不過如果 microsoft 或 exchange 沒有方法可以處理這樣的事件,那就 let it be 好了.....謝謝...

     

    另外關於專家所說的"收件者篩選功能",在下也已經有設定好且測試結果是成功的

    我設定好後用  dnsstuff 網站的 e-mail test 來測試  Relay test 2 中的 spamtest@xxx.no-ip.org

    結果是回應 unknow user,結果正確.

    但是...用 mail relay test 的網站來測試卻會回應這樣的帳號是 ok 的

    這樣不是蠻奇怪的嗎?

    還是說 mail server 只會判斷收件者帳號(@自己公司domain)有沒有存在

    不會去判斷寄件者帳號(@自己公司domain) 有沒有存在?

    謝謝...

     

    Relay test 1

    >>> RSET
    <<< 250 2.0.0 Resetting
    >>> MAIL FROM:<spamtest@abuse.net>
    <<< 250 2.1.0 spamtest@abuse.net....Sender OK
    >>> RCPT TO:<securitytest@abuse.net>
    <<< 550 5.7.1 Unable to relay for securitytest@abuse.net

    Relay test 2

    >>> RSET
    <<< 250 2.0.0 Resetting
    >>> MAIL FROM:<spamtest>
    <<< 250 2.1.0 spamtest@xxx.no-ip.org....Sender OK

    2007年6月25日 上午 04:55
  •  reg_yeh 寫信:

    您好,不好意思,您所說的問題與內容我有點搞混了

     

    若是以此內容來說sender 是指寄件者,並非來自於收件的伺服內的帳號(因為設定時網域即不同)

    若是網域相同,則收件伺服器就會檢查自身帳號,這樣子可避免外部使用偽冒 local domain 的帳號來寄送給其他的user

     

    所以sender 本來就不是您 server 中的帳號不是嗎??

    這點我看不太懂

     

    就是因為外面很多垃圾信都會用 @公司domain ,但是帳號不在公司 ad 中的帳號來寄
    而 mail server 自己卻會認為是 ok 而收進來,進來後再去依信件內容判斷是不是垃圾信那又是另一回事
    請問如果你公司的 mail server 一直收到的垃圾信都是 @公司domain ,但是帳號都不是在你公司 ad 中有的帳號
    你會不會覺得不合理?

     

    而且如果在 mail server 中用設定條件的方式來擋,又會產生矛盾的地方
    是要擋 @公司domain 也不行,會擋到公司的人在外面寄的信
    只接受 ad 所存在的帳號的信也不行,會擋到外面別人公司寄的信
    除非能有雙判斷,就是先判斷是不是 @公司domain
    如果不是...就回應 sender ok 再繼續跑下面的流程
    如果是...再判斷帳號是不是公司 ad 中有的帳號...
    如果是...就回應 sender ok 再繼續跑下面的流程
    如果不是...就"應該"要回應沒這個帳號而終止流程

     

    因為如果連不在公司 ad 中的帳號都可以用 @公司domain 來寄信
    那不是很奇怪嗎?
    如果是用 亂數@亂數.com 這樣的 e-mail 來寄那是可以接受的情況
    因為這其中會包含正式用途的外部公司寄來的信
    試想...如果是公司內的人寄的信,不論是在外面或是在公司內
    應該都會用 @公司domain 來寄信,而且是用自己的帳號
    但如果有人是用 "不存在的帳號"@公司domain 來寄信,這樣的目的就很奇怪了(除非是想寄匿名信)
    我自己測試過的確可以,是用 pop3 的方式,然後不要勾驗證
    就可以隨便建個帳號,密碼空白,然後寄信給自己公司內的人,而且對方還真的有收到...哈
    (但如果用隨便的帳號想透過 公司 mail servr 轉送到別人公司是不行啦!因為我在 mail server 上有勾選一定要通過驗証的才可以轉送)
    所以...如果是用 @公司domain 寄 @公司domain 就可以逃過驗証的過程
    所以...別人如果想透過公司mail server 轉送信件(垃圾信)可以防制
    但...如果是只送垃圾信到自己公司,而且是用 "不存在的帳號"@公司domain 來當寄件者,請問要如何防?
    我自己是想可以用雙判斷,可是不知 exchange 可不可以做到?
    謝謝...

    2007年6月25日 上午 06:09
  • Jammy 在之前的回覆已經提到了,標準的 SMTP 通訊協定不會去驗證寄件者真偽,所以收件伺服器端會來者不拒照單全收,後來因為垃圾郵件氾濫,各家廠商才推出 SenderID、Domain Key 這樣的驗證機制。不過垃圾郵件 "垃圾" 的地方是在於郵件的內容,而不是在於寄件者的真偽。
    2007年6月25日 上午 06:39
  •  Dainese 寫信:
    Jammy 在之前的回覆已經提到了,標準的 SMTP 通訊協定不會去驗證寄件者真偽,所以收件伺服器端會來者不拒照單全收,後來因為垃圾郵件氾濫,各家廠商才推出 SenderID、Domain Key 這樣的驗證機制。不過垃圾郵件 "垃圾" 的地方是在於郵件的內容,而不是在於寄件者的真偽。

     

    專家你好...

     

    在下也知道"大部份"的垃圾信的判斷標準是由內容決定

    而我只是希望能"再多一個方法"來防杜垃圾信的進入

    因為有些寄垃圾信的公司的確是會用對方 domain 的 e-mail add 來寄

    如果能再多一種判斷的方式,那麼如是使用這種方式寄來的垃圾信就連被判斷是不是垃圾信的機會都沒有就被拒絕掉了.

    就更能減少 users 收到垃圾信的機率了

    如果真的是無法在 exchange server 上再增加這樣的限制,那就 let it be 好了

    謝謝專家的解釋....

    2007年6月25日 上午 07:19
  • 這是當初制定 SMTP 通訊協定的缺陷,不管是使用何種郵件伺服器只要是使用公開的 SMTP 則會碰到這種窘境。況且 Exchange 2003 已經提供 SenderID、IMF (還提供特徵更新) 及各項連線篩選器,在阻擋垃圾郵件已有相當不錯的效果了,當然還有許多第三方的軟硬體都提供很不錯的 AntiSpam 功能,使用者有相當多的選擇性。
    2007年6月25日 上午 08:27
  • 建議您先看一下我先前的回覆喲!

    在Exchange中的作法是建兩個不同的SMTP VS

    其中對外的SMTP VS(對應到MX Record)在寄件者篩選將"@公司域名"都過濾掉

    另一個SMTP VS不對外(不在MX Record中,亦即外部無法經由DNS MX Record找到),則純開放給公司的POP3 Client使用

    假設如果貴公司都是使用MAPI Client就不會有你所說的困擾,因為只要在原本的SMTP VS中直接套用寄件者篩選將@公司域名給直接過濾掉即可

     Terry553778 寫信:

     Dainese 寫信:
    Jammy 在之前的回覆已經提到了,標準的 SMTP 通訊協定不會去驗證寄件者真偽,所以收件伺服器端會來者不拒照單全收,後來因為垃圾郵件氾濫,各家廠商才推出 SenderID、Domain Key 這樣的驗證機制。不過垃圾郵件 "垃圾" 的地方是在於郵件的內容,而不是在於寄件者的真偽。

     

    專家你好...

     

    在下也知道"大部份"的垃圾信的判斷標準是由內容決定

    而我只是希望能"再多一個方法"來防杜垃圾信的進入

    因為有些寄垃圾信的公司的確是會用對方 domain 的 e-mail add 來寄

    如果能再多一種判斷的方式,那麼如是使用這種方式寄來的垃圾信就連被判斷是不是垃圾信的機會都沒有就被拒絕掉了.

    就更能減少 users 收到垃圾信的機率了

    如果真的是無法在 exchange server 上再增加這樣的限制,那就 let it be 好了

    謝謝專家的解釋....

    2007年6月25日 下午 03:43
  • 可是如果對外把 @公司域名 過濾掉,那假設有員工在家是用 pop3 的方式使用公司的 e-mail 來寄信給公司其他人,那是否也會被過濾掉呢?

    在公司內的人我們都是用 outlook 設定成連接 exchange server 的方式來收發信,沒有在用 pop3 的方式收發信

    而且在公司內我也不會擔心有人會另外建立一個假的 pop3 型式的帳號來寄垃圾信,應該沒人會那麼閒

    所以想要防止的("ad沒有的帳號"@公司域名)都是外部寄到公司內的

    2007年6月26日 下午 12:54
  • 員工所使用的那個 SMTP 虛擬伺服器不要套用篩選器自然就不會進行過濾的動作。其實您的需求很簡單,只要使用篩選不在目錄中的使用者就可以了。
    2007年6月26日 下午 01:09