建立加密的 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


首页