Sun Java System Messaging Server 6.3 管理指南

1.6 SMTP 轉送封鎖功能

依預設,將 Messaging Server 配置為阻斷嘗試的 SMTP 轉送,亦即拒絕嘗試將來自未認證的外部來源的郵件提交至外部位址 (外部系統指伺服器本身常駐的主機之外的任何其他系統)。此預設配置對於封鎖 SMTP 轉送非常主動,因為它將所有其他系統皆視為外部系統。

安裝後,請務必手動修改配置以滿足網站的需要。尤其是,Messaging Server 應該能夠識別其自身的內部系統及子網路,來自內部系統及子網路的 SMTP 轉送應該始終被接受。如果未更新此配置,則測試 MTA 配置時可能會遇到問題。

嘗試經由 Messaging Server 系統的 SMTP 伺服器 (用於外部位址) 提交郵件的 IMAP 和 POP 用戶端以及未被認證使用 SMTP AUTH (SASL) 的用戶端將發現其提交嘗試被拒絕。將哪些系統和子網路視為內部系統通常由 INTERNAL_IP 對映表控制,該表位於 msg-svr-base/config/mappings 檔案中。

例如,在 IP 位址為 192.45.67.89 的 Messaging Server 系統上,預設 INTERNAL_IP 對映表將顯示如下︰


INTERNAL_IP

  $(192.45.67.89/32)  $Y
  127.0.0.1  $Y
  *  $N

初始項目使用 $(IP-pattern/significant-prefix-bits) 語法,指定任何符合 192.45.67.89 完整 32 位元的 IP 位址應被視為內部位址。第二個項目將迴路 IP 位址 127.0.0.1 識別為內部位址。最後一個項目指定,所有其他 IP 位址均不應被視為內部位址。

您可以透過在最後一個 $N 項目前指定其他 IP 位址或子網路,來增加其他項目。這些項目必須在左邊指定 IP 位址或子網路 (使用 $(.../...) 語法指定子網路),在右邊指定 $Y。或者,您可以修改現有 $(.../...) 項目,以接受更一般的子網路。

例如,如果同一範例站點具有 C 類別網路,亦即該站點擁有所有 192.45.67.0 子網路,則該站點需要修改初始項目,以使對映表顯示如下:


INTERNAL_IP

  $(192.45.67.89/24)  $Y
  127.0.0.1  $Y
  *  $N

或者,如果該站點僅擁有 192.45.67.80-192.45.67.99 範圍內的那些 IP 位址,則需要使用:

INTERNAL_IP

! Match IP addresses in the range 192.45.67.80-192.45.67.95
  $(192.45.67.80/28)  $Y
! Match IP addresses in the range 192.45.67.96-192.45.67.99
  $(192.45.67.96/30)  $Y
  127.0.0.1  $Y
  *  $N

請注意,msg-svr-base/sbin/ imsimta test-match 公用程式可用於檢查 IP 位址是否符合特定的 $(.../...) 測試條件。imsimta test -mapping 公用程式更常用於檢查 INTERNAL_IP 對映表是否對各種 IP 位址輸入均傳回所需結果。

修改 INTERNAL_IP 對映表後,請務必執行 msg-svr-base/sbin/imsimta cnbuildmsg-svr-base/sbin/ imsimta restart 公用程式,以使變更生效。

有關對映檔案和一般對映表格式的資訊,以及有關 imsimta 指令行公用程式的資訊,可在「Sun Java System Messaging Server 6.3 Administration Reference」中的第 2 章「Message Transfer Agent Command-line Utilities」內找到。此外,有關 INTERNAL_IP 對映表的資訊可在18.6 新增 SMTP 轉送中找到。