免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1573 | 回复: 0
打印 上一主题 下一主题

簡易 Mail Server 架設 -- Postfix 設定 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-21 08:15 |只看该作者 |倒序浏览

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

  :
本章學習之前你需要先知道的知識

  :
為什麼要有 Postfix 呢

套件安裝

  :
使用 RPM 安裝完整的 Postfix + POP3 + SMTP + Procmail
(
Cyrus-SASL 1.5.xx 設定方式
)
  :
Mandrake 9.0

  :
Red Hat 9

  :
使用 Tarball 安裝完整的 Postfix + POP3 + SMTP + Procmail
(
Cyrus-SASL 2.xx 設定方式
)
主機的設定

  :
Postfix 的結構

  :
基礎設定
(
設定接受的主機名稱
)
  :
重要觀念:預設 Relay 與 收信 流程

  :
啟動 smtp 郵件認證功能

  :
幾個相關的檔案說明

用戶端的使用說明

關於郵件主機安全的設定

  :
關於 Open Relay Data Base

  :
關於 Procmail 用法

  :
關於郵件過濾的規則設定

  :
問題信件的送達

其他應用說明

參考資源

本章習題練習

[color="#000099"]前言: 在開始介紹 Postfix 這個伺服器之前,得先告訴您的是,這個 Postfix 的用途是『[color="#000066"]郵件伺服器』,那麼我們在前一章『
Sendmail 伺服器
』裡面已經提過了 mail server 的相關原理與咦鬟^程,這個 Postfix 與 sendmail 是類似的東西,那就是『MTA』啦,既然都是 MTA ,使用的協定也相同,同時,這個 Postfix 最早之前的用途也是想要用來『取代 sendmail 』。所以,為了節省筆墨,也為了未來進行修改的時候不要有太多的版本 ( 意思是這裡 copy 一份 mail 原理,那裡又有一份原稿~ ) ,因此上,在進行本章的學習之前,請『務必』前往『
簡易 Mail server -- sendmail
』讀一讀 Mail server 的原理與相關的說明啊!
 
[color="#000099"]本章學習之前你需要先知道的知識:
 
上面剛剛提到,學習本章你必須要知道
Mail Server 的相關知識
才行,在這裡,我們不再說明已經提過的咚咚,請自行再前往翻閱。由於架設某種伺服器的第一步就是要瞭解該伺服器的工作原理,因此,在架設 Postfix 之前,您至少要知道以下的幾個咚咚:
  • [color="#000066"]Mail Server 能否咦髋c DNS ( MX 與 A recode )的相關性為何?
  • [color="#000066"]什麼是 MTA, MUA, MDA 與 Mail box, Mailing list 等相關的術語,及其內容所代表的意義!
  • [color="#000066"]什麼是 smtp, pop3 以及 imap 協定,他們的用途分別是什麼?
  • [color="#000066"]什麼是 Relay 與 Open Relay ?
  • [color="#000066"]什麼是 SMTP 郵件認證?
  • [color="#000066"]什麼是郵件的別名與轉遞( aliases 與 forward )?
  • [color="#000066"]什麼是 Procmail 與什麼是 ORDB 呢? 如果您不曉得上面問題的答案,請不要『白目』的繼續往下看 ^_^,先前往『
    簡易的 sendmail 伺服器
    』瞧一瞧相關的原理之後,再來這裡吧!慢點學習不打緊,學的不精....可能會有害啊! @_@
     
    [color="#000099"]為什麼要有 Postfix 呢?
     
    這是個很有趣的問題:『為什麼要有 Postfix 呢?有了
    sendmail
    不就可以了嗎?!』說到這個就要談到 postfix 的由來了!
     
    Postfix 是由 Wietse Zweitze Venema 先生(
    http://www.porcupine.org/wietse/
    )所發展的。早期的 mail server 都是使用 sendmail 架設的,還真的是『僅此一家,絕無分號!』 ^_^ !不過,Venema 博士覺得 sendmail 雖然很好用,但是畢竟不夠安全,尤其效能上面並不十分的理想,最大的困擾是....他的設定檔 sendmail.cf 真的是太難懂了!對於網管人員來說,要設定好 sendmail.cf 這個檔案,真不是人作的工作~
     
    為了改善這些問題, Venema 博士就在 1998 年利用他老大在 IBM 公司第一個休假年進行一個計畫:『[color="#000066"]設計一個可以取代 sendmail 的軟體套件,可以提供網站管理員一個更快速、更安全、而且"完全相容"於 sendmail 的 mail server 軟體!』這個計畫還真的成功了!而且也成功的使用在 IBM 內部,可以說是完全取代了 sendmail 這個郵件伺服器!在這個計畫成功之後, Venema 博士也在 1998 年首次釋出這個自行發展的郵件伺服器,並定名為 VMailer。不過, IBM 的律師卻發現一件事,那就是 VMailer 這個名字與其他已註冊的商標很類似,這樣可能會引起一些註冊上面的困擾。為了避免這個問題,所以 Venema 博士就將名稱改為 Postfix ![color="#000066"]這個 Postfix 有『在什麼什麼之後修正』的意思。鳥哥個人認為, Venema 先生最早的構想並不是想要『[color="#000066"]創造一個全新的 Mail server 軟體,而是想要製造一個可以完全相容於 sendmail 的軟體』,所以,Venema 先生認為他自行發展的軟體應該是『改良 sendmail 的缺失』,所以才稱為 Postfix 吧!取其意為:『在 sendmail 之後的改良的郵件伺服器軟體!』
     
    所以啦, [color="#000066"]Postfix 設計的理念上面,主要是針對『想要完全相容於 sendmail』所設計出來的一款『內在部分完全新穎』的一個郵件伺服器軟體。就是由於這個理念,因此,Postfix 改善了 sendmail 安全性上面的問題,改良了 mail server 的工作效率,更由於其設定檔完全為 ASCII 碼,且設定內容都是『人類看的懂得語言!』因此,你可以輕易的由 sendmail 改良到 Postfix 上面!這也是當初 Venema 博士的最初構想啊!就是基於這個構想,所以, Postfix 在外部設定檔案的支援度,與 sendmail 幾乎沒有兩樣,同樣的支援 aliases 這個檔案,同樣的支援 ~/.forward 這個檔案,也同樣的支援 SASL 的 SMTP 郵件認證功能等等!所以,呵呵!趕緊來學一學怎樣架設 Postfix 這個相當出色的郵件伺服器吧! ^_^[color="#000099"]套件安裝 跟之前一樣的,我們需要的 mail server 功能有哪些呢?
    • [color="#000066"]具有 smtp 的功能;
    • [color="#000066"]具有 pop3 的功能;
    • [color="#000066"]具有 procmail 過濾郵件的功能;
    • [color="#000066"]具有 Open Relay Data Base 抵擋的功能;
    為達成上述的功能,所以你至少需要底下的幾個套件:
    • [color="#000066"]cyrus-sasl
    • [color="#000066"]procmail
    • [color="#000066"]postfix
    • [color="#000066"]imap(同時支援 pop3 及 imap 兩個協定)
    如果您是使用 Mandrake 後期版本的話,那麼恭喜您,由於 Mandrake 預設就是使用 Postfix 做為郵件伺服器,並且在安裝的時候就已經將 Postfix 安裝到你的系統當中了。至於 Red Hat 9 同樣的也提供了 Postfix 喔!而如果您是使用非 postfix 為郵件伺服器的 Linux distribution ,呵呵!仔細的查看後面介紹的
    Tarball
    安裝的方式吧!
     
    [color="#000099"]使用 RPM 安裝完整的 Postfix + POP3 + SMTP + Procmail
    [color="#000000"] 
    [color="#000000"]底下我們分 Mandrake 9.0 與 Red Hat 9 這兩個主要 Linux distribution 來介紹 Postfix + Cyrus-SASL 的方法喔!
    [color="#000000"] 
    [color="#000066"]Makdrake 9.x 版本
    [color="#000000"]如果你是使用 Mandrake 之類的 Linux distribution 的話,由於他預設是以 Postfix 這個優良的郵件伺服器系統,所以您可以不費吹灰之力的,就將 Postfix 以 RPM 安裝完畢囉!基本上,如果是 Mandrake 的話,你需要安裝的套件大致上有:
    • [color="#000066"]SMTP 認證套件: cyrus-sasl ( cyrus-sasl-1.5.27-5mdk 以及其他認證機制函式庫 )
    • [color="#000066"]Postfix 郵件伺服器: postfix ( postfix-1.1.11-4mdk )
    • [color="#000066"]POP3 伺服器: imap ( imap-2001a-9mdk, imap-devel-2001a-9mdk 兩個 )
    • [color="#000066"]郵件分析軟體:procmail ( procmail-3.22-3mdk )
    你至少要安裝的套件就有上面這幾個,同時,請拿出您的原版光碟將上面的套件全部安裝吧!安裝的方法我們在『
    鳥哥的 Linux 私房菜 -- 基礎學習篇
    』介紹過的
    RPM 與 Tarball 安裝方法
    裡面提過多次了,請自行參考喔!安裝完畢之後,你的主機就已經具有 Postfix 這個系統啦!不過,由於我們還要提供 SMTP 以及其他相關的功能,所以這裡我們必需要確認一下各個套件是否都完全的安裝了呢?底下我們就一個一個的來設定吧!([color="#000066"]註:請特別留意 Cyrus-sasl 的版本,因為不同的版本他的函式庫所在目錄與設定檔都不相同!因此,在本篇文章中,您會發現我使用 Tarball 安裝的 2.xx 版本與使用 RPM 安裝的 1.5.xx 版本設定檔的內容不相同,不要懷疑,確實是如此的喔! )
      [color="#cccccc"]安裝 cyrus-sasl[color="#cccccc"]1. 安裝
    [color="#ff6666"]# 安裝的方法很簡單,就是使用 RPM 即可!不過,請先確認是否已經安裝!
    [color="#ffffff"][root@test root]# [color="#ffff00"]rpm -qa | grep sasl
    [color="#ffffff"]libsasl7-1.5.27-5mdk
    [color="#ffffff"]cyrus-sasl-1.5.27-5mdk
    [color="#ffffff"]libsasl7-devel-1.5.27-5mdk
    [color="#ffffff"]libsasl7-plug-plain-1.5.27-5mdk
    [color="#ffffff"]libsasl7-plug-login-1.5.27-5mdk
    [color="#ff6666"]# 如果尚未安裝該套件,請拿出你的光碟片, mount 光碟,然後找尋該檔案,
    [color="#ff6666"]# 直接安裝他吧!不過要注意的是,上面的檔案都要安裝喔!因為我們使用的
    [color="#ff6666"]# 是最基本的 plain 與 login 這兩個機制,所以至少我們要安裝上面五個咚咚!
    [color="#ffffff"][root@test root]# [color="#ffff00"]rpm -ivh cyrus-sasl-1.5.27-5mdk.i586.rpm
    [color="#ff6666"]# 如果有發生屬性相依的問題,請自行再將需要的檔案自光碟當中找出,
    [color="#ff6666"]# 然後加以安裝吧![color="#cccccc"]
    [color="#cccccc"]2. 設定與啟動
    [color="#ff6666"]# 由於 Cyrus-sasl 在 Mandrake 當中是 1.5.27 版本,所以他能支援的項目有:
    [color="#ffccff"]shadow : 使用 /etc/shadow 做為認證碼;
    [color="#ffccff"]pam  : 使用 pam 模組做為認證,這個需要在 /etc/pam.d 這個目錄下新增
    [color="#ffccff"]     一個名為 smtp 的檔案,並設定檔案內容才行!
    [color="#ffccff"]sasldb : 使用 SASL 的認證函式庫,使用這個功能時,你必需要額外的
    [color="#ffccff"]     指定 1.函式庫的名稱; 2.使用 saslpasswd 程式增加使用者!
    [color="#ffccff"]     鳥哥個人認為這個功能不太好用,因為每新增一個使用者需要主動的
    [color="#ffccff"]     幫使用者新增帳號、密碼到認證函式庫中,不太方便!
    [color="#ffccff"]     不過如果您還使用其他的伺服器如 LDAP, MySQL 等等軟體時,
    [color="#ffccff"]     則這個功能可就大大的有幫助啦!因為他可以分享帳號與密碼吶!
    [color="#ffccff"]pwcheck: 這個功能就不錯啦! pwcheck 是一個服務(daemon),必需要在
    [color="#ffccff"]     啟動 postfix 之前就啟動啦,因為 sasl 的認證就靠這個 daemon,
    [color="#ffccff"]     基本上,他可以經由讀取 /etc/shadow 的資料來提供 client 端
    [color="#ffccff"]     認證的功能!目前我們 Mandrake 9.0 預設使用的是這個 daemon!
    [color="#ff6666"]# 給他設定開機時啟動 pwcheck 的功能吧!
    [color="#ffffff"][root@test root]# [color="#ffff00"]vi /etc/rc.d/rc.local
    [color="#ff6666"]# 在這個檔案當中最底下新增一行:
    [color="#ffff00"]/usr/sbin/pwcheck
    [color="#ff6666"]# 並且立刻執行這個 daemon 喔:
    [color="#ffffff"][root@test root]# [color="#ffff00"]/usr/sbin/pwcheck
    [color="#ffffff"][root@test root]#[color="#ffff00"] ps -aux | grep pwcheck
    [color="#ffffff"]root   12602  0.0  0.5  1460  348 ?    S  02:59   0:00 /usr/sbin/pwcheck
    [color="#ff6666"]# 看到沒!要出現這個咚咚才算是有啟動 pwcheck 喔!
    [color="#ff6666"]# 在 Sendmail 當中,我們必需建立一個名為 Sendmail.conf 的檔案,來告訴
    [color="#ff6666"]# sasl 我們所需要的認證模式,那麼在 postfix 當中也一樣,我們必需要建立
    [color="#ff6666"]# 一個檔案名稱為[color="#ffccff"]smtpd.conf[color="#ff6666"]來告訴 sasl ,喝!我 postfix 要的認證方式為何!
    [color="#ff6666"]# 所以你需要這樣做:
    [color="#ffffff"][root@test root]# [color="#ffff00"]cd /usr/lib/sasl
    [color="#ffffff"][root@test sasl]# [color="#ffff00"]echo 'pwcheck_method: pwcheck'  >  smtpd.conf
    [color="#ff6666"]# 上面這樣做完之後,系統就知道了:
    [color="#ffccff"]1. postfix 要用 SMTP 認證時會去讀取 /usr/lib/sasl/smtpd.conf 並且知道
    [color="#ffccff"]  是以 pwcheck 這支程式進行身份認證的動作;
    [color="#ffccff"]2. 而 pwcheck 這支程式會主動去讀取 /etc/shadow ,裡面的密碼做認證
    [color="#ff6666"]# 到此為止,就已經設定好了 cyrus sasl 的部分啦!
      [color="#cccccc"]安裝 postfix[color="#cccccc"]1. 安裝
    [color="#ff6666"]# 安裝的方法很簡單,就是使用 RPM 即可!不過,請先確認是否已經安裝!
    [color="#ffffff"][root@test root]# [color="#ffff00"]rpm -qa | grep postfix
    [color="#ffffff"]postfix-1.1.11-4mdk
    [color="#ff6666"]# 如果尚未安裝該套件,請拿出你的光碟片, mount 光碟,然後找尋該檔案,
    [color="#ff6666"]# 直接安裝他吧!
    [color="#ffffff"][root@test root]# [color="#ffff00"]rpm -ivh postfix-1.1.11-4mdk.i586.rpm
    [color="#ff6666"]# 這樣就安裝完畢啦!主機設定的部分請參考下一節喔!
      [color="#cccccc"]安裝 procmail[color="#cccccc"]1. 安裝
    [color="#ffffff"][root@test root]# [color="#ffff00"]rpm -qa | grep procmail
    [color="#ffffff"]procmail-3.22-3mdk[color="#cccccc"]
    [color="#cccccc"]2. 設定:
    [color="#ff6666"]# 在設定方面,這主要與 procmail 有關而已,您可以下載 procmailrc
    # 並放置到 /etc/ 底下即可詳細的資料請參考上一章
    簡易 sendmail 之說明

      [color="#cccccc"]安裝 imap[color="#cccccc"]1. 安裝
    [color="#ffffff"][root@test root]# [color="#ffff00"]rpm -qa | grep imap
    [color="#ffffff"]imap-2001a-9mdk
    [color="#ffffff"]imap-devel-2001a-9mdk[color="#cccccc"]
    [color="#cccccc"]2. 設定:
    [color="#ff6666"]# 直接設定成為開機啟動即可:
    [color="#ffffff"][root@test root]#[color="#ffff00"] chkconfig --add ipop3
    [color="#ffffff"][root@test root]#[color="#ffff00"] /etc/rc.d/init.d/xinetd restart
    [color="#ff6666"]# 這樣就已經可以收信件啦!
     
    [color="#000066"]安裝的地方當中,重點在於 Cyrus-SASL 的安裝啦!由於我們需要有 SASL 的支援,所以必需要安裝這個咚咚!並且也需要設定 smtpd.conf 這個檔案!這樣就已經差不多 OK 啦!接下來請繼續參考
    主機設定
    的地方嚕!
     
    [color="#000066"]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 來進行安裝即可!
      [color="#cccccc"]1. 安裝:
    [color="#ffffff"][root@test root]#[color="#ffff00"] apt-get install postfix
    [color="#ffffff"][root@test root]#[color="#ffff00"] apt-get install cyrus-sasl
    [color="#ffffff"][root@test root]#[color="#ffff00"] apt-get install procmail 
    很簡單吧!這樣就搞定了 Red Hat 9 的 Postfix 囉!([color="#000066"]注意, Mandrake 與 Red Hat 不同版本所使用的 Cyrus SASL 機制並不相同喔!在 Mandrake 當中預設是 pwcheck 而在 Red Hat 則預設使用 sasldb 這個驗證機制!並且,由於 Red Hat 9 在編譯 postfix 的時候使用的是 SASL version 1 ,所以無法使用 saslauthd 這個好用的機制,鳥哥認為,您最好使用 Tarball 來安裝您的 Postfix 在您的 Red Hat 9 上面喔!)
     
    [color="#000099"]使用 Tarball 安裝完整的 Postfix + POP3 + SMTP + Procmail (適用任何版本的 Linux 喔!)
     
    以 Tarball 安裝 Postfix 也不困難,比起 sendmail 來說,要簡單的很多喔!我們這裡選擇的主要套件有: 至於 procmail 與 imap 兩個套件都使用 Linux distribution 提供的 RPM 版本就好了,不需要額外的改裝啊!那麼底下就來談一談怎麼安裝吧!([color="#000066"]註: 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 的安裝呢!)
      [color="#cccccc"]安裝 Cyrus SASL 2.xx 版本![color="#cccccc"]1. 首先將資料解壓縮(假設您將我們網站的檔案捉到 /root 底下了!)
    [color="#ffffff"][root@test root]# [color="#ffff00"]cd /usr/local/src
    [color="#ffffff"][root@test src]# [color="#ffff00"]tar -zxvf /root/cyrus-sasl-2.1.12.tar.gz
    [color="#ff6666"].....(略).....最後建立一個 cyrus-sasl-2.1.12 的目錄[color="#cccccc"]
    [color="#cccccc"]2. 再來就是設定你的 cyrus SASL 的參數以及編譯囉!
    [color="#ffffff"][root@test src]# [color="#ffff00"]cd cyrus-sasl-2.1.12
    [color="#ffffff"][root@test cyrus-sasl-2.1.12]# [color="#ffff00"]./configure   
    [color="#ffffff"]> [color="#ffff00"]--prefix=/usr/local/cyrus-sasl2 --enable-login --enable-plain
    [color="#ffffff"]>[color="#ffff00"] --enable-pwcheck --with-saslauthd=/var/run
    [color="#ff6666"]# 注意上面的語法!!那個  是跳脫字元喔!後面直接 Enter !
    # 不要接任何空白或者是 tab 按鍵!若有問題,請到
    Shell
    看看!
    [color="#ff6666"]# 至於那個 pwcheck 的項目,就是要用來做為密碼確認的一個咚咚囉!
    [color="#ffffff"][root@test cyrus-sasl-2.1.12]# [color="#ffff00"]make clean && make
    [color="#ffffff"][root@test cyrus-sasl-2.1.12]# [color="#ffff00"]make install
    [color="#ff6666"]# 上面三個步驟會花去一些時間,請耐心等待~
    [color="#ff6666"]# 而由於我們剛剛設定了[color="#ffccff"] --prefix=/usr/local/cyrus-sasl2 [color="#ff6666"]這個參數,
    [color="#ff6666"]# 所以, make install 之後,我們有用的函式庫會在
    [color="#ff6666"]#[color="#ffccff"] /usr/local/cyrus-sasl2/lib/sasl2 [color="#ff6666"]這個路徑當中,但是, cyrus 程式
    [color="#ff6666"]# 會主動去找 [color="#ffccff"]/usr/lib/sasl2 [color="#ff6666"]這個目錄!所以,我們必需要做連結檔!
    [color="#ff6666"]# 才可以讓未來我們的 postfix 可以直接找的到我們所要的函式庫喔!
    [color="#ffffff"][root@test cyrus-sasl-2.1.12]# [color="#ffff00"]cd /usr/lib
    [color="#ffffff"][root@test lib]#[color="#ffff00"] ln -s /usr/local/cyrus-sasl2/lib/* .
    [color="#ff6666"]# 這樣就建立起連結檔囉!很簡單吧! ^_^不過要注意喔,
    [color="#ff6666"]# 上面這一行最後面那個小數點『.』不要忘記加了![color="#cccccc"]
    [color="#cccccc"]3. 準備建立 Postfix 與 cyrus SASL 使用的簡易設定檔:
    [color="#ffffff"][root@test lib]# [color="#ffff00"]cd /usr/lib/sasl2
    [color="#ffffff"][root@test sasl2]# [color="#ffff00"]echo 'pwcheck_method: saslauthd' > smtpd.conf
    [color="#ffffff"][root@test sasl2]# [color="#ffff00"]echo 'mech_list:plain login'  >>  smtpd.conf
    [color="#ff6666"]# 注意了!一般來說, Postfix 會使用 SASL 這個函式庫裡面相關的設定檔,
    [color="#ff6666"]#[color="#ffccff"] /usr/lib/sasl2/smtpd.conf [color="#ff6666"]這個檔案的設定就是 Postfix 的預設使用 SASL 的
    [color="#ff6666"]# 參數檔案,與 1.5.xx 版本不太相同的地方是, 2.xx 版本使用不同的機制:
    [color="#ffccff"]auxprop :使用 sasldb2 這個共享資料庫,同樣需要使用共享密碼檔案喔!
    [color="#ffccff"]     所以一般來說,單純的 Postfix 比較少使用這種機制;
    [color="#ffccff"]saslauthd:使用 saslauthd 這個 daemon 進行認證的工作,所以幾乎
    [color="#ffccff"]     不需要其他的設定值哪,指定 saslauthd 就好啦! ^_^
    [color="#ffccff"]pwcheck :使用與 1.5 版相似的認證 daemon ,不過在 2.xx 版本裡面這個模式
    [color="#ffccff"]     支援度比較沒有這麼好的啦,所以請愛用 saslauthd 囉!
    [color="#ff6666"]# 我們使用 SASL 預設的 saslauthd 這支程式做為密碼認證的 daemon。
    [color="#ff6666"]# 至於 [color="#ffccff"]mech_list:plain login [color="#ff6666"]是列出支援的認證機制的意思,我們使用的
    [color="#ff6666"]# 是極為簡單的 login 與 plain 兩種機制而已![color="#cccccc"]
    [color="#cccccc"]4. 建立一些需要的參數:
    [color="#ffffff"][root@test sasl2]# [color="#ffff00"]vi /etc/man.config
    [color="#ff6666"]# 新增底下這一行之後,未來我們就可以透過 man 這個工具來查詢 sasl
    [color="#ff6666"]# 相關的指令的用法了!而不需要修改任何咚咚!不過要注意的是,
    [color="#ff6666"]# 這個檔案在每個 Linux distributions 當中不見得相同,例如 Open Linux
    [color="#ff6666"]# 檔名是 /etc/man.conf 呢!
    [color="#ffff00"]MANPATH /usr/local/cyrus-sasl2/man[color="#cccccc"]
    [color="#cccccc"]5. 檢驗 saslauthd 這支程式是否可行!
    [color="#ff6666"]# 在 cyrus-sasl 的原始碼裡面提供了一支小程式用來判斷 saslauthd 的認證機制
    [color="#ff6666"]# 是否成功的啟動了,這個小程式就是 testsaslauthd 囉!在剛剛原始碼目錄下,
    [color="#ff6666"]# 所以你可以這樣做:
    [color="#ffffff"][root@test sasl2]#[color="#ffff00"] /usr/local/cyrus-sasl2/sbin/saslauthd -a shadow
    [color="#ff6666"]# 執行之後, saslauthd 的 PID 會被紀錄到 /var/run/mux.pid 這個檔案!
    [color="#ffffff"][root@test sasl2]#[color="#ffff00"] cd /usr/local/src/cyrus-sasl-2.1.12/saslauthd/
    [color="#ffffff"][root@test saslauthd]#[color="#ffff00"] make testsaslauthd
    [color="#ffffff"][root@test saslauthd]#[color="#ffff00"] ./testsaslauthd -u userID -p 'yours.passwd'
    [color="#ffffff"]0: OK "Success."
    [color="#ff6666"]# 若顯示 OK 的話!那麼就是成功啦!很好!我喜歡~[color="#cccccc"]
    [color="#cccccc"]6. 設定開機時啟動
    [color="#ffffff"][root @test saslauthd]# [color="#ffff00"]vi /etc/rc.d/rc.local
    [color="#ff6666"]# 加入這一行:
    [color="#ffff00"]/usr/local/cyrus-sasl2/sbin/saslauthd -a shadow
      [color="#cccccc"]安裝 Postfix 2.xx 版本![color="#cccccc"]0. 先確認有沒有這個檔案存在!因為我們的 Postfix 會使用到很多資料庫啊!
    [color="#ffffff"][root@test root]# [color="#ffff00"]locate pcre.h | grep include
    [color="#ffffff"]/usr/include/pcre.h
    [color="#ff6666"]# 這個檔案也有可能存在於 /usr/include/pcre/pcre.h 裡面!不要擔心,存在就好了
    [color="#ff6666"]# 如果沒有存在的話,例如 Mandrake 9.0 預設狀態可能並不會主動安裝這個套件,
    [color="#ff6666"]# 請自行拿出原版光碟,安裝 MDK 的 libpcre0xxxx 檔案,至於 redhat 等
    [color="#ff6666"]# 其他版本,請自行安裝 pcre 相關的套件吧!在 Red Hat 9 則是需要
    [color="#ff6666"]# pcre-devel 這個套件喔! ( apt-get install pcre-devel)[color="#cccccc"]
    [color="#cccccc"]1. 首先將資料解壓縮(假設您將我們網站的檔案捉到 /root 底下了!)
    [color="#ffffff"][root@test root]# [color="#ffff00"]cd /usr/local/src
    [color="#ffffff"][root@test src]# [color="#ffff00"]tar -zxvf /root/postfix-2.0.4.tar.gz
    [color="#ff6666"].....(略).....最後建立一個 postfix-2.0.4 的目錄[color="#cccccc"]
    [color="#cccccc"]2. 清除規則並且建立新的使用 SMTP 的規則給 postfix
    [color="#ffffff"][root@test src]# [color="#ffff00"]cd /usr/local/src/postfix-2.0.4
    [color="#ffffff"][root@test postfix-2.0.4]# [color="#ffff00"]make tidy  [color="#ffccff"]# 清除規則
    [color="#ffffff"][root@test postfix-2.0.4]# [color="#ffff00"]make makefiles CCARGS="-DUSE_SASL_AUTH
    [color="#ffffff"]>[color="#ffff00"]  -I/usr/local/cyrus-sasl2/include/sasl/"  
    [color="#ffffff"]>[color="#ffff00"]  AUXLIBS="-L/usr/local/cyrus-sasl2/lib -lsasl2"
    [color="#ff6666"]# 上面的動作在建立 Makefile 囉!其中那個 -CCARGS 後面接的 [color="#ffccff"]-DUSE_SASL_AUHT
    [color="#ff6666"]#[color="#ffccff"] -I/usr/local/cyrus-sasl2/include/sasl[color="#ff6666"] 其中 [color="#ffccff"]-I 後面的路徑就是 SASL2 的
    [color="#ff6666"]#[color="#ffccff"] 函式庫所在的目錄喔[color="#ff6666"]!請依照您安裝的 sasl2 目錄所在而定!
    [color="#ffffff"][root@test postfix-2.0.4]# [color="#ffff00"]make
    [color="#ff6666"]# 就是開始編譯啦!過程有點久喔!如果有出現任何 Error 時,
    [color="#ff6666"]# 請將 error 仔細的查看一下吧!通常最大的原因都是一些
    [color="#ff6666"]# include 檔案沒有安裝,也就是某些重要的套件沒有安裝之故,
    [color="#ff6666"]# 例如 pcre.h 這個檔案就是一個例子囉!
    [color="#ff6666"]#[color="#ffccff"] 解決的方法就是將該缺乏的套件安裝進去系統啦!
    [color="#ff6666"]# 如果是 Red Hat 9 的話,可以這樣下達指令:
    [color="#ff6666"]# [color="#ffccff"]make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/include/sasl"
    [color="#ff6666"]# [color="#ffccff"]AUXLIBS="-L/usr/lib/sasl2 -lsasl2"
    [color="#ff6666"]# 因為 Red Hat 9 的 SASL2 路徑在 /usr/include/sasl ,這裡要特別的強調,
    [color="#ff6666"]# 否則由於 Red Hed 9 同時提供 Cyrus SASL 1.5.x 以及 2.x.x 的版本,
    [color="#ff6666"]# 可能會造成程式的誤判,那麼很可能會出現下列的錯誤喔:
    [color="#ff6666"]# [color="#ffccff"]fatal: SASL per-connection security setup[color="#ffffff"]
    [color="#ff6666"]# 上面的錯誤訊息出現在 /var/log/maillog 中![color="#cccccc"]
    [color="#cccccc"]3. 安裝前準備工作:
    [color="#ff6666"]# 如果您的系統是由 sendmail 要改換到 Postfix 的話,你不需要移除 sendmail ,
    [color="#ff6666"]# 不過卻需要進行一些小手術喔!
    [color="#ffffff"][root@test postfix-2.0.4]# [color="#ffff00"]mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
    [color="#ffffff"][root@test postfix-2.0.4]# [color="#ffff00"]mv /usr/bin/newaliases /usr/bin/newaliases.OFF
    [color="#ffffff"][root@test postfix-2.0.4]# [color="#ffff00"]mv /usr/bin/mailq /usr/bin/mailq.OFF
    [color="#ffffff"][root@test postfix-2.0.4]#[color="#ffff00"] chmod 755 /usr/sbin/sendmail.OFF
    [color="#ffffff"]> [color="#ffff00"] /usr/bin/newaliases.OFF /usr/bin/mailq.OFF
    [color="#ff6666"]# 此外,還需要建立一個名為 postdrop 的群組與 postfix 的使用者喔!
    [color="#ffffff"][root@test postfix-2.0.4]#[color="#ffff00"] groupadd -r postdrop
    [color="#ffffff"][root@test postfix-2.0.4]#[color="#ffff00"] useradd -r -s /bin/false postfix
    [color="#ff6666"]# 建立一個系統資料帳號吶!
    [color="#ffffff"][root@test postfix-2.0.4]# [color="#ffff00"]echo 'postfix:  root' >> /etc/aliases
    [color="#ff6666"]# 請注意,如果您之前安裝過 sendmail 的話,那麼不同版本的 sendmail 他的
    [color="#ff6666"]aliases 放置的目錄並不相同,所以上面這行指令請依您的主機來設定![color="#cccccc"]
    [color="#cccccc"]4. 開始安裝 Postfix 到 /etc/postfix 這個目錄下:
    [color="#ffffff"][root@test postfix-2.0.4]#[color="#ffff00"] make install
    [color="#ff6666"]# 底下會出現一大堆的問題集,不管如何,幾乎按下 enter 就對啦!
    [color="#ff6666"]# 除了底下這兩個問題(最後兩個)可以選擇將 readme 檔案存下來喔!
    [color="#ffffff"]Please specify the destination directory for the Postfix sample
    [color="#ffffff"]configuration files.
    [color="#ffffff"]sample_directory: [/etc/postfix] [color="#ffff00"]/etc/postfix/sample
    [color="#ffffff"]Please specify the destination directory for the Postfix README
    [color="#ffffff"]files. Specify "no" if you do not want to install these files.
    [color="#ffffff"]readme_directory: [no] [color="#ffff00"]/etc/postfix/readme_files
    # 這樣就安裝成功啦!接下來請開始查閱
    主機的設定
    那一節囉!
     [color="#000099"]主機的設定
      安裝完畢 postfix 之後,接著下來就是設定了!同樣的,在設定主機之前,有幾個東西是您必需先取得的喔:
       
    • [color="#000066"]具有合法的 hostname ,或者是經過授權的 DNS 主機來設定您自己的主機名稱(hostname);
    • [color="#000066"]您的 hostname 最好擁有一個 MX 的紀錄(record);
    • [color="#000066"]至少一定要瞭解到什麼是 Relay 的問題,以及規劃一下您所想要開放 relay 的網域;  
      你至少需要有這些資料才行吶!好了,我先假設一下我的案例好了:
       
    • [color="#000066"]我的 hostname 為 vbird.adsldns.org;
    • [color="#000066"]我的 hostname 還有個別名為 www.vbird.adsldns.org ,也就是說, vbird.adsldns.org 與 www.vbird.adsldns.org 都指向同一個 IP ;
    • [color="#000066"]我的 domain name 為 adsldns.org ;
    • [color="#000066"]我預計開放的 relay 網域為 vbird.org 這個網域,與內部的 192.168.1.0/24 這個網域,還要可以使用 access 這個檔案的設定功能!  
      開始來瞭解 postfix 囉! ^_^
       
      [color="#000099"]Postfix 的結構
       
      在主機的設定之前我們得先瞭解一下 postfix 的整體構造,以方便以後來處理我們的檔案吶!所以底下我們會先針對 postfix 這個套件的結構做個簡單的說明,然後再針對各個設定項目來進行說明囉!Postfix 的設定檔幾乎完全都在 /etc/postfix 裡面,至於執行檔則在 /usr/sbin 裡面,我們分別來談一談幾個主要的注意事項吧!
       
      • [color="#000099"]設定檔:[color="#000066"]Postfix 的設定檔都在 /etc/postfix 裡面,主要的設定檔有:
       
        • [color="#000066"]/etc/postfix/main.cf :這個就是最重要的 postfix 的設定檔了!等一下我們談到的設定都在這個檔案裡面進行修改的動作!基本上,他本身就是一個簡單的說明文件檔啦!不過,要注意的是,在你修改完成了 main.cf 之後,請記得『[color="#000066"]一定要重新 reload 或重新 restart postfix 才行!』
         
        • [color="#000066"]/etc/postfix/master.cf:這個檔案是另外一個重要的 postfix 設定檔!他主要是規定了 postfix 每個程序的咦鲄?担
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP