建立加密的 Openwebmail

Mail 已是網路使用不可或缺的服務之一,然而大家在收信的時候,從伺服器登入收信 (mail) 到離線端收信 (pop),現在 Mail 伺服器或廠商更要提供網頁式的線上即時收信系統 (Webmail),而使用者在收信的習慣上有了很大的改變。

這篇文章,主要是來探討這網頁式的收信系統 - OpenWebmail - 由國人所寫的網路郵件系統,包含了安裝過程,以及如何把他建置在一個 SSL 的環境下。

所需環境:

安裝 Perl Modules:

要安裝 Modules 很簡單,一切都是使用 CPAN 就可以搞定了。

root # cpan CGI MIME::Base64 libnet Digest Digest::MD5 Text::Iconv

安裝 OpenWebmail

在安裝之前,我希望這個 Webmail 是透過 SSL 加密傳輸,所以我把它另起爐社,等一會再配合 Virtual Host 建立一個 SSL 的專用站台。在本文完之之前,最新版的 Open Webmail 是 2.52 版。

root # cd /misc; wget http://www.openwebmail.org/openwebmail/download/release/openwebmail-2.52.tar.gz
root # tar -zxvf openwebmail-2.52.tar.gz

解開之後,你會看到有 data/ 和 cgi-bin/ 目錄。

root # ls -l
total 7548
drwxr-xr-x 2 root wheel 4096 Jul 3 18:01 cgi-bin
drwxr-xr-x 2 root wheel 4096 Jul 3 18:01 data
-rw-r--r-- 1 root root 7705209 May 3 07:38 openwebmail-2.52.tar.gz
root #

把 cgi-bin/ 和 data/ 放到 SSL 的目錄。

root # /data/web/ssl
root # mkdir cgi-bin html
root # mv /misc/cgi-bin/openwebmail cgi-bin; mv /misc/data/openwebmail html

設定 Open Webmail

Open Webmail 所有的設定檔,都在 etc/ 目錄之下。

root # cd /data/web/ssl/cgi-bin/openwebmail/etc
root # vi openwebmail.conf
-----------------------------------------------------------
# mail spool 位置
mailspooldir /var/spool/mail
#webmail 程式在伺服器上的位置
ow_cgidir /data/web/ssl/cgi-bin/openwebmail
#webmail 程式的連結位置
ow_cgiurl /cgi-bin/openwebmail
#webmail 網頁在伺服器上的位置
ow_htmldir /data/web/ssl/html/openwebmail
#webmail 網頁的連結位置
ow_htmlurl /openwebmail
-----------------------------------------------------------
root #

設定 default/auth_unix.conf

root # vi default/auth_unix.conf
-----------------------------------------------------------
#設定 passwd 的檔案位置
passwdfile_plaintext /etc/passwd
#設定 passwd shadow 位置
passwdfile_encrypted /etc/shadow
-----------------------------------------------------------

設定 default/openwebmail.conf

root # vi default/openwebmail.conf
-----------------------------------------------------------
#設定 smtp server 位置,你可以設定成適合的 SMTP Server
smtpserver 127.0.0.1
-----------------------------------------------------------
root #

設定 default/dbm.conf

root # vi default/dbm.conf
-----------------------------------------------------------
# 修改資料庫格式
dbm_ext .db
dbmopen_ext .db
dbmopen_haslock no
-----------------------------------------------------------
root #

初始化 Open Webmail

root # cd /data/web/ssl/cgi-bin/openwebmail
root # openwebmail-tool.pl --init
root #

經過以上的繁雜設定,這樣算是把 Open Webmail 簡單的設定好了,其實在 default/openwebmail.conf 可以做很多進階設定,就由各位去實驗了。

設定 Apache

因為我們 /data/web/ssl 這個目錄是一定需要使用 SSL 連線才可以進入的,以下所做的設定,是為了確保在使用者誤闖 ssl 的加密區,所以要設定成 /data/web/ssl 目錄只要連線就一定要采用 SSL 才行。。

root # vi /etc/httpd/conf/httpd.conf
-----------------------------------------------------------
# 加入設定
<Directory /data/web/ssl>
SSLRequireSSL
</Directory>
-----------------------------------------------------------
root #

設定 SSL

我習慣把 SSL 分開來單獨設定,所以會另外編輯一個 ssl.conf 檔,當然你也可以直接在 httpd.conf 設定所有的項目。

root # vi ssl.conf
-----------------------------------------------------------
<VirtualHost _default_:443>
DocumentRoot "/data/web/ssl/html"
ServerName www.abc.idv.tw:443
ServerAdmin steven@abc.idv.tw

ScriptAlias /cgi-bin/ "/data/web/ssl/cgi-bin/"

<Directory "/data/web/ssl/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

</VirtualHost>
-----------------------------------------------------------
root #

當然,最後一步就是重新啟動 Apache

root # /usr/local/httpd/bin/apachectl stop
root # /usr/local/httpd/bin/apachectl startssl
root #

使用 Open Webmail

好了,現在我們開啟 Browser,輸入你的 openwebmail 網址就可以了,不過千萬要記得,網址要加上 https,而不是 http,以本例來說,就會變成 https://www.abc.idv.tw/cgi-bin/openwebmail/openwebmail.pl

07/04/2006


首頁