偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux下的郵件服務(wù)器 postfix

運(yùn)維 系統(tǒng)運(yùn)維
前幾年的時(shí)候,Linux環(huán)境下的服務(wù)器只有sendmail,可是由于sendmail逐漸滿足不了用戶的需求,相應(yīng)的其他郵件服務(wù)器相應(yīng)出臺(tái)。本文主要介紹的是Linux系統(tǒng)下各種郵件服務(wù)的比拼,主要有exim、Zmailer、Qmail、sendmail

現(xiàn)在,運(yùn)行在Linux環(huán)境下免費(fèi)的郵件服務(wù)器,或者稱為MTA(Mail Transfer Agent)有若干種選擇,比較常見的有Sendmail、Qmail、Postfix、exim及Zmailer 等。

  本文希望通過對(duì)幾種影響相對(duì)來說比較大的主流Linux環(huán)境下的MTA的特點(diǎn)進(jìn)行闡述,并對(duì)其優(yōu)缺點(diǎn)一一分析比較,使用戶在選擇Linux環(huán)境下的免費(fèi)MTA時(shí)有一個(gè)選擇的依據(jù)。

  Postfix

  Postfix是一個(gè)由IBM資助下由Wietse Venema 負(fù)責(zé)開發(fā)的自由軟件工程的一個(gè)產(chǎn)物,其目的是為用戶提供除sendmail之外的郵件服務(wù)器選擇。Postfix力圖做到快速、易于管理、提供盡可能的安全性 ,同時(shí)盡量做到和sendmail郵件服務(wù)器保持兼容性以滿足用戶的使用習(xí)慣。起初,Postfix是以VMailer這個(gè)名字發(fā)布的,后來由于商標(biāo)上的原因改名為Postfix。

一、主要設(shè)計(jì)目標(biāo)

  Postfix工程的目標(biāo)是實(shí)現(xiàn)一個(gè)郵件服務(wù)器,提供給用戶除sendmail以外的選擇。其設(shè)計(jì)目標(biāo)包括:

  性能。 Postfix要比同類的服務(wù)器產(chǎn)品速度快三倍以上,一個(gè)安裝Postfix的臺(tái)式機(jī)一天可以收發(fā)百萬封信件。Postfix設(shè)計(jì)中采用了web服務(wù)器的的設(shè)計(jì)技巧以減少進(jìn)程創(chuàng)建開銷,并且采用了其他的一些文件訪問優(yōu)化技術(shù)以提高效率,但同時(shí)保證了軟件的可靠性。

  兼容性。Postfix設(shè)計(jì)時(shí)考慮了保持Sendmail的兼容性問題,以使移植變的更加容易。Postfix支持/var[/spool]/mail, /etc/aliases, NIS, 及 ~/.forward等文件。然而Postfix為保證管理的簡(jiǎn)單性,所以沒有支持配置文件sendmail.cf。

  安全和健壯性。Postfix設(shè)計(jì)上實(shí)現(xiàn)了程序在過量負(fù)載情況下仍然保證程序的可靠性。當(dāng)出現(xiàn)本地文件系統(tǒng)沒有可用空間或沒有可用內(nèi)存的情況時(shí),Postfix就會(huì)自動(dòng)放棄,而不是重試使情況變的更糟。

  靈活性。Postfix結(jié)構(gòu)上由十多個(gè)小的子模塊組成,每個(gè)子模塊完成特定的任務(wù),如通過SMTP協(xié)議接收一個(gè)消息,發(fā)送一個(gè)消息,本地傳遞一個(gè)消息,重寫一個(gè)地址等等。當(dāng)出現(xiàn)特定的需求時(shí),可以用新版本的模塊來替代老的模塊,而不需要更新整個(gè)程序。而且它也很容易實(shí)現(xiàn)關(guān)閉某個(gè)功能。

  安全性。Postfix使用多層防護(hù)措施防范攻擊者來保護(hù)本地系統(tǒng),幾乎每一個(gè)Postfix守護(hù)進(jìn)程都能運(yùn)行在固定低權(quán)限的chroot之下,在網(wǎng)絡(luò)和安全敏感的本地投遞程序之間沒有直接的路徑—一個(gè)攻擊者必須首先突破若干個(gè)其他的程序,才有可能訪問本地系統(tǒng)。Postfix甚至不絕對(duì)信任自己的隊(duì)列文件或IPC消息中的內(nèi)容以防止被欺騙。Postfix在輸出發(fā)送者提供的消息之前會(huì)首先過濾消息。而且Postfix程序沒有set-uid。

二、Postfix的一些特點(diǎn)

  支持多傳輸域:sendmai支持在Internet, DECnet, X.400及UUCP之間轉(zhuǎn)發(fā)消息。 Postfix則靈活的設(shè)計(jì)為無須虛擬域(vistual domai)或別名來實(shí)現(xiàn)這種轉(zhuǎn)發(fā)。但是在早期的發(fā)布里僅僅支持STMP和有限度地支持UUCP,但對(duì)于我國用戶來說,多傳輸域的支持沒有什么意義。

  虛擬域:在大多數(shù)通用情況下,增加對(duì)一個(gè)虛擬域的支持僅僅需要改變一個(gè)Postfix查找信息表。其他的郵件服務(wù)器則通常需要多個(gè)級(jí)別的別名或重定向來獲得這樣的效果。

  UCE控制(UCE,unsolicited commercial email): Postfix能限制哪個(gè)主機(jī)允許通過自身轉(zhuǎn)發(fā)郵件,并且支持限定什么郵件允許接進(jìn)。Postfix實(shí)現(xiàn)通常的控制功能:黑名單列表、RBL查找、HELO/發(fā)送者DNS核實(shí)。基于內(nèi)容過濾當(dāng)前沒有實(shí)現(xiàn)。

  表查看: Postfix沒有實(shí)現(xiàn)地址重寫語言,而是使用了一種擴(kuò)展的表查看來實(shí)現(xiàn)地址重寫功能。表可以是本地 dbm或 db文件等格式。

三、Postfix體系結(jié)構(gòu)及與Sendmail的比較

  Postfix是基于半駐留,互操作的進(jìn)程的體系結(jié)構(gòu),每個(gè)進(jìn)程完成特定的任務(wù),沒有任何特定的進(jìn)程衍生關(guān)系(父子關(guān)系)。而且,獨(dú)立的進(jìn)程來完成不同的功能相對(duì)于“單塊”程序具有更好的隔離性。此外,這種實(shí)現(xiàn)方式具有這樣的優(yōu)點(diǎn):每個(gè)服務(wù)如地址重寫等都能被任何一個(gè)Postfix部件所使用,無須進(jìn)程創(chuàng)建等開銷,而僅僅需要重寫一個(gè)地址,當(dāng)然并不是只有postfix采用這種方式。

  Postfix是按照這種方式實(shí)現(xiàn)的:一個(gè)駐留主服務(wù)器根據(jù)命令運(yùn)行Postfix守護(hù)進(jìn)程,守護(hù)進(jìn)程完成發(fā)送或接收網(wǎng)絡(luò)郵件消息,在本地遞交郵件等等功能。守護(hù)進(jìn)程的數(shù)目由配置參數(shù)來決定的,并且根據(jù)配置決定守護(hù)進(jìn)程運(yùn)行的次數(shù)(re-used times),當(dāng)空閑時(shí)間到達(dá)配置參數(shù)指定的限度時(shí),自動(dòng)消亡。這種方法明顯地降低了進(jìn)程創(chuàng)建開銷,但是單個(gè)進(jìn)程之間仍然保持了良好的隔離性。

  Postfix的設(shè)計(jì)目標(biāo)就是成為Sendmail的替代者。由于這個(gè)原因,Postfix系統(tǒng)的很多部分,如本地投遞程序等,可以很容易地通過編輯修改類似inetd的配置文件來替代。

  Postfix的核心是由十多個(gè)半駐留程序?qū)崿F(xiàn)的。為了保證機(jī)密性的原因,這些Postfix進(jìn)程之間通過Unix的socket或受保護(hù)的目錄之下的FIFO進(jìn)行通信。即使使用這種方法來保證機(jī)密性,Postfix進(jìn)程并不盲目信任其通過這種方式接收到的數(shù)據(jù)。

  Postfix進(jìn)程之間傳遞的數(shù)據(jù)量是有限制的。在很多情況下,Postfix進(jìn)程之間交換的數(shù)據(jù)信息只有隊(duì)列文件名和接收者列表,或某些狀態(tài)信息。一旦一個(gè)郵件消息被保存進(jìn)入文件,其將在其中保存到被一個(gè)郵件投遞程序讀出。

  Postfix采用一些通常的措施來避免丟失信息:在收到確認(rèn)以前通過調(diào)用flush和fsync()保存所有的數(shù)據(jù)到磁盤中。檢查所有的系統(tǒng)調(diào)用的返回結(jié)果來避免錯(cuò)誤狀況。

  大多數(shù)構(gòu)建郵件服務(wù)器者都會(huì)選擇sendmail,公平的來講sendmail是一個(gè)不錯(cuò)的MTA(Mail Transfer Agent),最初開發(fā)時(shí)Eric Allman的設(shè)計(jì)考慮主要放在了郵件傳遞的成功性。不幸的是,Sendmai開發(fā)時(shí)沒有太多的考慮Internet環(huán)境下可能遇到的安全性問題。Sendmail在大多數(shù)系統(tǒng)上只能以根用戶身份運(yùn)行,這就意味著任何漏洞都可能導(dǎo)致非常嚴(yán)重的后果,除了這些問題之外,在高負(fù)載的情況Sendmail運(yùn)行情況不是很好。

四、postfix 的安全性

  Postfix 則并一定要以root的身份運(yùn)行,而只需要一個(gè)主(master)程序以root身份運(yùn)行,其生成進(jìn)程來處理接入、發(fā)出及本地郵件投遞工作。通過使用一系列模塊部件,每個(gè)任務(wù)由一個(gè)單獨(dú)的程序來運(yùn)行(這樣使審計(jì)變的容易一些)。例如發(fā)出郵件被卸載到一個(gè)隊(duì)列目錄,在這里“pcikup”程序取到該郵件然后將郵件傳遞給“cleanup”程序,其再將郵件傳遞給“trivial-rewrite”,其負(fù)責(zé)處理郵件頭,最后若郵件目的是別的系統(tǒng)則將郵件傳遞給“smtp”程序。而且相對(duì)于Sendmail來說Postfix也更容易設(shè)置chroot‘ed環(huán)境。只要簡(jiǎn)單地通過編輯master.cf(一般位于/etc/postfix內(nèi))文件即可實(shí)現(xiàn),并且Postfix將運(yùn)行chroot‘ed,以限定在其定義的隊(duì)列目錄之下(通常位于/var/spool/postfix),同樣可以在master.cf中對(duì)Postfix的單一模塊設(shè)置進(jìn)程限制。用戶可以限制Postfix以哪個(gè)用戶的身份運(yùn)行,一般來說是以“postfix”用戶(概念上該用戶和Apache的nobody類似)運(yùn)行,該用戶可以訪問特定的隊(duì)列目錄。Postfix其他的主要優(yōu)點(diǎn)是起配置文件的清晰易懂性。

  與Sendmail的比較 如sendmail之類的郵件系統(tǒng)是按照一個(gè)單塊的結(jié)構(gòu)設(shè)計(jì)實(shí)現(xiàn)的,該“單塊”程序?qū)崿F(xiàn)所有的功能。當(dāng)然這種結(jié)構(gòu)有利于在系統(tǒng)的不同部分之間共享數(shù)據(jù)。但是這種結(jié)構(gòu)容易出現(xiàn)一些致命的錯(cuò)誤。而如qmail的郵件系統(tǒng)上使用一種分層次的結(jié)構(gòu),按照固定得順序運(yùn)行不同功能的子模塊進(jìn)程,執(zhí)行完畢之后就將其釋放。這種方法有良好的“絕緣”性,但是增加了進(jìn)程創(chuàng)建開銷和進(jìn)程間通信開銷。但是通過合理的規(guī)劃子模塊進(jìn)程的運(yùn)行順序可以將開銷保持在可以接受的范圍內(nèi)。

  使用其他的MTA替代Sendmail是一件非常麻煩的事情,用戶往往又要花大量的時(shí)間去熟悉新的MTA的配置和使用。而使用Postfix,你可以利用很多以有的配置文件。如(access, aliases, virtusertable等等),只需要簡(jiǎn)單的在master.cf中定義一下即可。此外,Postfix在行為上也很象Sendmail,用戶可以使用sendmail命令來啟動(dòng)Postfix。

  當(dāng)然,使用一個(gè)軟件來替代另外一個(gè)軟件需要解決特定的問題。部分原因是因?yàn)?em>Postfix的安全特性,在配置Postfix時(shí)可能會(huì)遇到一些問題。最典型的問題是向root用戶發(fā)送郵件。Postfix一般不提高自身的權(quán)限(向root用戶發(fā)送郵件所必須的)來投遞郵件。用戶需要在別名文件中為root定義別名,如:root: someuser。這同樣會(huì)對(duì)若干個(gè)郵件列表模塊發(fā)生影響,特別是SmartList。一般來說實(shí)現(xiàn)郵件列表最好使用Majordomo,它易于配置。

  Sendmail一個(gè)很突出的問題就是可擴(kuò)展性和性能問題。例如用戶若希望每天重新啟動(dòng)Sendmail來實(shí)現(xiàn)自動(dòng)更新配置文件(如為虛擬主機(jī)重定向郵件)就會(huì)出現(xiàn)問題。Sendmail生成新的進(jìn)程來處理發(fā)送和接收郵件,這些進(jìn)程會(huì)一直存在直到傳輸結(jié)束,之后Sendmail才能退出,這樣你的腳本程序?qū)⒉荒苷_的重起Sendmail。而對(duì)于Postfix,用戶則只需要發(fā)出命令postfix reload即可,Postfix將會(huì)重新加載其配置文件。

  另外,對(duì)于有數(shù)以萬計(jì)的用戶的郵件服務(wù)器來說,使用文件來存儲(chǔ)如匹配用戶發(fā)出郵件地址(例如bob發(fā)出的信的發(fā)信人修改為sales@example.org)。對(duì)于大量用戶來講,該文件就會(huì)變的很巨大,從而影響系統(tǒng)的運(yùn)行效率。而Postfix則可以和一個(gè)數(shù)據(jù)庫后臺(tái)集成起來(當(dāng)前只支持MySQL)來存放其配置信息,數(shù)據(jù)庫方式要比文件方式在可擴(kuò)展性方面強(qiáng)大很多。

  遵從IBM的開放源代碼版權(quán)許可證,用戶可以自由地分發(fā)該軟件,進(jìn)行二次開發(fā)。其唯一的限制就是必須將對(duì)Postfix做的修改返回給IBM公司。因?yàn)镮BM資助了Wietse的開發(fā)。

【編輯推薦】

  1. postfix安裝配置教程postfix概述
  2. postfix 安裝配置
  3. postfix郵件服務(wù)器快速指南
  4. 郵件系統(tǒng)postfix安裝配置指南
  5. Postfix郵件處理過程詳解
  6. Postfix郵件安裝實(shí)現(xiàn)介紹

 

 

 

 

責(zé)任編輯:zhaolei 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2011-01-20 10:08:25

postfix安裝

2011-02-21 14:12:15

Postfix服務(wù)器安裝

2010-06-02 18:17:09

Postfix郵件

2010-06-02 16:48:49

postfix郵件服務(wù)

2011-01-18 16:05:33

Linux郵件服務(wù)器

2011-01-18 15:54:32

2011-03-08 09:58:02

Postfix郵件服務(wù)

2009-12-04 10:24:25

2010-05-25 16:45:33

postfix郵件服務(wù)

2013-06-04 09:31:11

2009-11-20 15:02:06

2010-06-02 17:07:25

Postfix 轉(zhuǎn)發(fā)

2011-03-22 09:07:13

Nagios監(jiān)控Linux

2019-11-21 08:50:54

CentOS 8Postfix郵件服務(wù)器

2009-12-02 15:25:31

Linux郵件服務(wù)器

2012-02-23 23:46:26

2011-01-19 13:39:38

Postfix郵件監(jiān)控

2011-02-23 13:26:18

Linuxvsftp

2009-09-02 17:25:02

郵件服務(wù)器

2009-03-27 18:40:32

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)