Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302819
  • 博文数量: 94
  • 博客积分: 2220
  • 博客等级: 大尉
  • 技术积分: 975
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-17 21:17
文章分类

全部博文(94)

文章存档

2011年(5)

2010年(11)

2009年(1)

2008年(2)

2006年(1)

2005年(65)

2004年(9)

我的朋友

分类: LINUX

2004-12-21 08:15:57

原文出處:

在介紹完了 sendmail 之後,您是否覺得~唉!怎麼 sendmail.cf 這個設定檔這麼難搞定~還得藉由 m4 scripts 才能搞定!而且, sendmail 需要考慮到相當多的安全設定項目 ( Security ),否則很容易一不小心就被攻擊了!那麼有沒有更簡單、更安全的郵件系統啊!當然有啊!那就是 Postfix 這個咚咚!Postfix 的作者有鑑於 sendmail 是這樣成功的一個 MTA ,但是偏偏有點小問題,所以該作者站在兼容的立場上面寫出這個幾乎可以完全取代 sendmail 的 MTA !此外, Postfix 還更加的安全呢,真是很不錯的一個 mail server 的替代方案啊!



  :
  :?

  : ()
  :
  :
  : ()

  :
  : ()
  :
  :
  :

關於郵件主機安全的設定
  :關於 Open Relay Data Base
  :關於 Procmail 用法
  :關於郵件過濾的規則設定
  :問題信件的送達




前言:
在開始介紹 Postfix 這個伺服器之前,得先告訴您的是,這個 Postfix 的用途是『郵件伺服器』,那麼我們在前一章『』裡面已經提過了 mail server 的相關原理與咦鬟^程,這個 Postfix 與 sendmail 是類似的東西,那就是『MTA』啦,既然都是 MTA ,使用的協定也相同,同時,這個 Postfix 最早之前的用途也是想要用來『取代 sendmail 』。所以,為了節省筆墨,也為了未來進行修改的時候不要有太多的版本 ( 意思是這裡 copy 一份 mail 原理,那裡又有一份原稿~ ) ,因此上,在進行本章的學習之前,請『務必』前往『』讀一讀 Mail server 的原理與相關的說明啊!
 

本章學習之前你需要先知道的知識
 
上面剛剛提到,學習本章你必須要知道 才行,在這裡,我們不再說明已經提過的咚咚,請自行再前往翻閱。由於架設某種伺服器的第一步就是要瞭解該伺服器的工作原理,因此,在架設 Postfix 之前,您至少要知道以下的幾個咚咚:
  1. Mail Server 能否咦髋c DNS ( MX 與 A recode )的相關性為何?
  2. 什麼是 MTA, MUA, MDA 與 Mail box, Mailing list 等相關的術語,及其內容所代表的意義!
  3. 什麼是 smtp, pop3 以及 imap 協定,他們的用途分別是什麼?
  4. 什麼是 Relay 與 Open Relay ?
  5. 什麼是 SMTP 郵件認證?
  6. 什麼是郵件的別名與轉遞( aliases 與 forward )?
  7. 什麼是 Procmail 與什麼是 ORDB 呢?
如果您不曉得上面問題的答案,請不要『白目』的繼續往下看 ^_^,先前往『』瞧一瞧相關的原理之後,再來這裡吧!慢點學習不打緊,學的不精....可能會有害啊! @_@
 

為什麼要有 Postfix 呢?
 
這是個很有趣的問題:『為什麼要有 Postfix 呢?有了 不就可以了嗎?!』說到這個就要談到 postfix 的由來了!
 
Postfix 是由 Wietse Zweitze Venema 先生(http://www.porcupine.org/wietse/)所發展的。早期的 mail server 都是使用 sendmail 架設的,還真的是『僅此一家,絕無分號!』 ^_^ !不過,Venema 博士覺得 sendmail 雖然很好用,但是畢竟不夠安全,尤其效能上面並不十分的理想,最大的困擾是....他的設定檔 sendmail.cf 真的是太難懂了!對於網管人員來說,要設定好 sendmail.cf 這個檔案,真不是人作的工作~
 
為了改善這些問題, Venema 博士就在 1998 年利用他老大在 IBM 公司第一個休假年進行一個計畫:『設計一個可以取代 sendmail 的軟體套件,可以提供網站管理員一個更快速、更安全、而且"完全相容"於 sendmail 的 mail server 軟體!』這個計畫還真的成功了!而且也成功的使用在 IBM 內部,可以說是完全取代了 sendmail 這個郵件伺服器!在這個計畫成功之後, Venema 博士也在 1998 年首次釋出這個自行發展的郵件伺服器,並定名為 VMailer。不過, IBM 的律師卻發現一件事,那就是 VMailer 這個名字與其他已註冊的商標很類似,這樣可能會引起一些註冊上面的困擾。為了避免這個問題,所以 Venema 博士就將名稱改為 Postfix !這個 Postfix 有『在什麼什麼之後修正』的意思。鳥哥個人認為, Venema 先生最早的構想並不是想要『創造一個全新的 Mail server 軟體,而是想要製造一個可以完全相容於 sendmail 的軟體』,所以,Venema 先生認為他自行發展的軟體應該是『改良 sendmail 的缺失』,所以才稱為 Postfix 吧!取其意為:『在 sendmail 之後的改良的郵件伺服器軟體!』
 
所以啦, Postfix 設計的理念上面,主要是針對『想要完全相容於 sendmail』所設計出來的一款『內在部分完全新穎』的一個郵件伺服器軟體。就是由於這個理念,因此,Postfix 改善了 sendmail 安全性上面的問題,改良了 mail server 的工作效率,更由於其設定檔完全為 ASCII 碼,且設定內容都是『人類看的懂得語言!』因此,你可以輕易的由 sendmail 改良到 Postfix 上面!這也是當初 Venema 博士的最初構想啊!就是基於這個構想,所以, Postfix 在外部設定檔案的支援度,與 sendmail 幾乎沒有兩樣,同樣的支援 aliases 這個檔案,同樣的支援 ~/.forward 這個檔案,也同樣的支援 SASL 的 SMTP 郵件認證功能等等!所以,呵呵!趕緊來學一學怎樣架設 Postfix 這個相當出色的郵件伺服器吧! ^_^

套件安裝
跟之前一樣的,我們需要的 mail server 功能有哪些呢?
  • 具有 smtp 的功能;
  • 具有 pop3 的功能;
  • 具有 procmail 過濾郵件的功能;
  • 具有 Open Relay Data Base 抵擋的功能;
為達成上述的功能,所以你至少需要底下的幾個套件:
  • cyrus-sasl
  • procmail
  • postfix
  • imap(同時支援 pop3 及 imap 兩個協定)
如果您是使用 Mandrake 後期版本的話,那麼恭喜您,由於 Mandrake 預設就是使用 Postfix 做為郵件伺服器,並且在安裝的時候就已經將 Postfix 安裝到你的系統當中了。至於 Red Hat 9 同樣的也提供了 Postfix 喔!而如果您是使用非 postfix 為郵件伺服器的 Linux distribution ,呵呵!仔細的查看後面介紹的 安裝的方式吧!
 

使用 RPM 安裝完整的 Postfix + POP3 + SMTP + Procmail
 
底下我們分 Mandrake 9.0 與 Red Hat 9 這兩個主要 Linux distribution 來介紹 Postfix + Cyrus-SASL 的方法喔!
 
Makdrake 9.x 版本
如果你是使用 Mandrake 之類的 Linux distribution 的話,由於他預設是以 Postfix 這個優良的郵件伺服器系統,所以您可以不費吹灰之力的,就將 Postfix 以 RPM 安裝完畢囉!基本上,如果是 Mandrake 的話,你需要安裝的套件大致上有:
  • SMTP 認證套件: cyrus-sasl ( cyrus-sasl-1.5.27-5mdk 以及其他認證機制函式庫 )
  • Postfix 郵件伺服器: postfix ( postfix-1.1.11-4mdk )
  • POP3 伺服器: imap ( imap-2001a-9mdk, imap-devel-2001a-9mdk 兩個 )
  • 郵件分析軟體:procmail ( procmail-3.22-3mdk )
你至少要安裝的套件就有上面這幾個,同時,請拿出您的原版光碟將上面的套件全部安裝吧!安裝的方法我們在『』介紹過的 裡面提過多次了,請自行參考喔!安裝完畢之後,你的主機就已經具有 Postfix 這個系統啦!不過,由於我們還要提供 SMTP 以及其他相關的功能,所以這裡我們必需要確認一下各個套件是否都完全的安裝了呢?底下我們就一個一個的來設定吧!(註:請特別留意 Cyrus-sasl 的版本,因為不同的版本他的函式庫所在目錄與設定檔都不相同!因此,在本篇文章中,您會發現我使用 Tarball 安裝的 2.xx 版本與使用 RPM 安裝的 1.5.xx 版本設定檔的內容不相同,不要懷疑,確實是如此的喔! )
 
安裝 cyrus-sasl
1. 安裝
# 安裝的方法很簡單,就是使用 RPM 即可!不過,請先確認是否已經安裝!
[root@test root]# rpm -qa | grep sasl
libsasl7-1.5.27-5mdk
cyrus-sasl-1.5.27-5mdk
libsasl7-devel-1.5.27-5mdk
libsasl7-plug-plain-1.5.27-5mdk
libsasl7-plug-login-1.5.27-5mdk

# 如果尚未安裝該套件,請拿出你的光碟片, mount 光碟,然後找尋該檔案,
# 直接安裝他吧!不過要注意的是,上面的檔案都要安裝喔!因為我們使用的
# 是最基本的 plain 與 login 這兩個機制,所以至少我們要安裝上面五個咚咚!
[root@test root]# rpm -ivh cyrus-sasl-1.5.27-5mdk.i586.rpm
# 如果有發生屬性相依的問題,請自行再將需要的檔案自光碟當中找出,
# 然後加以安裝吧!

2. 設定與啟動
# 由於 Cyrus-sasl 在 Mandrake 當中是 1.5.27 版本,所以他能支援的項目有:
shadow : 使用 /etc/shadow 做為認證碼;
pam  : 使用 pam 模組做為認證,這個需要在 /etc/pam.d 這個目錄下新增
     一個名為 smtp 的檔案,並設定檔案內容才行!
sasldb : 使用 SASL 的認證函式庫,使用這個功能時,你必需要額外的
     指定 1.函式庫的名稱; 2.使用 saslpasswd 程式增加使用者!
     鳥哥個人認為這個功能不太好用,因為每新增一個使用者需要主動的
     幫使用者新增帳號、密碼到認證函式庫中,不太方便!
     不過如果您還使用其他的伺服器如 LDAP, MySQL 等等軟體時,
     則這個功能可就大大的有幫助啦!因為他可以分享帳號與密碼吶!
pwcheck: 這個功能就不錯啦! pwcheck 是一個服務(daemon),必需要在
     啟動 postfix 之前就啟動啦,因為 sasl 的認證就靠這個 daemon,
     基本上,他可以經由讀取 /etc/shadow 的資料來提供 client 端
     認證的功能!目前我們 Mandrake 9.0 預設使用的是這個 daemon!
# 給他設定開機時啟動 pwcheck 的功能吧!
[root@test root]# vi /etc/rc.d/rc.local
# 在這個檔案當中最底下新增一行:
/usr/sbin/pwcheck
# 並且立刻執行這個 daemon 喔:
[root@test root]# /usr/sbin/pwcheck
[root@test root]# ps -aux | grep pwcheck
root 12602 0.0 0.5 1460 348 ? S 02:59 0:00 /usr/sbin/pwcheck
# 看到沒!要出現這個咚咚才算是有啟動 pwcheck 喔!

# 在 Sendmail 當中,我們必需建立一個名為 Sendmail.conf 的檔案,來告訴
# sasl 我們所需要的認證模式,那麼在 postfix 當中也一樣,我們必需要建立
# 一個檔案名稱為smtpd.conf來告訴 sasl ,喝!我 postfix 要的認證方式為何!
# 所以你需要這樣做:
[root@test root]# cd /usr/lib/sasl
[root@test sasl]# echo 'pwcheck_method: pwcheck' > smtpd.conf

# 上面這樣做完之後,系統就知道了:
1. postfix 要用 SMTP 認證時會去讀取 /usr/lib/sasl/smtpd.conf 並且知道
  是以 pwcheck 這支程式進行身份認證的動作;
2. 而 pwcheck 這支程式會主動去讀取 /etc/shadow ,裡面的密碼做認證
# 到此為止,就已經設定好了 cyrus sasl 的部分啦!

 
安裝 postfix
1. 安裝
# 安裝的方法很簡單,就是使用 RPM 即可!不過,請先確認是否已經安裝!
[root@test root]# rpm -qa | grep postfix
postfix-1.1.11-4mdk

# 如果尚未安裝該套件,請拿出你的光碟片, mount 光碟,然後找尋該檔案,
# 直接安裝他吧!
[root@test root]# rpm -ivh postfix-1.1.11-4mdk.i586.rpm

# 這樣就安裝完畢啦!主機設定的部分請參考下一節喔!

 
安裝 procmail
1. 安裝
[root@test root]# rpm -qa | grep procmail
procmail-3.22-3mdk

2. 設定:
# 在設定方面,這主要與 procmail 有關而已,您可以下載 procmailrc
# 並放置到 /etc/ 底下即可詳細的資料請參考上一章簡易 sendmail 之說明

 
安裝 imap
1. 安裝
[root@test root]# rpm -qa | grep imap
imap-2001a-9mdk
imap-devel-2001a-9mdk

2. 設定:
# 直接設定成為開機啟動即可:
[root@test root]# chkconfig --add ipop3
[root@test root]# /etc/rc.d/init.d/xinetd restart
# 這樣就已經可以收信件啦!

 
安裝的地方當中,重點在於 Cyrus-SASL 的安裝啦!由於我們需要有 SASL 的支援,所以必需要安裝這個咚咚!並且也需要設定 smtpd.conf 這個檔案!這樣就已經差不多 OK 啦!接下來請繼續參考的地方嚕!
 
Red Hat 9 版本:
什麼?!Red Hat 9 也同時提供 Postfix 啊?!沒錯的啦!呵呵!很高興吧!所以說, Red Hat 9 不但提供了 sendmail 給我們使用,還額外提供了 Postfix 讓我們可以隨意的轉換郵件伺服器軟體呢!不過,在 Red Hat 9 的 Cyrus-sasl 已經是 2.xx 版本了,而且還主動的提供相容於 1.5.xx 版本的函式庫呢!真是相當的棒啊!但是因為 Red Hat 9 提供的 Postfix 還是使用 1.xx 版,因此我們在 Red Hat 9 預設的 Postfix 郵件伺服器中,還是使用 Cyrus SASL 1.5.xx 的函式庫喔!所以也就無法使用 saslauthd 這個機制了!並且, Red Hat 9 並沒有提供 pwcheck 這個程式,所以在 Red Hat 9 底下的 Cyrus SASL 認證機制就需要使用 sasldb 了!至於安裝的方法最簡單的方式就是以我們在 那一章節提到的 APT 來進行安裝即可!
 
1. 安裝:
[root@test root]# apt-get install postfix
[root@test root]# apt-get install cyrus-sasl
[root@test root]# apt-get install procmail
 
很簡單吧!這樣就搞定了 Red Hat 9 的 Postfix 囉!(注意, Mandrake 與 Red Hat 不同版本所使用的 Cyrus SASL 機制並不相同喔!在 Mandrake 當中預設是 pwcheck 而在 Red Hat 則預設使用 sasldb 這個驗證機制!並且,由於 Red Hat 9 在編譯 postfix 的時候使用的是 SASL version 1 ,所以無法使用 saslauthd 這個好用的機制,鳥哥認為,您最好使用 Tarball 來安裝您的 Postfix 在您的 Red Hat 9 上面喔!)
 

使用 Tarball 安裝完整的 Postfix + POP3 + SMTP + Procmail (適用任何版本的 Linux 喔!)
 
以 Tarball 安裝 Postfix 也不困難,比起 sendmail 來說,要簡單的很多喔!我們這裡選擇的主要套件有:
至於 procmail 與 imap 兩個套件都使用 Linux distribution 提供的 RPM 版本就好了,不需要額外的改裝啊!那麼底下就來談一談怎麼安裝吧!(註: Cyrus SASL 與 Cyrus SASL2 這兩個不同版本的 SASL 函式庫放置的目錄並不相同,所以你可以分別安裝 cyrus version 1 與 version 2 喔!在鳥哥的案例當中,還不會發生問題就是了!另外,如果您是 Red Hat 9 的使用者,由於 Red Hat 9 已經提供了 Cyrus SASL version 2 了,所以您可以直接略過 Cyrus SASL 的安裝部分,直接到 Postfix 2.xx 的安裝呢!)
 
安裝 Cyrus SASL 2.xx 版本!
1. 首先將資料解壓縮(假設您將我們網站的檔案捉到 /root 底下了!)
[root@test root]# cd /usr/local/src
[root@test src]# tar -zxvf /root/cyrus-sasl-2.1.12.tar.gz
.....(略).....最後建立一個 cyrus-sasl-2.1.12 的目錄

2. 再來就是設定你的 cyrus SASL 的參數以及編譯囉!
[root@test src]# cd cyrus-sasl-2.1.12
[root@test cyrus-sasl-2.1.12]# ./configure
> --prefix=/usr/local/cyrus-sasl2 --enable-login --enable-plain
> --enable-pwcheck --with-saslauthd=/var/run
# 注意上面的語法!!那個 是跳脫字元喔!後面直接 Enter !
# 不要接任何空白或者是 tab 按鍵!若有問題,請到 看看!
# 至於那個 pwcheck 的項目,就是要用來做為密碼確認的一個咚咚囉!

[root@test cyrus-sasl-2.1.12]# make clean && make
[root@test cyrus-sasl-2.1.12]# make install
# 上面三個步驟會花去一些時間,請耐心等待~
# 而由於我們剛剛設定了 --prefix=/usr/local/cyrus-sasl2 這個參數,
# 所以, make install 之後,我們有用的函式庫會在
# /usr/local/cyrus-sasl2/lib/sasl2 這個路徑當中,但是, cyrus 程式
# 會主動去找 /usr/lib/sasl2 這個目錄!所以,我們必需要做連結檔!
# 才可以讓未來我們的 postfix 可以直接找的到我們所要的函式庫喔!

[root@test cyrus-sasl-2.1.12]# cd /usr/lib
[root@test lib]# ln -s /usr/local/cyrus-sasl2/lib/* .
# 這樣就建立起連結檔囉!很簡單吧! ^_^不過要注意喔,
# 上面這一行最後面那個小數點『.』不要忘記加了!

3. 準備建立 Postfix 與 cyrus SASL 使用的簡易設定檔:
[root@test lib]# cd /usr/lib/sasl2
[root@test sasl2]# echo 'pwcheck_method: saslauthd' > smtpd.conf
[root@test sasl2]# echo 'mech_list:plain login' >> smtpd.conf
# 注意了!一般來說, Postfix 會使用 SASL 這個函式庫裡面相關的設定檔,
# /usr/lib/sasl2/smtpd.conf 這個檔案的設定就是 Postfix 的預設使用 SASL 的
# 參數檔案,與 1.5.xx 版本不太相同的地方是, 2.xx 版本使用不同的機制:
auxprop :使用 sasldb2 這個共享資料庫,同樣需要使用共享密碼檔案喔!
     所以一般來說,單純的 Postfix 比較少使用這種機制;
saslauthd:使用 saslauthd 這個 daemon 進行認證的工作,所以幾乎
     不需要其他的設定值哪,指定 saslauthd 就好啦! ^_^
pwcheck :使用與 1.5 版相似的認證 daemon ,不過在 2.xx 版本裡面這個模式
     支援度比較沒有這麼好的啦,所以請愛用 saslauthd 囉!
# 我們使用 SASL 預設的 saslauthd 這支程式做為密碼認證的 daemon。
# 至於 mech_list:plain login 是列出支援的認證機制的意思,我們使用的
# 是極為簡單的 login 與 plain 兩種機制而已!

4. 建立一些需要的參數:
[root@test sasl2]# vi /etc/man.config
# 新增底下這一行之後,未來我們就可以透過 man 這個工具來查詢 sasl
# 相關的指令的用法了!而不需要修改任何咚咚!不過要注意的是,
# 這個檔案在每個 Linux distributions 當中不見得相同,例如 Open Linux
# 檔名是 /etc/man.conf 呢!
MANPATH /usr/local/cyrus-sasl2/man

5. 檢驗 saslauthd 這支程式是否可行!
# 在 cyrus-sasl 的原始碼裡面提供了一支小程式用來判斷 saslauthd 的認證機制
# 是否成功的啟動了,這個小程式就是 testsaslauthd 囉!在剛剛原始碼目錄下,
# 所以你可以這樣做:
[root@test sasl2]# /usr/local/cyrus-sasl2/sbin/saslauthd -a shadow
# 執行之後, saslauthd 的 PID 會被紀錄到 /var/run/mux.pid 這個檔案!
[root@test sasl2]# cd /usr/local/src/cyrus-sasl-2.1.12/saslauthd/
[root@test saslauthd]# make testsaslauthd
[root@test saslauthd]# ./testsaslauthd -u userID -p 'yours.passwd'
0: OK "Success."
# 若顯示 OK 的話!那麼就是成功啦!很好!我喜歡~

6. 設定開機時啟動
[root @test saslauthd]# vi /etc/rc.d/rc.local
# 加入這一行:
/usr/local/cyrus-sasl2/sbin/saslauthd -a shadow

 
安裝 Postfix 2.xx 版本!
0. 先確認有沒有這個檔案存在!因為我們的 Postfix 會使用到很多資料庫啊!
[root@test root]# locate pcre.h | grep include
/usr/include/pcre.h
# 這個檔案也有可能存在於 /usr/include/pcre/pcre.h 裡面!不要擔心,存在就好了
# 如果沒有存在的話,例如 Mandrake 9.0 預設狀態可能並不會主動安裝這個套件,
# 請自行拿出原版光碟,安裝 MDK 的 libpcre0xxxx 檔案,至於 redhat 等
# 其他版本,請自行安裝 pcre 相關的套件吧!在 Red Hat 9 則是需要
# pcre-devel 這個套件喔! ( apt-get install pcre-devel)

1. 首先將資料解壓縮(假設您將我們網站的檔案捉到 /root 底下了!)
[root@test root]# cd /usr/local/src
[root@test src]# tar -zxvf /root/postfix-2.0.4.tar.gz
.....(略).....最後建立一個 postfix-2.0.4 的目錄

2. 清除規則並且建立新的使用 SMTP 的規則給 postfix
[root@test src]# cd /usr/local/src/postfix-2.0.4
[root@test postfix-2.0.4]# make tidy # 清除規則
[root@test postfix-2.0.4]# make makefiles CCARGS="-DUSE_SASL_AUTH
> -I/usr/local/cyrus-sasl2/include/sasl/"
> AUXLIBS="-L/usr/local/cyrus-sasl2/lib -lsasl2"
# 上面的動作在建立 Makefile 囉!其中那個 -CCARGS 後面接的 -DUSE_SASL_AUHT
# -I/usr/local/cyrus-sasl2/include/sasl 其中 -I 後面的路徑就是 SASL2 的
# 函式庫所在的目錄喔!請依照您安裝的 sasl2 目錄所在而定!
[root@test postfix-2.0.4]# make
# 就是開始編譯啦!過程有點久喔!如果有出現任何 Error 時,
# 請將 error 仔細的查看一下吧!通常最大的原因都是一些
# include 檔案沒有安裝,也就是某些重要的套件沒有安裝之故,
# 例如 pcre.h 這個檔案就是一個例子囉!
# 解決的方法就是將該缺乏的套件安裝進去系統啦!
# 如果是 Red Hat 9 的話,可以這樣下達指令:
# make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/include/sasl"
# AUXLIBS="-L/usr/lib/sasl2 -lsasl2"
# 因為 Red Hat 9 的 SASL2 路徑在 /usr/include/sasl ,這裡要特別的強調,
# 否則由於 Red Hed 9 同時提供 Cyrus SASL 1.5.x 以及 2.x.x 的版本,
# 可能會造成程式的誤判,那麼很可能會出現下列的錯誤喔:
# fatal: SASL per-connection security setup
# 上面的錯誤訊息出現在 /var/log/maillog 中!

3. 安裝前準備工作:
# 如果您的系統是由 sendmail 要改換到 Postfix 的話,你不需要移除 sendmail ,
# 不過卻需要進行一些小手術喔!
[root@test postfix-2.0.4]# mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
[root@test postfix-2.0.4]# mv /usr/bin/newaliases /usr/bin/newaliases.OFF
[root@test postfix-2.0.4]# mv /usr/bin/mailq /usr/bin/mailq.OFF
[root@test postfix-2.0.4]# chmod 755 /usr/sbin/sendmail.OFF
> /usr/bin/newaliases.OFF /usr/bin/mailq.OFF

# 此外,還需要建立一個名為 postdrop 的群組與 postfix 的使用者喔!
[root@test postfix-2.0.4]# groupadd -r postdrop
[root@test postfix-2.0.4]# useradd -r -s /bin/false postfix
# 建立一個系統資料帳號吶!
[root@test postfix-2.0.4]# echo 'postfix: root' >> /etc/aliases
# 請注意,如果您之前安裝過 sendmail 的話,那麼不同版本的 sendmail 他的
aliases 放置的目錄並不相同,所以上面這行指令請依您的主機來設定!

4. 開始安裝 Postfix 到 /etc/postfix 這個目錄下:
[root@test postfix-2.0.4]# make install
# 底下會出現一大堆的問題集,不管如何,幾乎按下 enter 就對啦!
# 除了底下這兩個問題(最後兩個)可以選擇將 readme 檔案存下來喔!
Please specify the destination directory for the Postfix sample
configuration files.
sample_directory: [/etc/postfix] /etc/postfix/sample

Please specify the destination directory for the Postfix README
files. Specify "no" if you do not want to install these files.
readme_directory: [no] /etc/postfix/readme_files

# 這樣就安裝成功啦!接下來請開始查閱 那一節囉!

 

主機的設定
    安裝完畢 postfix 之後,接著下來就是設定了!同樣的,在設定主機之前,有幾個東西是您必需先取得的喔:
     
    1. 具有合法的 hostname ,或者是經過授權的 DNS 主機來設定您自己的主機名稱(hostname);
    2. 您的 hostname 最好擁有一個 MX 的紀錄(record);
    3. 至少一定要瞭解到什麼是 Relay 的問題,以及規劃一下您所想要開放 relay 的網域;
     
    你至少需要有這些資料才行吶!好了,我先假設一下我的案例好了:
     
    1. 我的 hostname 為 vbird.adsldns.org;
    2. 我的 hostname 還有個別名為 ,也就是說, vbird.adsldns.org 與 都指向同一個 IP ;
    3. 我的 domain name 為 adsldns.org ;
    4. 我預計開放的 relay 網域為 vbird.org 這個網域,與內部的 192.168.1.0/24 這個網域,還要可以使用 access 這個檔案的設定功能!
     
    開始來瞭解 postfix 囉! ^_^
     

    Postfix 的結構
     
    在主機的設定之前我們得先瞭解一下 postfix 的整體構造,以方便以後來處理我們的檔案吶!所以底下我們會先針對 postfix 這個套件的結構做個簡單的說明,然後再針對各個設定項目來進行說明囉!Postfix 的設定檔幾乎完全都在 /etc/postfix 裡面,至於執行檔則在 /usr/sbin 裡面,我們分別來談一談幾個主要的注意事項吧!
     
    • 設定檔Postfix 的設定檔都在 /etc/postfix 裡面,主要的設定檔有:
     
      • /etc/postfix/main.cf :這個就是最重要的 postfix 的設定檔了!等一下我們談到的設定都在這個檔案裡面進行修改的動作!基本上,他本身就是一個簡單的說明文件檔啦!不過,要注意的是,在你修改完成了 main.cf 之後,請記得『一定要重新 reload 或重新 restart postfix 才行!』
       
      • /etc/postfix/master.cf:這個檔案是另外一個重要的 postfix 設定檔!他主要是規定了 postfix 每個程序的咦鲄?担
阅读(974) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~