Exchange 佇列問題與解答保障電子郵件通訊協定安全、不明垃圾郵件及其他

Nino Bilic and Scott Landry

本專欄部分內容是根據 Windows Server 2008 的搶鮮版所撰寫。本文包含的資訊均有可能變更。

問:我想要使用安全的 SMTP,要如何讓 Exchange Server 在連接埠 465 上接聽 SMTP 呢?

答:很抱歉,您不能這麼做。您是可以讓任何 SMTP 虛擬伺服器或接收連接器在連接埠 465 上接聽沒錯,但是這樣並不能達到保護 SMTP 安全 (SMTPS) 的目的。

為什麼呢?讓我們倒帶一下來看看,SSL 有兩種:明確和隱含。起初,大部分的 SSL 都是隱含的,也就是說使用的是 SSL 的專用連接埠。例如,HTTP 預設是位在連接埠 80 上,但 HTTPS (含 SSL 的 HTTP) 是在連接埠 443 上。幾年前,網際網路社群決定 SSL 並不需要專用連接埠。明確 SSL 於焉誕生。

Netscape 已選定 465 作為 SMTPS 連接埠,但是 Exchange Server 在 SMTP 中並不具 SSL 功能。不過,Exchange 小組看出明確 SSL 的優勢,也就是用戶端和伺服器可以平等使用它,於是選擇為 SMTP 支援明確 SSL。

對於 SMTP,明確 SSL 是使用 STARTTLS ESMTP 命令來發出現有的通訊端即將受到保護的信號。其他大多數 SMTP 伺服器和用戶端廠商也已經實作 STARTTLS 命令,因此不太需要支援連接埠 465,反正它已經不是官方網際網路標準了。

至今,還是沒有任何一版的 Exchange Server 針對 SMTP 支援隱含 SSL。告訴 Exchange 接收連接器或 SMTP 虛擬伺服器在連接埠 465 上接聽也於事無補。因此,您必須使用可在連接埠 25 上支援 STARTTLS 的用戶端。如果不能使用連接埠 25,下一個合理的選擇是 587,這是用戶端 SMTP 提交的標準連接埠。許多現代的用戶端在 25 上都支援 STARTTLS,因此沒有必要加入對隱含 SSL 的支援。

順帶一提,Exchange POP3 和 IMAP4 通訊協定一直以來都支援隱含 SSL。但是在 Exchange Server 2007 中,現在也為這兩種通訊協定加入了對明確 SSL 的支援。不過支援這個新標準的用戶端並不多,所以隱含 SSL 還會存在好一陣子。

問:我有一堆郵件佇列在許多網域裡面,而且都不是我的使用者寄的。怎麼會這樣,還有我要怎麼防範?

答:這種情況到處可見,任何一個在網際網路上有伺服器的人都可能碰到這個問題。基本上,可能的起因有兩種:第一個起因是您在某種情況下開放供他人轉送 (請參閱 support.microsoft.com/kb/304897)。可是想也知道,您不會這麼做,對吧?(自 Exchange Server 2000 以來,預設會停用開放轉送),因此您比較有可能是遇到了所謂的未傳遞報告 (NDR) 垃圾郵件。在傳送來路不明之商業電子郵件 (UCE) 的過程中,濫發垃圾郵件者經常傳送到您網域中不存在的位址。您的伺服器試圖讓濫發垃圾郵件者知道使用者並不存在,但是不用說,濫發垃圾郵件者捏造了回傳位址。濫發垃圾郵件者可能捏造了無效的位址 (而導致 NDR 擱置一段時間直到逾時),或者它可能試圖使您的伺服器代替他,藉伺服器所產生的 NDR,以附件的形式傳送垃圾郵件給其他網域。

您可以停用 NDR,但要是合法的使用者不小心打錯位址,他永遠不會知道電子郵件並沒有送出,而可能遺失重要的訊息。下面有其他更好的解決方案。

首先,確定您未開放轉送功能 (只是要再次叮嚀一下)。接下來,開啟防垃圾郵件篩選之類的功能,例如智慧型郵件篩選器 (IMF) 或 Exchange Server 2007 內容篩選器,另外也開啟一些即時封鎖清單 (RBL)。這可以是在 Edge Transport role 或 Hub Transport role 中,但應該在頭一個躍點完成,因為 90% 以上的郵件量都是垃圾郵件,您肯定不希望讓伺服器忙著處理這些有的沒的垃圾。

最後,在第一部接受郵件進入您的環境的 Exchange Server 上啟用收件者篩選功能。這可讓您的伺服器在郵件進入網路之前加以拒絕。不小心打錯合法的位址還是收得到 NDR,但是 NDR 將由寄件者的伺服器產生。

問:我有部伺服器執行 Exchange Server 2000,還有一部伺服器執行 Exchange Server 2003,兩部皆可成功傳送郵件到網際網路。但安裝 Exchange Server 2007 後,現在每部伺服器上的信箱卻沒辦法傳送郵件。

答:如果您在過去只有一部 Exchange Server,可能不太熟悉連接器的概念。Exchange 連接器是邏輯路由組態物件,會告訴 Exchange 要將電子郵件導向何處。當您將 Exchange Server 2007 引進現有的組織時,為了路由郵件,您一定要有路由群組連接器和 SMTP 連接器。

您需要兩個路由群組連接器,一個從 Exchange Server 2007 路由群組連到 Exchange Server 2003 路由群組,而另一個剛好相反。您可以將此當成安裝程序的一部分,但若是您遺漏了或不確定這項作業,可以使用 Exchange 管理命令介面來檢查,然後在該處修正問題。如果不這麼做,將無法在伺服器之間傳送郵件。郵件可能到最後會佇列到無法到達的目的地。

若要路由網際網路郵件,您只需要一個 STMP 連接器 (在 Exchange Server 2007 也稱為傳送連接器)。您在 Exchange Server 2000 和 Exchange Server 2003 應該也要有一個 STMP 連接器,不過可能不用也行得通。所有網域的位址空間應該是 SMTP:*,而且您可以指定成要使用智慧主機或 DNS 來傳遞郵件。您可以選擇是要 Exchange Server 2007 伺服器還是舊版的伺服器來處理外寄的網際網路郵件,或者如果您希望每部伺服器處理自己的郵件,可以在這兩個路由群組上建立連接器。如果您已安裝 Edge Transport server role,也可以建立其中一個連接器作為 Edgesync 程序的一部分。

假如您之前在 SMTP 虛擬伺服器上設置了智慧主機,現在正是移除它的好時機。它應該只存在於 SMTP 連接器,而不能放在虛擬伺服器上,因為這樣會中斷路由群組連接器。

您也應該要知道輸入電子郵件是由 MX 記錄或防火牆轉寄至的 IP 所控制。Exchange 這一端要設定的不多,不過如果您還是有問題,以下這份文件應該蠻有用的:msexchangeteam.com/archive/2006/11/17/431555.aspx

問:為什麼我在 Exchange Server 2007 中收到同封郵件的多份日誌報告?

答:Exchange Server 2007 傳輸日誌代理程式會在分類後為郵件記錄日誌。分類程式將郵件分成兩部分 (也就是,複製郵件內文並在不同的副本上放置不同的信封收件者) 的理由有很多。當中一個例子是:因為日誌現在能夠告訴您通訊群組在郵件送出之時所屬的成員資格,因此您可能會收到多份報告的一種情況是由於巢狀通訊群組的關係。

報告多了這項功能,表示您可能會收到同封郵件的多份副本,各含有獨立的報告。實在沒什麼保證的方法可以確定某郵件的全部報告是否都已抵達,不過若是您要進行封存,記得與封存廠商合作,確定他知道您所做的變動。

問: Exchange Server 2007 中將未解析的郵件轉寄到主機的功能跑到哪裡去了?我現在該怎麼做?

答:被狗吃掉了。

這項特定功能在您擁有一部以上的 Exchange Server 時,成效其實不怎麼彰顯。不過,Exchange 已經有其他方法可以達成相同的效果,而且該方法的功能要強大許多。更具體的說,它可讓您與其他系統共用個別的 STMP 網域。於是拿掉了「轉寄未解析」功能,並更進一步發揮和簡化共用網域概念。在 Exchange Server 2007 中,只要前往 [組織] | [Hub Transport] | [已接受的網域],然後把網域類型從 [授權] 變更為 [內部轉送] 就可以了。對於某些環境來說,實際操作可能稍微更複雜一點,我們正努力更新一些說明文件。不過目前這應該可以幫得上忙。

問:我試著準備根網域進行 Exchange Server 2007 安裝,我嘗試執行 Exchange Server 2007 安裝程式的伺服器裝有 Exchange Server 2003 Exchange 系統管理員 (ESM),結果安裝程式失敗了。問題是出在哪裡?

答:簡單的說,在裝有任何 Exchange Server 2000 或 2003 元件的機器上執行任何一部分的 Exchange Server 2007 安裝程式並沒有受到支援。Exchange Server 2007 安裝程式會看到已安裝 Exchange Server 2003 ESM,因此安裝程式必要條件檢查便會失敗,並告訴您「這部電腦上已安裝舊版的 Exchange Server。請從不同的電腦執行 Exchange Server 2007 安裝程式,或移除舊版的 Exchange Server。」

應付這個問題最簡單的方法可能是直接從根網域中的其他伺服器執行 Exchange Server 2007 安裝程式,然後依此法來準備網域。如果這不可行,就必須先解除安裝 Exchange Server 2003 元件,才能繼續執行 Exchange Server 2007 安裝程式。

請記住,您可以使用 32 位元版本的 Exchange Server 2007 來準備網域,所以根網域中任何一部 32 位元伺服器通常都可行。如需有關此主題的詳細資訊,請參閱 technet.microsoft.com/library/bb232170.aspx。

順帶一提,這表示您不能將 Exchange Server 2003 ESM 和 Exchange Server 2007 Exchange 管理主控台安裝在相同的機器上,因為並不支援 Exchange Server 2003 和 Exchange Server 2007 管理工具共存於相同的機器上。如果您試圖將 Exchange Server 2007 安裝在已裝有任何 Exchange Server 2000 或 Exchange Server 2003 元件的機器上,它將會封鎖安裝程式。

最後要注意的是,您不應嘗試先安裝 Exchange Server 2007 管理工具,然後在相同機器上隨後安裝 Exchange Server 2003 工具。這是未經測試過的組態,而且可能會在您嘗試管理伺服器時產生非預期的結果。如果您需要從單一機器管理兩個伺服器版本,可以使用遠端桌面連線到其中一個版本,或使用虛擬機器在隔離環境內主控不同版本的管理工具。

問:我到底何時才能在 Windows Vista® 工作站上執行 Exchange Server 2007 管理工具?

答:Windows Vista 將在 Exchange Server 2007 SP1 發行時正式支援 Exchange Server 2007 管理工具。發行 Exchange Server 2007 SP1 時,將有一個包含 Exchange Server 2007 SP1 管理工具的套件供您下載。

問:那麼在 Windows Vista 或 Windows Server 2008 上執行 Exchange Server 2003 ESM 呢?這也辦得到嗎?

答:很遺憾這辦不到。Exchange Server 2007 SP1 之前任何版本的 Exchange Server 的管理工具在 Windows Vista 或 Windows Server 2008 上都沒有受到支援。這表示即使在 Windows Server 2008 發行後,也不支援在其上安裝 Exchange Server 2003 ESM。管理 Exchange Server 2003 伺服器必須從 Windows Server 2003 或 Windows XP 工作站來進行,或者,您可以改從任何 OS 進行遠端桌面連線。

問:我的網域中執行了好幾部 Exchange Server 2003 伺服器,我能夠將網域控制站升級至 Windows Server 2008 網域控制站嗎?

答:當然可以,在擁有 Windows Server 2008 網域控制站的網域內執行 Exchange Server 2003 SP2 有受到支援。請注意 Exchange Server 並不能使用 Windows Server 2008 唯讀網域控制站 (RODC) 或唯讀通用類別目錄伺服器 (ROGC)。手動指定 (寫在程式中) Exchange Server 來使用 Windows Server 2008 RODC/ROGC 可能會導致未預期的行為。

Nino Bilic 是 Exchange Server 的技術支援專案經理,他把閒暇時間都花在探索伺服器對伺服器通訊的美妙之處,每晚睡前必讀大量的網路監視器追蹤 (Netmon trace) 資料。

Scott Landry是 Exchange Server 的支援高階工程師,他隨身必帶毛巾、一本指南,還有他最信賴的 Windows Mible 電話。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.