twbsd.org
 
  Select Language: Home  SmbFTPD Bug Tracker  Forum 

書籍資料

ch00 序.htm

ch01 FreeBSD 簡介.htm

ch02 安裝 FreeBSD.htm

ch03 UNIX 系統入門.htm

ch04 使用者管理.htm

ch05 網路設定.htm

ch06 檔案系統管理.htm

ch07 系統安全.htm

ch08 編譯核心.htm

ch09 系統調校.htm

ch10 軟體安裝.htm

ch11 X Window 的使用.htm

ch12 NAT 及防火牆.htm

ch13 網頁伺服器.htm

ch14 網頁伺服器進階應用.htm

ch15 FTP 伺服器.htm

ch16 郵件伺服器.htm

ch17 郵件伺服器進階應用.htm

ch18 DHCP伺服器.htm

ch19 資料庫系統.htm

ch20 Samba 網路芳鄰.htm

ch21 NFS.htm

ch22 DNS 伺服器.htm

ch23 指令應用.htm

ch24 Shell Script.htm

cha1 附錄A etc目錄下的檔案介紹.htm

cha2 附錄B 製作 FreeBSD 安裝光碟.htm

cha3 附錄C 版權宣告.htm

 


View printable page

第十七章 郵件伺服器進階應用

基本的郵件伺服器已能滿足大多數人的需求,但經過一段時間之後,您可能會遇到更多的使用者要求。例如,開始有人報怨垃圾信太多、有人希望可以使用網頁收發信件等等。本章將介紹一些郵件伺服器的應用,讓您的伺服器功能更加強大。

讀完本章後,您將了解下列主題:

  • 如何架設虛擬郵件主機。
  • 如何阻擋垃圾信及病毒信。
  • 如何架設 Openwebmail 以使用網頁收發信件。

17.1 虛擬郵件主機

如果我們想要在同一台機器上收多台主機的信件,或者想要在一台主機上設定可以 "收" "發" 信件的虛擬帳號 (如果只要收,可以簡單的設定 aliases 即可),我們可以經由虛擬主機的設定來達成。假設有二個 Domain Name,一個是 abc.com,另一個是 old.cde.com。這份文件包含了二種設定方式:一個是讓二個 domain name 收到的信對映到一台機器上的使用者,也就是說不能有不存在的虛擬使用者;另一個設定是讓你可以設定不同的虛擬使用者對映到不同機器上的任何使用者。不管我們要做哪一種設定,都必需要先設定 DNS。
請注意,這份文件中的設定並不會讓你可以擁有一個真正的虛擬帳號,因為這裡是將虛擬帳號對映到一個存在的郵件位址。使用這份文件的設定和設定 /etc/aliases 最大的不同在於設定 aliases 只能讓虛擬的帳號收信,而無法寄信。

17.1.1 DNS 設定

為了要讓寄出去的信知道要往哪一台主機上送,必須要先設定 DNS。假設我們現在已經有一台設定好 DNS 的主機,hostname 是 abc.com。我們要讓 abc.com 處理 old.cde.com 的信件的話,最簡單的方式就是將 mail.cde.com 指向 abc.com (CNAME records),也就是二個 doamin 有同樣的 IP。不過這樣一來,old.cde.com 就不能獨立存在了,也就是說不會有一台機器的 hostname 名為 old.cde.com,並提供 FTP、www(也可以有虛擬主機)、telnet等服務。

因此,我們要使用的是改變 DNS 的 MX record。設定只有處理該主機的郵件時,才將 old.cde.com 轉向 abc.com。請在你的 DNS 中加入下列設定:

old.cde.com        IN  MX  10    abc.com.

完成後要重新讀設定檔並等一段時間設定才會在網路上生效。接著我們就可以來做 sendmail 的設定了。

17.1.2 對映到同一台機器的真實使用者

第一種設定的使用時機,例如你的公司主機原來是 mail.cde.com,現在換成了 abc.com,你希望讓原本的使用者 jack@mail.cde.com 和新的 jack@abc.com 都能由 jack@abc.com 來收信。這種設定很簡單,只要編輯 /etc/mail/relay-domains/etc/mail/local-host-names 這二個檔案,加入要增加收信的主機名稱即可。以本例而言,除了那二個檔案原本的內容外,要再增加一行:

mail.cde.com

這樣了不管是原本 mail.cde.com 或是真正主機名稱 abc.com 的信件,都可以由 abc.com 的相同的使用者收信。

17.1.3 可以擁有虛擬使用者

第二種設定是讓我們可以設定一個虛擬的帳號,並且可以利用它來送信。這個設定是經由編輯 /etc/mail/virtusertable 來達成。相同的,我們在 abc.com 這台主機中設定它的 virtusertable。我們以下列二個 virtusertable 的例子來說明,請注意,二個欄位間的空白是用 tab 鍵,而非使用空白鍵:

範例一:

joe@mail.cde.com            jschmoe
jane@mail.cde.com           jdoe@othercompany.com
@mail.cde.com               jschmoe

上面的例子中,凡是寄給 joe@mail.cde.com 的信都會送給本地使用者 jschmoe。而以 joe@mail.cde.com 寄出的信收件人所看到的寄件人一樣是 joe@mail.cde.com,如果在寄信時要身份認證的話,必須使用 jschmoe 的帳號及其密碼。接下來,寄給 jane@mail.cde.com 的信會送給 jdoe@othercompany.com,剩下來所有給 mail.cde.com 的信都會送給本地 jschmoe 這個使用者。

範例二:

joe@mail.cde.com            jschmoe
bogus@mail.cde.com          error:nouser No such user here
list@mail.cde.com           yourdomain-list
@mail.cde.com               %1@othercompany.com

這一個例子中,第一行和範例一一樣,凡是寄給 joe@mail.cde.com 的信都會送給本地使用者 jschmoe。而凡是寄給 bogus@mail.cde.com 都會回應沒有這個使用者。第三行如果是寄給 list@mail.cde.com 的信,都會轉給本地的 yourdomain-list 這個虛擬使用者,你可以在 /etc/aliases 中加入關於 yourdomain-list 這個使用者的信要怎麼處理,怎麼設定別名。最後一行,凡是其他非上述三行使用者的信,都交由在 othercompany.com 這台機器上相對映的使用者來處理。

你可以依照上面的範例來編輯你的 virtusertable,完成編輯後,必須要使用以下指令來將這些檔案做成 sendmail 能接受的 DB 格式:

# makemap hash virtusertable.db < virtusertable
# newaliases

都完成後,我們就可以到別台機器使用虛擬帳號來試試收發信。假設我們要使用的虛擬帳號是上述範例一中的第二行 jane@mail.cde.com,以 outlook 中的設定為例,所設定的 E-mail 仍然是 jane@mail.cde.com,如下圖所示:

圖 17-1

所設定的 pop3 及 smtp 主機也是 mail.cde.com。但是使用者及密碼是 othercompany.com 上的使用者 jdoe 及其密碼,如下圖所示:

圖17-2

在上圖中,如果 othercompany.com 在寄信時要身份認証,則上圖中 "外寄郵件伺服器" 的選項 "我的伺服器需要驗證"必須打勾。如此一來您就可以使用 jane@mail.cde.com 來收發信,而且在別人收到信時會顯示寄件人是 jane@mail.cde.com。

17.2 垃圾信及病毒防護

全拜電子郵件所賜,經由網際網路,我們可以很快的傳送郵件。然而,卻有人利用電子郵件從事令人不悅的廣告發送行為。垃圾郵件可以說是目前網路上最令人厭惡的行為,相信常使用電子郵件的讀者們每天一定都會收到許多垃圾信件。所有伺服器上處理的使用者都要處理這些垃圾郵件簡直是太浪費資源了。而且,除了垃圾信外,郵件中所夾帶的病毒也十分危險,萬一有人不小心打開了具有病毒的信件,接下來又是另一場災難。

面對這些垃圾信及病毒信,我們有更好的解決方式,就是使用 MailScanner 加上病毒防護的功能,讓我們的郵件伺服器更加安全、好用。MailScanner 是一套免費的軟體,很多網站都使用它來過濾垃圾信件。除了垃圾信外,我們還可以外掛其它模組,以支援病毒掃瞄。另外,我們也可以用它來阻擋具有特定的副檔名附件的郵件。您可以到 http://www.sng.ecs.soton.ac.uk/mailscanner/ 找到更多關於 MailScanner 的說明。

使用 MailScanner 的好處是我們原本安裝的 Sendmail 不需要做任何的修改,只要將 Sendmail 跑在 MTA only 的模式即可。

17.2.1 MailScanner 架構說明

在沒有安裝任何垃圾信處理軟體之前,在寄信、或者由其它伺服器收到信件時,我們的伺服器會先判斷該信件是否為本機的信件,如果是,則呼叫 MDA (mail 這支指令),將信件放到 /var/mail 目錄下。如果是要給其它伺服器的信件,則放到 /var/spool/mqueue 下,Sendmail 會定時檢查該目錄,並將信件傳送出去。示意圖如下所示:

圖 17-3

在有了 MailScanner 後,當 Sendmail 收到信後,會先將信件放到 /var/spool/mqueue.in 中。接下來 MailScanner 會定時去檢查該目錄下的檔案,經過 MailScanner 掃瞄檢查後,合法的郵件會被放到 /var/spool/mqueue 中。接下來的處理程序就和原本 Sendmail 的處理一樣。示意圖如下:

圖 17-4

MailScanner 在檢查郵件時有很多功能,它使用了一些外掛模組來檢查垃圾信及病毒信。詳細的檢查過程如下:

  • 定時檢查 /var/spool/mqueue.in 中的郵件。
  • 先使用 RBL 檢查寄件者的 IP 是否在黑名單中。
  • 使用 SpamAssassin 來檢查信件內容,看看信件格式是否有不合法或是具有垃圾信特徵。
  • 呼叫病毒檢查的模組來掃瞄郵件。
  • 進行其它的內容檢查,包含附件的副檔名、郵件內容是否包含特定的 HTML 格式等等。
  • 全都都合法則將信件放到 /var/spool/mqueue 中。如果不合法,則依我們的設定進行退信、隔離、刪除、或加上標記後送出。

圖 17-5

當 MailScanner 判斷某封信件為垃圾信時,它有幾種處理模式,包含附加標記在主旨上後送出、退信、刪除、隔離、轉寄等等。我們在使用 MailScanner 之後,應該要先在郵件的主旨上附上標記後送出。當有使用者發現不是垃圾信卻被設為垃圾信時,我們可以將該信件的寄件者加入白名單中 (就是不檢查信件的寄件者清單)。如此運作一段時間都沒問題後,再使用比較嚴格的方式,進行退信或刪除。如此一來,我們才不會遺漏正常的信件。

MailScanner 的功能十分強大,但是設定卻很容易,我們只要進行一些基本設定,即可以擁有強大的垃圾信及病毒掃瞄功能。

17.2.2 安裝 MailScanner

FreeBSD 已經將 MailScanner 放入 ports 中,我們只要使用 ports 來安裝即可。除了 MailScanner 外,我們還要安裝 SpamAssassin 及防毒軟體 ClamAV。

首先請使用下列指令安裝 MailScanner:

# cd /usr/ports/mail/mailscanner/
# make install

接著會出現一個進階選項的視窗,請將 SpamAssassin 及 ClamAV 打勾。

安裝完 MailScanner 後,我們要先初始化設定檔:

# make initial-config

由於 MailScanner 會取代原本 Sendmail 的部份功能,而 Sendmail 只要啟用 MTA 模式即可,所以我們先編輯 /etc/rc.conf 並停用原本的 Sendmail。

sendmail_enable="NONE"

接著,我們必須先進行一些基本的設定。我們在 rc.conf 中設定開機時要啟動 MTA 及 MailScanner。另外在防毒軟體方面,我們必須設定定時更新病毒碼。請先編輯 /etc/rc.conf 並加入下列這幾行:

mta_enable="YES"
mailscanner_enable="YES"
clamav_freshclam_enable="YES"

mta_enable="YES" 
mta_type="sendmail" 
mta_profiles="incoming outgoing submitqueue"
mta_incoming_flags="-L sm-mta-in -bd -OPrivacyOptions=noetrn -OQueueDirectory=/var/spool/mqueue.in -ODeliveryMode=queueonly"
mta_incoming_pidfile="/var/run/sendmail_in.pid"
mta_incoming_configfile="/etc/mail/sendmail.cf"
mta_outgoing_flags="-L sm-mta-out -q15m"
mta_outgoing_pidfile="/var/run/sendmail_out.pid"
mta_outgoing_configfile="/etc/mail/sendmail.cf"
mta_submitqueue_flags="-L sm-msp-queue -Ac -q15m"
mta_submitqueue_pidfile="/var/spool/clientmqueue/sm-client.pid"
mta_submitqueue_configfile="/etc/mail/submit.cf"

上述設定將會在開機時啟動 freshclam 這支程式,預設每二小時會去檢查一次是否有新的病毒碼要下載。另外

由於 MailScanner 會在信件進來時,先將信件放到 /var/spool/mqueue.in 中,我們必須先建立下列 MailScanner 所必須使用的目錄:

# mkdir -p /var/spool/mqueue.in
# mkdir -p /var/spool/MailScanner/incoming
# mkdir -p /var/spool/MailScanner/quarantine

這樣我們就已經完成了大部份的設定,接下來我們必須進行 MailScanner 的細部設定。MailScanner 的設定檔位於 /usr/local/etc/MailScanner/MailScanner.conf,如果您希望快速的設定好 MailScanner,以下是幾個必須修改的地方:

# MailScanner 會檢查檔案的副檔名、格式。如果是 zip 檔,它也會將它解壓縮並檢查壓縮
# 檔中的內容。我們常會遇到因為副檔名問題而副件被 MailScanner 的問題。如果您將下列選
# 選項設為 0,則 MailScanner 就不會去檢查壓縮檔中的檔案格式。
Maximum Archive Depth = 0

# 設定使用 clamav 做為病毒掃瞄工具。
Virus Scanners = clamav

# 是否啟用 SpamAssassin。我們將它改為 yes,以使用 SpamAssassin 來檢查垃圾信。
Use SpamAssassin = yes

# 下列選項控制了當被 MailScanner 判定為垃圾信時要如何處理。預設是在主旨加上標記並
# 送出。我們可以將它改為 delete (刪除)、store (隔離)、bounce (退信) 等。建議您
# 先設定為 deliver,等過一陣子確定都沒有誤判後,再將它改為 bounce。
Spam Actions = deliver

# 下列選項控制了當被 MailScanner 判定為高分數的垃圾信時要如何處理。所謂的高分數垃
# 圾信就是 MailScanner 有很高的把握認為這是垃圾信。預設是在主旨加上標記並送出。我
# 們一樣可以將它改為 delete (刪除)、store (隔離)、bounce (退信) 等。建議您先設
# 定為 deliver,等過一陣子確定都沒有誤判後,再將它改為 delete。
High Scoring Spam Actions = deliver

最後,您就可以重開機以使用 MailScanner 的功能了。

17.2.3 設定 MailScanner

除了上述的設定外,MailScanner 及 SpamAssassin 還有很多的設定項目可以修改,相關的設定檔全部都放在 /usr/local/etc/MailScanner 中。我們先來說明一下這些設定檔的用途:

檔名 用途
MailScanner.conf 這是 MailScanner 的主要設定檔。
filename.rules.conf 用來設定拒絕的郵件附件的副檔名格式。
spam.whitelist.rules 用來設定白名單,也就是不會被判斷為垃圾信的寄件者清單。
spam.blacklist.rules 用來設定黑名單,也就是一定是垃圾信的來源清單。

MailScanner.conf 是最主要的設定檔,我們先來看看幾個比較常用的項目:

# 設定您的組織縮寫。這個項目會被 MailScanner 用在信件的標頭中。必須注意的是這個設
# 定最好只使用英字及數字。
%org-name% = twbsd

# 用來設定您的組織全名。這個名稱會出現在 MailScanner 所寄出的回報信件中,它會被當
# 成簽名檔附在信件的最下方。
%org-long-name% = Taiwan BSD Group

# 用來設定您的組織網址。這個網址會出現在 MailScanner 所寄出的回報信件中,在信件最
# 方會出現這個連結。
%web-site% = http://www.twbsd.org

# 設定 MailScanner 多久要檢查一次是否有新的信件進來,以秒為單位。
Queue Scan Interval = 6

# 設定允許的最大附件大小。如果設為 -1 表示不檢查,0 表示不允許附件。
Maximum Attachment Size = -1

# MailScanner 會檢查檔案的副檔名、格式。如果是 zip 檔,它也會將它解壓縮並檢查壓縮
# 檔中的內容。我們常會遇到因為副檔名問題而副件被 MailScanner 的問題。如果您將下列選
# 選項設為 0,則 MailScanner 就不會去檢查壓縮檔中的檔案格式。
Maximum Archive Depth = 0

# 設定使用 clamav 做為病毒掃瞄工具。
Virus Scanners = clamav

# 是否要檢查網路釣魚。網路釣魚 (Phishing) 的意思是使用偽裝的信件,讓使用者以為是另
# 一個網站所寄來的資料,讓使用者上勾。例如,偽造某銀行的信件,要您輸入信用卡號等。不
# 過這個項目可能會讓您信件中有類似 192.168.1.1 這種 IP 時出現警告訊息。
Find Phishing Fraud = yes

# 是否要在信件中出現 IP 的連結時提出警告。
Also Find Numeric Phishing = yes
# 下列幾個項目都是用來檢查一些信件中的 HTML 格式,並將比較可能有危險的格式移除。如果
# 將它們設為 yes,表示允許;no 表示不允許;disarm 表示以該格式的功能取消,但信件還
# 是送出。
Allow IFrame Tags = disarm
Allow Form Tags = disarm
Allow Script Tags = disarm
... 略 ...

# 是否啟用 SpamAssassin。我們將它改為 yes,以使用 SpamAssassin 來檢查垃圾信。
Use SpamAssassin = yes

# SpamAssassin 會檢查信件內容,並依內容格式給予信件分數,分數越高表示越有可能是垃
# 圾信。您可以在收到信件後,查看郵件原始檔,在原始檔中有一行
# 「X-twbsd-MailScanner-SpamScore」,其後接的「s」數目就是分數。這個選項設定
# 了分數多少會被當作垃圾信。
Required SpamAssassin Score = 6

# 這個選項設定了分數多少表示是高分數的垃圾信。
High SpamAssassin Score = 10

# 下列選項控制了當被 MailScanner 判定為垃圾信時要如何處理。預設是在主旨加上標記並
# 送出。我們可以將它改為 delete (刪除)、store (隔離)、bounce (退信) 等。建議您
# 先設定為 deliver,等過一陣子確定都沒有誤判後,再將它改為 bounce。
Spam Actions = deliver

# 下列選項控制了當被 MailScanner 判定為高分數的垃圾信時要如何處理。所謂的高分數垃
# 圾信就是 MailScanner 有很高的把握認為這是垃圾信。預設是在主旨加上標記並送出。我
# 們一樣可以將它改為 delete (刪除)、store (隔離)、bounce (退信) 等。建議您先設
# 定為 deliver,等過一陣子確定都沒有誤判後,再將它改為 delete。
High Scoring Spam Actions = deliver

# 是否要在掃瞄發現信件沒問題後,在信件最後加下 "Inline HTML Signature" 或
# "Inline Text Signature" 這二個選項所設定的內容。如果設為 yes,則信件最
# 後都會有使用 MailScanner 掃瞄過的訊息。
Sign Clean Messages = no

filename.rules.conf 可以用來設定郵件附件中不允許哪些副檔名。在 filename.rules.conf 中已經有一些預設的副檔名,如果您想要允許某些副檔名,可以修改該檔案。例如,我們如果想要允許 .exe 檔,則可以在下列這一行前加上「#」:

#deny \.exe$ Windows/DOS Executable

spam.whitelist.rulesspam.blacklist.rules 可以用來設定黑白名單。如果您有信件被誤判為垃圾信,可以在白名單中加入讓寄件來源,如此一來,該信件就不會再被當作垃圾信了。 反之,如果有垃圾信沒有被判斷為垃圾信,則可以自行在黑名單中加入。這二個檔案的格式一樣,以 spam.whitelist.rules 為例:

From: *@*.friends.net yes
From: *@friends.net ye
From: 220.132.178.149 yes
From: 192.168. yes

它有三個欄位,第一個欄位是指定要檢查的是來源或目的地,第二個是設定來源,第三個欄位為 yes 表示是白名單。以上述內容為例,是設定所有從 friends.net 所寄來的信件都不是垃圾信。另外,我們也可以直接使用 IP 或網域。

17.2.4 MailScanner 進階管理

在 MailScanner 上線後,我們必須先將設定放鬆一點,例如在判斷是垃圾信時,不要退件或刪除,還是先寄給使用者。如果使用者發現不該是垃圾信的郵件被誤判,則可以將該信件加入白名單中。經過一段時間的測試都沒問題了,再設定將高分數的垃圾信刪除、並退回低分數的垃圾信。

當有誤判時,我們必須要檢查郵件源始檔,知道誤判原因後,才能將該寄信者加入白名單中。我們來看一下一封垃圾信的標頭:

圖 17-6

我們可以看到這封信的分數是 7 (有 7 個 s),表示這是垃圾信。如果您覺得判斷是否為垃圾信的分數太低,很多不是垃圾信也會被當成垃圾信,則可以將 MailScanner.conf 中的「Required SpamAssassin Score」調低。筆者使用的是 5。

當一封信被判斷是垃圾信時,如果您選擇將它隔離,則隔離的信件會放在 /var/spool/MailScanner/quarantine 中。當郵件附件中包含不合法的檔名時,收信者會收到下列信件:

圖 17-7

如果您打附件,則會有下列內容:

This is a message from the MailScanner E-Mail Virus Protection Service
----------------------------------------------------------------------
The original e-mail attachment "netuse.bat"
is on the list of unacceptable attachments for this site and has been
replaced by this warning message.

If you wish to receive a copy of the original attachment, please
e-mail helpdesk and include the whole of this message
in your request. Alternatively, you can call them, with
the contents of this message to hand when you call.

At Sat Oct 1 21:37:13 2005 the virus scanner said:
MailScanner: Batch files are often malicious (netuse.bat)

Note to Help Desk: Look on the twbsd MailScanner in 
/var/spool/MailScanner/quarantine/20051001 
(message j91Db6xx015931).
-- 
Postmaster
MailScanner thanks transtec Computers for their support

如果有使用者要求要取回該檔案,您可以看一下上列附件的內容,並依它所說明的位址 (以上列為例是 /var/spool/MailScanner/quarantine/20051001/j91Db6xx015931 這個目錄) 取回檔案。

17.3 Open WebMail

Open WebMail 是一套由國人開發的多國語 Web Base 的郵件軟體。它不僅可以讓我們從網頁上收發信件,還包含了一些強大的功能。例如,拼字檢查、行事曆、網路硬碟等等。安裝它之後,使用者可以從任何電腦經由瀏覽器收發信件,真的很方便。

17.3.1 系統需求

在安裝 Open WebMail 前,你必須先安裝具有 CGI 功能的 Apache 伺服器,如果你是照本書的說明安裝,那麼你的伺服器就具有這項功能了,只要你有編輯 httpd.conf 將 CGI 的功能啟動。除此之外,在開始安裝 Open Webmail 之前,我們必須先安裝下列套件。

Open WebMail 使用具有 SUID 功能的 suidperl,但由於 suidperl 有危險性,所以 FreeBSD 將 suidperl 的功能關閉了。因此,在安裝之前,我們必須先安裝具 SUID 功能的 Perl。請注意,由於 Perl 有很多相關的模組,如果您之前有更新過 port tree,則現在要安裝的 Perl 版本可能和原本系統中的版本不同,將會造成很多程式無法運作。所以,如果您之前有做過 port 的更新,您應該要使用 portupgrade 來安裝 Perl。

我們使用 portupgarde 來安裝 Perl,如果您還沒有安裝 portupgrade,請使用下列指令安裝:

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

關於 portupgrade 的說明,請先參考「軟體安裝」一章。接下來,我們就可以使用 portupgrade 來更新 Perl 了。請先使用 perl -v 來查看您目前所使用的 Port 版本,FreeBSD 6.0 預設是使用 Perl 5.8.x,所以我們使用下列指令更新:

# portupgrade -rf "perl-5.8.*" -m "ENABLE_SUIDPERL=yes"
# ln -s /usr/local/bin/suidperl /usr/bin/suidperl

接下來,我們就可以來安裝一些 Open WebMail 所需的軟體了,如果在安裝過程中,您發現這些軟體已經安裝過了,則可以跳過該軟體。首先,為了要有檢查附加檔案的功能,必須安裝 MIME-Base64,我們可以使用下列指令安裝:

# cd /usr/ports/converters/p5-MIME-Base64
# make install clean

為了具有拼字檢查功能,必須安裝 ispell,請以 ports 安裝:

# cd /usr/ports/textproc/ispell
# make install clean

為了要支援 MD5 加密,我們必須安裝 perl 的 MD5 模組:

# cd /usr/ports/security/p5-MD5
# make install clean

為了要讓 Open Webmail 可以有語言轉換的能力,我們必須安裝Text-Iconvv:

# cd /usr/ports/converters/p5-Text-Iconv
# make install clean

另外,還要先安裝 libnet 這個網路模組:

# cd /usr/ports/net/p5-Net
# make install clean

您的 Apache 必須支援 CGI,請編輯 httpd.conf,找到關於你網頁根目錄設定的地方,並在 Options 選項中加入 ExecCGI,並設定好 cgi-bin 的所在目錄:

<Directory "/home/www">
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
    Options Indexes FollowSymLinks MultiViews ExecCGI

... 略 ...
ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"

... 略 ...

接著請重新啟動 Apache 就做好事前的準備了。

17.3.2 安裝 Open WebMail

您可以到下列網址取得最新版的 Open Web Mail。

http://turtle.ee.ncku.edu.tw/openwebmail/download/

假設您網頁根目錄在 /home/www 中,而在 apache 中所設定的 cgi-bin 目錄是在 /home/www/cgi-bin 中。請將取得的檔案放到你的網頁根目錄去,並 cd 到你的網頁根目錄。執行下列指令以將取得的檔案解壓縮:

# tar -zxvBpf openwebmail-2.51.tar.gz

解壓縮後會在 cgi-bin 中產生一個目錄為 openwebmail, 存放 Open WebMail 的主要程式;另外會產生一個 data 的目錄,在 data 目錄下也有一個 openwebmail 的目錄,該目錄存放 openwebmail 非 cgi 的資料(如圖片、聲音等)。我將 /home/www/data/openwebmail 的目錄搬到 /home/www/openwebmail。並將 cgi-bin 目錄下的 openwebmail 搬移到 /home/www/cgi-bin 目錄中。現在 openwebmail 的 cgi 程式位於 /home/www/cgi-bin/openwebmail 中,非 cgi 檔案位於 /home/www/openwebmail 中,我們要記住的就是這二個目錄的位置以方便下列的設定。

最後要修改 /home/www/cgi-bin/openwebmail/etc/openwebmail.conf,更改你的參數設定,尤其是路徑。基本上要修改的地方有:

# ow_cgidir : openwebmail cgi 程式的目錄
ow_cgidir /home/www/cgi-bin/openwebmail

# ow_cgiurl : 以 openwebmail 的 cgi 程式目錄所在的 url
ow_cgiurl /cgi-bin/openwebmail

# ow_htmldir : openwebmail 非 cgi 的目錄
ow_htmldir /home/www/openwebmail

# ow_htmlurl : 非 cgi 程式所在的 url
ow_htmlurl /openwebmail

我們接著要初始化 Open Webmail,請執行下列指令:

# /home/www/cgi-bin/openwebmail/openwebmail-tool.pl --init

您會被要求是否要送出系統資訊到 Open Webmail 的總部,如果您不想送出任何資料,只需按 N 即可。最後我們就可以使用 http://yourhost/cgi-bin/openwebmail/openwebmail.pl 來連到登入的首頁,請使用系統中的使用者帳號 (root 不能登入) 及密碼登入,登入後畫面如下圖所示。

圖 17-8

Open WebMail 是台灣人寫的軟體,它的使用手冊非常豐富,您可以點選登入首頁的「說明」部份來查看使用手冊。

 

Top Ths file was last modified: 2008 March 30 00:20:55.

Copyright © 2002-2017 Wang, Chun-Pin from www.twbsd.org. All rights reserved.