• 沒有找到結果。

Linux郵件伺服器軟體比較

第二章 系統介紹

2.2 Linux郵件伺服器軟體比較

幾年以前,Linux 環境下可以選擇 的可以免費郵件服務器軟件 只有 Sendmail,但是由於 Sendmail 的缺陷,一些開發 者先後開發 了若幹種其他的郵件服務器軟件。當前,運行在 Linux 環境下免費的 郵件服務器,或者稱為 MTA(Mail Transfer Agent)有若幹種選擇,

比較常見的有 Sendmail、Qmail、Postfix、 exim 及 Zmailer 等等。

1 Sendmail

Sendmail 最初是由 Eric Allman 所設計出來的,由於當時各種 的通訊協定紛紛出籠,以及預期網路數量的暴增,促使他寫出了 delivermail,它就是 sendmail 的前身。但因 delivermail 缺乏足夠 的彈性來處理複雜的郵件繞送需求,它在實際的運用中難達到要求。

在 1980 年由於改用傳輸控制協定(Transmission Control Protocol,TCP)。另一改變,是將主機名稱的命名方式由扁平式 (flat,如 MIT-XX)改為階層式(hierarchical,如 XX.MIT.EDU)。在 這些改變之前,郵件是透過檔案傳輸協定(File Transfer Protocol,

FTP)傳送,之後則是透過一種新的協定傳送,稱為簡易郵件傳輸協定 (Simple Mail Transfer Protocol,SMTP)。因應這種種的改變,Eric 將 delivermail 發展成為 sendmail。為了確保郵件在網路間傳送時 都能遵守各網路所要求的規則,Eric 採取了一種「自由開放的」

(liberal)方式修改地址資訊,使其能滿足各種嚴苛的要求,而不是 讓郵件被莫名其妙的退回。當時 UUCP 的郵件完全沒有標頭

(header),所以 sendmail 必須無中生有,替郵件自動產生。sendmail 歷經了長時間的考驗,它不僅僅是一個程式,它是一種具有高度彈性 與可調整性的通用網路郵件繞送工具,不論網站規模的大小,也不論 郵件功能是複雜或簡單,sendmail 對於你的需求可說是一應俱全。

這些 sendmail 的優越之處,卻也正是其弱點所在,它的組態設定極 為複雜,sendmail 的程式非常難設定,甚至難以理解。舉例來說,

它的組態檔實在是嚇人。只要是提供 Internet 服務的 UNIX 主機,都 會用到 Sendmail 功能,它就像網路上的交通警察,負責替頻繁往來 的郵件疏通路徑。雖然位於核心地位,但 Sendmail 宛如 UNIX 系統 的蠻荒邊緣,換句話說,能弄清楚的人少之又少。主要功能有與 DNS 相互整合,確保安全性,儲列的管理,別名,郵寄名單,與資料統計 等等 。

2. Qmail

qmail 是有 Dan Bernstein 開發的可以自由 下載的 MTA,其第一 個 beta 版本 0.70.7 發布於 1996 年 1 月 24 日,1997 年 2 月發布了 1.0 版,當前版本是 1.03。

.Qmail 的特點

安全性:為了驗証 Qmail 的安全性,Qmail 的支持者甚至出資

$1000 懸賞尋找 Qmail 的安全漏洞,一年以後,該獎金沒有被領取,

而被捐獻給自由軟件基金會 。目前,Qmail 的作者也出資$500 來尋

求 Qmail 的安全漏洞。 速度:Qmail 在一個中等規模的系統可以投 遞大約百萬封郵件,甚至在一 台 486 一天上能處理超過 10 萬封郵 件,起支持並行投遞。Qmail 支持郵件的並行投 遞,同時可以投遞 大約 20 封郵件。目前郵件投遞的瓶頸在於 SMTP 協議,通過 STMP 向 另外一台互聯網主機投遞一封電子郵件大約需要花費 10 多秒鐘。

Qmail 的作者 提出了 QMTP(Quick Mail Transfer Protocol)來加速 郵件的投遞,並且在 Qmail 中得到支持。 Qmail 的設計目標是在一

首先:sendmail 是 發展歷史悠久的 MTA,當前的版本是 8.10.2。

當然,Sendmail 在可移植性、穩定 性及確保沒有 bug 方面有一定的 保証。但是 Internet 上有很多帖子都是關於如果 攻擊 Sendmail,

這對於管理員來說是一個噩夢。Sendmail 在發展過程中產生了一批 經驗豐富的 Sendmail 管理員,並且 Sendmail 有大量完整的文檔資

料,除了 Sendmail 的寶典: OReillys sendmail book written by Bryan Costales with Eric Allman 以外,網絡上有大量的 tutorial、

FAQ 和其他的資源。這些大量的文檔對於很好的利用 Sendmail 的各 Sendmail 更加穩定和安全。另外一個問題是 Sendmail 一般缺省配置 都是具有最小的安全特性,從而使 Sendmail 往往容易被攻 擊。如果 服務器所具有的特色功能。如不象 Sendmail,qmail 不對郵件信 封

的發送者的域名進行驗証,以確保域名的正確性。自身不提供對 RBL 的支持, 而需要 add-on 來實現。,而 Sendmail 支持 RBL。 同樣 Qmail 不能拒絕接收目的接收 人不存在信件,而是先將郵件接收下來,然 後返回查無此用戶的的郵件。Qmail 最大的問題就出在發送郵件給多 個接收者的處理上。若發送一個很大的郵件給同 一個域中的多個用 戶,Sendmail 將只向目的郵件服務器發送一個郵件拷貝。而 Qmail 將並行地連接多次,每次都發送一個拷貝給一個用戶。若用戶日常要 發送 大郵件給多個用戶,使用 Qmail 將浪費很多帶寬。可以這麼認 為:Sendmail 優化 節省帶寬資源,Qmail 優化節省時間。若用戶系 統有很好的帶寬,Qmail 將具有更 好的性能,而如果用戶系統的帶 寬資源有限,並且要發送很多郵件列表信息,則 Sendmail 效率更高 一些。Qmail 不支持.forward(.forward 在很多情況下對用戶很 有用 處);不使用/var/spool/mail,而是將郵件存放在用戶 home 目錄。

下面是一 些使用 Qmail 不容易完成的工作,要使用 Qmail 完成這些 工作,可能需要用戶自己 動手實現或者使用第三方提供的不夠可靠 的模塊。Qmail 的源代碼相對於 Sendmail 來說要更加容易理解,這 對於希望深入到內 部了解 MTA 機制的人員來說是一個優點。Qmail 在安全性方面也要穩定一些。Qmail 有很好的技術支持,但是沒有象 Sendmail 那樣被廣泛地應用和大量 的管理員用戶群。Qmail 的安裝 不象 Sendmail 那樣自動化,需要手工步驟。而且 Qmail 的文檔不如 Sendmail 那樣完整和豐富。 Qmail 的 add-ons 比 Sendmail 要少一 些。一般來說對於 經驗稍微少一些的管理員,選擇 Qmail 相對要好 一些。 Qmail 要簡單一些,而且其特色功能能滿足一般用戶的需求。

Sendmail 類似於 office 套 件,80%的功能往往都不被使用。這就使 Qmail 在一些場合可能被更受歡迎一些, 其具有一些 Sendmail 所沒 有的更流行和實用的特色功能,如:Qmail 具有內置的 pop3 支持。

Qmail 同樣支持如主機或用戶的偽裝、虛擬域等等。Qmail 的簡單性 也 使配置相對容易一些。 Qmail 被認為相對於 Sendmail 更加安全 和高效,運行 Qmail 的一台 pentium 機器一天可以處理大約 200,0000 條消息。

Qmail 相對於其他的 MTA 要簡單很多,主要體現在:

其他的 MTA 的 郵件轉發、郵件別名和郵件列表都是採用相互獨立 的機制,而 qmail 採用一種簡單的轉發(forwarding)機制來允許用 戶處理自己的郵件列表

其他的 MTA 都 提供快速而不安全的方式及慢的隊列方式的郵件投 遞機制;而 qmail 發送是由新郵件的出現而觸發的,所以其投遞只 有一種模式:快速的隊列方式

其他的 MTA 實 際上包括一個特定版本的 inetd 來監控 MTA 的 平 均負載,而 qmail 設計了內部機制來限制系統負載,所以

qmail-smtpd 能安全地從系統的 inet 來 運行 sendmail 有很多 的商 業支持,而且由於大量的用戶群,在互聯網上有大量的潛在技術支 持。而 Qmail 只有很有限的技術支持。有家公司 inter7.com 提供對

Qmail 的支 持,該公司同樣提供了免費的 add-ons,包括一個基於 web 的管理工具-QmailAdmin 及一個通過 vpopmail 的對虛擬域的支 持,甚至具有一個基於 web 的客戶借接口― SqWebMail。

Qmail 還具有一些其他的缺憾:

如它不是完全遵從標準,它不支持 DSN,作者認為 DSN 是一個即 將消亡的技術,而 Qmail 的 VERP 可以完成同樣的工作,而又不象 DSN 依賴於其他主機的支持。Qmail 另外一個問題是其不遵從支持 7bit 系統標準,而每次都發送 8bit。若郵件接收一 方不能處理這種情況,

就會出現郵件亂碼的情況。 從安全性來講,Sendmail 要比 Qmail 差 一些,Sendmail 在發展中出現過很多很著名的安全漏洞;而 Qmail 相對要 短小精悍,但是仍然提供了基本的 STMP 功能。而 Qmail 的代 碼注釋要少一些。 Qmail 的一個很好的特色是其支持一種可選的基 於目錄的郵件存儲格式,而不是 使用一個很大的文件來存儲用戶所 有的郵件。若用戶的郵件服務器進行很多的 POP3 服務,則這種郵件 存儲格式可以提高效率。但是遺憾的是 Pine 自身並不支持 這種存儲 格式,如果需要可以使用一些補丁來達到這個目的。

Qmail 的優點是:

每個用戶都可以 創建郵件列表而無須具有根用戶的權限,如用 戶"foo"可以創建名為 foo-slashdot, foo-linux,foo-chickens 的 郵件列表,為了提供更好的功能,有一個叫 ezmlm(EZ Mailing List Maker)的工具可以支持自動注冊和注銷、索引等 Majordomo 所具有

的各種功能,但是都是 CLI 驅動的,只需要編輯很少的文件。Qmail 非常適合在小 型系統下工作,一般只支持較少的用戶或用來管理郵 件列表。Qmail 速度快並且 簡單:Qmail 是當你希望安全切容易配置 的最佳的選擇;Qmail 可以在 2 個小時內 搞定配置,而 Sendmail 可 能在兩天內都搞不定。 rocketmail internic 等都使用 qmail 來構 建。

3. Postfix

Postfix 是一個由 IBM 資助下由 Wietse Venema 負責開發的自 由軟件工程的一個產物,其目的是為用戶提供除 sendmail 之外的郵 件服務器選擇 。Postfix 力圖做到快速、易於管理、提供盡可能的 安全性 ,同時盡量做到和 sendmail 郵件服務器保持兼容性以滿足用 戶的使用習慣。起初 ,Postfix 是以 VMailer 這個名字發布的,後 來由於商標上的原因改名為 Postfix 。

.主要設計目標

Postfix 工程的目標是實現一個郵件服務器,提供給用戶除 sendmail 以外的選 擇。其設計目標包括:性能: Postfix 要比同類 的服務器產品速度快三倍以上,一個安裝 Postfix 的台式機一天可 以收發百萬封信件。Postfix 設計中採用了 web 服務器的 的設計技 巧以減少進程創建開銷,並且採用了其他的一些文件訪問優化技術以 提 高效率,但同時保証了軟件的可靠性。 兼容性:Postfix 設計時

考慮了保持 Sendmail 的兼容性問題,以使移植變 的更加容易。

Postfix 支持/var[/spool]/mail, /etc/aliases, NIS, 及

~/.forward 等文件。然而 Postfix 為保証管理的簡單性,所以沒有 支持配置文件 sendmail.cf。 安全和健壯性:Postfix 設計上實現了 程序在過量負載情況下仍然保証程 序的可靠性。當出現本地文件系

~/.forward 等文件。然而 Postfix 為保証管理的簡單性,所以沒有 支持配置文件 sendmail.cf。 安全和健壯性:Postfix 設計上實現了 程序在過量負載情況下仍然保証程 序的可靠性。當出現本地文件系

相關文件