選擇代替Sendmail的郵件伺服器軟體

一隻小螞蟻吆發表於2020-04-06



電子郵件是人們在網上最常使用的通訊工具之一,它已經成為我們網路生活中不可或缺的一部分,因此建立一個安全、可靠的電子郵件系統是十分必要的。由於電子郵件的使用有著悠久的歷史,因此有關電子郵件伺服器系統的軟體非常豐富,不過目前使用最廣泛的還是一種自由軟體──sendmail,它支撐著當前Internet郵件系統的主體。不過sendmail也有種種的不足,接下來我就給大家介紹一下Sendmail的弱點,以及兩種可用於替換Sendmail的郵件伺服器軟體,希望大家在讀完這篇文章之後能夠對目前的郵件伺服器系統軟體有一個深入的瞭解。
  Sendmail的不足之處
  無論從使用的廣泛程度,還是從程式碼的複雜程度來講,sendmail都是一款非常優秀的軟體。如果使用它來構建網站的電子郵件系統,基本上不必費心,因為幾乎所有的Unix預設配置中都內建這個軟體,只需要設定好作業系統,它就能立即運轉起來。然而,Internet使用者的要求更為苛刻,紛紛指出sendmail中包含的各個不足之處。
  1、sendmail的安全性較差,這是因為當其作者Eric Allman最初開始寫作這個軟體的時候,Internet的使用者還很少,因而安全性並不沒有得到大家的重視。由於郵件系統需要處理的是外部傳送來的各種各樣的資訊,甚至包含一些惡意資料,然而sendmail在大多數系統中都是以root身份執行,一旦出現問題,就會對系統安全造成嚴重影響。在這種情況下,要防止出現安全問題,僅僅依賴程式本身是不可取的,應該從系統結構出發,使程式擁有的特殊許可權限制到最小。
  2、由於其早期的Internet使用者數量及郵件數量都相當小,Sendmail的系統結構並不適合較大的負載,對於高負載的郵件系統,需要對Sendmail進行復雜的調整。例如,通常情況下sendmail只啟動一個程式順序向外傳送郵件,如果郵件較多時就要花費相當長的時間。
  3、Sendmail的設定相當複雜,對於使用預設設定來收發電子郵件,問題並不存在。當管理員打算進行一些特殊設定,以便利用Sendmail提供的複雜郵件處理能力時,就不得不面對複雜的巨集和正規表示式。雖然現在Sendmail使用了巨集預處理程式m4使設定更易於理解一些,但是掌握Sendmail的設定仍然是對系統管理員的一大挑戰。
  第一種替換選擇Qmail
  為了解決sendmail的安全問題,整個系統結構需要重新設計。基本的原則是將系統劃分為不同的模組,有負責接收外部郵件的,有管理緩衝目錄中待傳送的郵件佇列的,有將郵件傳送到遠端伺服器或本地使用者的。Qmail就是按照這個原則進行的設計,它由多個不同功能的小程式組成,只有必要的程式才是setuid程式(即以root使用者許可權執行),這樣就減少了安全隱患,並且由於這些程式都比較簡單一些,因此就可以達到較高的安全性。
  這種按照Unix思路的模組化設計方法也使得Qmail具備較高的效能,因為如果需要,Qmail可以啟動某個模組的多個例項來完成同一個任務,例如啟動多個傳送程式同時向外傳送郵件,這對於提供郵件列表服務的郵件系統是非常有益的。這種方式也使得Qmail要佔用較大的網路頻寬,如果頻寬有限,效果反而不好,但在當前網路效能大幅度提高的情況下,這種方式是非常合適的。
  Qmail還提供一些非常有用的特色來增強系統的可靠性,例如,它提出了Maildir格式的郵件儲存方式,這使得通過網路檔案系統NFS存取郵件成為可能。此外,Qmail還具備一些非常別緻的特色,它不僅僅提供了與Sendmail相容的方式來處理轉發、別名等能力,還可以用以Sendmail完全不同的方式來提供這些功能。從它的編譯安裝方式、提供的擴充套件功能和原始碼的風格,可以看出其作者Dan Bernstein是一個極具個性化的程式設計師。正因為如此,對於Qmail的某些方面,有著一些爭論,例如有些人認為Qmail的安裝設定並不易於理解,很容易讓人糊塗,而另一些人的看法則相反。基本上這是因為Qmail提供解決問題的方式,和Sendmail不大相同的緣故,這樣對那些不太熟悉Sendmail的郵件系統管理員,反而更容易接受Qmail一些。


第二種替換選擇Postfix
  Postfix同樣也是採用了模組化的方式,但與Qmail不同的是,Postfix使用了一個主控程式進行監控。Postfix在很多方面都考慮到了安全問題,它甚至不向root分發電子郵件,以避免以root身份讀寫檔案或啟動外部程式。考慮到它的作者Wietse Venema曾編寫了著名的安全軟體TcpWrapper,並是SATAN程式的合作人員之一,Postfix的安全性是非常值得信賴的。
  同樣,Postfix的效能也非常不錯,甚至在Qmail作者自己進行的測試中也表明,Postfix的效能和Qmail基本相當。但Postfix佔用的記憶體要大一些,這主要是由於Postfix和Qmail在系統結構上的差異造成的。
  與Qmail不同,Postfix更著眼於作為Sendmail的直接替換,使用Postfix替換Sendmail卻相當簡單,因為Postfix使用的很多檔案和Sendmail一致,只需要在配置檔案中指明原有Sendmail配置檔案的位置就可以了,Postfix甚至還提供了sendmail和mailq程式,以保持相容性。基本上,可以直接從Sendmail轉換為使用Postfix,而不需要額外的設定。Postfix提供的安裝配置方式也相當簡單,它使用中心化的配置檔案和非常易理解的配置指令。
  Postfix提供的一些強大的功能主要在於多種資料庫表查詢方式,例如它支援DB、DBM、passwd檔案、正規表示式、MySQL資料庫以及LDAP方式的查詢,用於支援系統級的別名、虛擬主機等。雖然在Qmail中也能支援這些功能,但沒有象Postfix那樣統一、簡潔。此外,更改Postfix的設定之後,也不需要重新啟動整個系統,只需要使用postfix reload就能完全重新整理配置,這也避免了丟失郵件的可能性。
  事實上,除了Qmail和Postfix之外,還有很多種郵件系統,例如Smail、Exim等,然而毫無疑問Qmail和Postfix是其中最優秀的,也是Sendmail最有力的競爭者。此外,還有一些商業郵件伺服器產品,但一般情況下,購買商業郵件伺服器軟體大部分是衝著其提供的服務或者是附加功能來的,例如群件產品通常帶有很多額外功能用於辦公環境等。
  至於在Sendmail、Postfix和Qmail之間進行選擇,基本上依賴於使用者自己的偏好。有些人喜歡Qmail提供的複雜特色,而有的人希望對Sendmail的替換能簡單一些,也有人不打算更換,而堅持使用Sendmail的最新版本。對於一個熟悉Unix系統而又願意改善郵件系統效能和安全性的管理員,應該轉換為使用Postfix或Qmail,除非對Sendmail非常熟悉而保持了特殊的感情。在Postfix和Qmail之間,它們各自有一批忠心擁護者,選擇哪個都是可行的。不管選擇哪種郵件系統核心,都需要選擇過硬的專業電子郵件系統廠商提供完善的技術支援服務,除非您本身有強大過硬的技術力量,否則,您將面對的是一場惡夢.

文章轉載:奇碼科技站長網(bbs.gmakj.com)  原文地址: http://bbs.gmakj.com/fuwuqi/linux/060A2F02010_2.html


相關文章