分享
 
 
 

利用 FreeBSD 组建轻量级邮件系统

王朝system·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

系统功能与特点:

组建简单成本低:

使用免费但十分优秀的网络操作系统 FreeBSD + 各种优秀的自由软件。无须担心版权问题。对设备整体要求低。

系统有极高的可维护性:

除两个可选模块外,所有软件均采用 ports 树安装,因此系统组建时间短。并能随时升级用上最新最安全的系统软件和安全补丁。

安全性高:

由于采用 UNIX 系统,你不用过于担心病毒问题!所有 windows 上的病毒都对你的邮件系统都是“无效”的!你还可以另外安 装邮件防病毒插件。

整个邮件系统(SMTP、POP、WEBMAIL)还采用了 SSL (安全套接层)传输,能保证整个传输过程中的数据被加密防止被他人盗窃 。有着极高的安全性、稳定性。

界面美观:

Openwebm : 一个十分优秀的 web mail ,本地化语言,简单宜用。还有网络硬盘、SSH 功能。

组合灵活:

系统支持 SMTP、POP、SSL、Webmail 等功能。各功能模块(如 POP、SSL)有相当的选择余地能自由组合,能为不同的用户、 用户组定义不同的邮箱大小。

综述:是一个适合用于企业、学校、个人或其它要高安全性、高性能等站点的小型邮件系统。

本文说明与介绍:

# 此符号开头是注释内容,可加入到相应的配置文件中去。

Ssl :安全套接层,用来加密传输过程中的数据。在此系统中此功能是可选部分。

Qpoper POP SERVER:一个使用 mail client 程序收信的服务。在此系统中此功能是可选部分。

所需系统与软件环境:

FreeBSD 4.8 十分优秀的 NET OS

Sendmail SMTP SERVER

安装路径:系统自带

Apache 2.0.47 WEB SERVER

安装路径:/usr/ports/www/apache2

Openssl 0.97 SSL TOOL

安装路径:/usr/ports/security/openssl

Openwebmail 2.10 WEB MAIL

安装路径:/usr/ports/mail/openwebmail/

qpoper POP SERVER

安装路径:/usr/ports/mail/qpopper/

Stunnel 4.04 SSL 服务 TOOL

安装路径:/usr/ports/security/stunnel/

使用 PPPOE 上网,动态 IP

域名申请:

到 www.dns0755.net 申请免费(或收费)域名!有关使用请参考该网站的相关说明。本例是 xiaohua.dns0755.net

演示主页面:

http://xiaohua.dns0755.net

https://xiaohua.dns0755.net/

Openwebmail Login 演示页面:

https://xiaohua.dns0755.net/cgi-bin/openwebmail/openwebmail.pl

注意:本例中 Openwebmail 是使用 OS 系统用户作数据库。

Mail client 程序演示服务器(可用 Kmail、OUTLOOK、FOXMAIL 等):

SMTP SERver: xiaohua.dns0755.net

xiaohua.dns0755.net

POP SERver: xiaohua.dns0755.net

xiaohua.dns0755.net

演示用户:

用户名、密码:guest

用户名、密码:guest1

启动时自动转发 IP 解释 xiaohua.dns0755.net 域名。

将 www.DNS0755.net 客户端程序放到 /usr/local/dns/ 中去,并配置好你的域名。在 /etc/crontab 中加入:

@reboot xiaohua /usr/local/dns/DNSClient # 启动时自动执行

*/4 * * * * xiaohua /usr/local/dns/DNSClient # 每 4 分钟执行一次(可选,但建议使用)

其中上面的 xiaohua 是本系统的一个用户。表示用 xiaohua 这个用户执行 /usr/local/dns/DNSClien 这个程序。

系统安装

为保证一次成功安装并能用上最新版本的软件,在安装前请先升级你的整个 ports 树。升级前你要安装了 cvsup 软件。可到 http://www.cn.freebsd.org/ports/index.html 下载,然后用 pak_add 命令安装。或用你的 FreeBSD CD 来安装。完成后继续。

cp /usr/src/share/examples/cvsup/ports-supfile /root/

修改 ports-supfile ,将 :

*default host=CHANGE_THIS.FreeBSD.org

改成

*default host=cvsup.cn.FreeBSD.org

接着升级你的 ports 树,执行:

cvsup ports-supfile

升级开始。升级速度视乎你的接入速度。一般半小时内可完成。完成后再安装其余的软件。

安装 Apache 2.0.47:

cd /usr/ports/www/apache2

make install clean

请自行参考有关 apache 的文档配置站点首页及启动 apache 服务。

安装 Openwebmail:

cd /usr/ports/mail/openwebmail/

make install clean

安装 Openwebmail 的文件系统配额与 http 压缩功能模块(此功能可选):

http://openwebmail.com/openwebmail/download/packages/Quota-1.4.6.tar.gz

http://openwebmail.com/openwebmail/download/packages/Compress-Zlib-1.21.tar.gz

下载后 tar 解压,然后进入相应的目录下运行以下命令安装:

perl Makefile.PL

make

make install

OK,Openwebmail 应该起来了,试打入 :

http://you_server/cgi-bin/openwebmail/openwebmail.pl

应该看到 login 画面了!HTTP资料压缩传送功能也应该能用!这样整个 Apache 与 Openwebmail 就起来了。马上用一个系统内的帐户上去看看!

非常漂亮的 Openwebmai 的 login 页面

Opnewebmail 主界面1

Opnewebmail 主界面2

Openwebmail 高级配置:

配置文件在 /usr/local/www/cgi-bin/openwebmail/etc/ 下。共有三个相关文件。但只修改

openwebmail.conf 就行了。

15:10 [xiaohua] [/usr/local/www/cgi-bin/openwebmail/etc] ls -l openwebmail.*

total 8146

-rw-rw-rw- openwebmail.conf

-rw-r--r-- openwebmail.conf.bak

-rw-r--r-- openwebmail.conf.default

-rw-r--r-- openwebmail.conf.help

☆注意:

修改配置前请先备份原配置文件,并仔细“参考、阅读”原 openwebmail.conf 文件再进行配置系统!本文所提到的选项并不一定会出现在原文件中,也不一定是你需要的!更多信息请参考其余两个文件(但最好不要修改)。

以下是我的 openwebmail.conf 文件(只对有需要的作说明)

domainnames auto

auth_module auth_unix.pl

mailspooldir /var/mail

dbm_ext .db

dbmopen_ext none

dbmopen_haslock no

ow_cgidir /usr/local/www/cgi-bin/openwebmail

ow_cgiurl /cgi-bin/openwebmail

ow_htmldir /usr/local/www/data/openwebmail

ow_htmlurl /openwebmail

logfile /var/log/openwebmail.log

spellcheck /usr/local/bin/ispell

default_language zh_CN.GB2312

default_dateformat yyyy-mm-dd

default_hourformat 24

savedsuid_support yes

================================================

致此!

欢迎光临海鹰的家! ( https://xiaohua.dns0755.net )

================================================

海鹰:大海之鹰!生命由海而来,随海而去!

┏━━━━━━━━━━━┓

┃■■■■■■■■■┃

┗━━━━- 85% ━━━━┛

离成功还有 15%

================================================

您好:

来信已收到了,我会尽快处理!

你的信件'$SUBJECT' 。致此!!

I will not be reading my mail for a while.

Your mail regarding '$SUBJECT' will be read when I return.

#### 以下是磁盘配额部分,此部分为手工加入。

#### 使用 OS 的文件系统配额。并需在/etc/fstab 中启用配额功能及安装了OS FS 配额模块才能正常使用。

#### 用户配额使用 edquota 命令在系统中设定。可针对用户或组独立设置,很灵活。

quota_module quota_unixfs.pl

############### 下面两项一起使用 #############

#quota_module quota_du.pl

# 设定使用者能使用的空间上限. 单位:Kbyte 。 这个设定只有在 quota_module

# 不传回使用者 quota 上限时(如 quota_du.pl) 才会被使用。

#quota_limit 82420

☆注意:

quota_unixfs.pl 与 quota_du.pl 两者只能用一个,不能两个同时用。使用 quota_unixfs.pl(OS Files system disk QUOTA) 时会比较灵活,可为不同用户、组设不同的配额。但性能可能相对比 quota_du.pl 差小许。

#一般情形下, 使用者的空间使用状况会显示在视窗的外框上边。但是当使用者空间用量超过其上限的

#quota_threshold% 时,会有一个较明显的 quota 使用量显示在页面的上方以提醒使用者。

quota_threshold 75

attlimit 900000

# 当使用者空间已满时, 是否自动删除各信匣中过旧的邮件以取得一些空间。

delmail_ifquotahit no

# 当使用者空间已满时, 是否自动?除网络磁盘中过旧的文件以取得一些空间。

delfile_ifquotahit no

############ 系统安全部分。此部分为手工加入。#############

enable_rootlogin yes

enable_sshterm no

forced_ssl_login yes

########### 以下部分为系统信息(OS、版本等控制)此部分为手工加入。############

enable_about no # 是否显示关于功能

about_info_software no # 是否显示软件信息

about_info_protocol no # 是否显示使用协议

about_info_server no # 是否显示服务器信息

about_info_client no # 是否显示客户信息

########### 自动回信标题 ###########

default_autoreplysubject 您好!这是一封从“海鹰邮局”的自动回信。

########## 邮局 login 画面信息。此部分为手工加入。###########

# 原图像位置 /usr/local/www/data-dist/openwebmail/images/openwebmail.gif

logo_url %ow_htmlurl%/images/hy2.gif

logo_link https://xiaohua.dns0755.net/

让 sendmail 能收取 xiaohua.dns0755.net 的信

让 sendmail 能收取 xiaohua.dns0755.net 的信,须将 xiaohua.dns0755.net 加入到 sendmail 中去。

cd /etc/mail

ee local-host-names

写入 xiaohua.dns0755.net 这个域名,保存退出。

make cf

make install

重启 sendmail

killall -HUP sendmail

从其它地方写一封信给 xiaohua.dns0755.net 看能不能收到。正常时应该能收到!

使用 SSL 让你的 Web mail 信息更安全

在 apache 2 中使用 ssl ,要先安装 openssl :

cd /usr/ports/security/openssl

make install clean

利用 openssl 创建与自签发 Apache 2 的证书 -- CA :

cd /usr/local/etc/apache2/

mkdir ssl.key

mkdir ssl.crt

openssl genrsa 1024 ssl.key/server.key

显示信息如下:

15:50 [/usr/local/etc/apache2/] openssl genrsa 1024 ssl.key/server.key

Generating RSA private key, 1024 bit long modulus

...++++++

............++++++

e is 65537 (0x10001)

只让 root 才能访问 CA 证书:

chmod 400 ssl.key/server.key

利用 CA 创建一个自签署的 CA 证书。命令:

cd /usr/local/etc/apache2/

openssl req -new -key ssl.key/server.key -x509 -days 365 -out ssl.crt/server.crt

会要你填入相关信息,如下:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:GD

Locality Name (eg, city) []:FSNH

Organization Name (eg, company) [Internet Widgits Pty Ltd]:FreeBSD

Organizational Unit Name (eg, section) []:I386

Common Name (eg, YOUR name) []:Xiaohua

Email Address []:bdiy2010@yahoo.com.cn

-----BEGIN CERTIFICATE-----

MIIDXzCCAsigAwIBAgIBADANBgkqhkiG9w0BAQQFADCBgjELMAkGA1UEBhMCQ04x

CzAJBgNVBAgTAkdEMQ0wCwYDVQQHEwRGU05IMRAwDgYDVQQKEwdGcmVlQlNEMQ0w

部分省略……

zyeGykJ+9xm53nWeruNSbJu3qnYBMQl4SUyWwluJwF02wB/xBdcnJxpkbgw3i9EE

TPw17kxTA9d5u/nZ5jQoFPOesv+exr7bhMj0/A+fWX+qEV+vAKKalii7GsDdkFdk

2QqG

-----END CERTIFICATE-----

15:56 [xiaohua] [/home/xiaohua]

OK,证书到此已完成了。接下来要让 apache 运行在 ssl 模式,运行:

apachectl stop

apachectl startssl

在游览器中用 https://you_server 看能否正常游览你的首页。正常时游览器会提示你证书信息。确定后应能看到以前的首页。注意:因为证书是自签发,有些游览器会提示证书不可信,不用管它!OK,整个传输过程已不是明文传输了。

浏览器提示证书信息

建立有 SSL 功能的 SMTP、POP 服务器

用 web 方式收发邮件的安全问题解决了。但 SMTP、POP 上的还是明文传输的。下面介绍如何做有 SSL 功能的 SMTP、POP 服务器。

安装 POP server:

cd /usr/ports/mail/qpopper/

make install clean

qpoper 服务要用 inetd 启动。安装完成后修改 /etc/inetd.conf 文件,加入一行:

pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -s

检查是否启动了 inetd ,请检查 /etc/rc.con 中的 inetd_enable="YES" 项。只要不是设

inetd_enable="NO" 就不用管它了。如果要手工启动 inetd 只须键入 inetd 。要重启 inetd :

killall -HUP inetd

安装 stunnel 以支持 SMTP、POP 的 SSL

Port: stunnel-4.04_2

Path: /usr/ports/security/stunnel

cd /usr/ports/security/stunnel

make

接下来要为 stunnel 创建证书:

make cert

到这步时会要你填入相关信息。请参考 Apache 与 openssl 部分。完成后会提示你证书已安装到 /usr/local/etc/ 中去了。看是否有个 stunnel.pem 文件。

12:22 [xiaohua] [/usr/ports/security/stunnel] ls -l /usr/local/etc/stunnel.*

-rw------- 1 root wheel 1746 Aug 21 18:29 /usr/local/etc/stunnel.pem

☆注意:请确定在提问 Common Name (FQDN of your server) 时写入你的服务器名。本例是 xiaohua.dns0755.net

下面是部分信息摘录:

Country Name (2 letter code) [PL]:CN

State or Province Name (full name) [Some-State]:China-GD

Locality Name (eg, city) []:FSNH

Organization Name (eg, company) [Stunnel Developers Ltd]:FreeBSD

Organizational Unit Name (eg, section) []:I386

Common Name (FQDN of your server) [localhost]:xiaohua.dns0755.net

/usr/local/bin/openssl x509 -subject -dates -fingerprint -noout -in stunnel.pem

subject= /C=CN/ST=China-GD/L=FSNH/O=FreeBSD/OU=I386/CN=xiaohua.dns0755.net

notBefore=Aug 23 10:20:40 2003 GMT

notAfter=Aug 22 10:20:40 2004 GMT

MD5 Fingerprint=28:08:6C:7B:B2:9C:0E:16:EF:3F:BA:38:E5:32:37:04

install -m 600 /usr/ports/security/stunnel/work/stunnel-4.04/tools/stunnel.pem /

usr/local/etc/

make install clena

安装完成了,但还没能正常运行 stunnel 。还有很多事要做了!

cd /usr/local/etc/stunnel/

cp stunnel.conf-sample stunnel.conf

修改这个 stunnel.conf 文件,将:

cert = /usr/local/etc/stunnel/mail.pem

改为:

cert = /usr/local/etc/stunnel.pem

将 [s1]、[s2] 这两部分内容(所有)注释或删除掉,然后保存退出。

创建 stunnel 的运行目录:

cd /var/tmp

mkdir stunnel

chown stunnel:stunnel

OK,马上可以运行 stunnel 了。不过在运行前建议你先检查你系统当前的端口情况。运行

sockstat -4 你会见到很多东西。从中你可以看到你正在运行的服务。

sockstat -4

USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS

www httpd 16552 4 tcp4 *:443 *:*

www httpd 16434 3 tcp4 *:80 *:*

www httpd 16434 4 tcp4 *:443 *:*

root httpd 129 3 tcp4 *:80 *:*

root httpd 129 4 tcp4 *:443 *:*

root sendmail 91 4 tcp4 *:25 *:*

root inetd 83 4 tcp4 *:110 *:*

接着起动 stunnel 吧。如果顺利,系统不会返回任何信息给你:

/usr/local/etc/rc.d/stunnel.sh.sample start

再运行 sockstat -4 ,如果你见到有 stunnel、995、465 端口等信息了就代表你已经成功了!

17:37 [xiaohua] [/home/xiaohua] sockstat -4

USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS

www httpd 16643 3 tcp4 *:80 *:*

www httpd 16643 4 tcp4 *:443 *:*

www httpd 16434 3 tcp4 *:80 *:*

www httpd 16434 4 tcp4 *:443 *:*

stunnel stunnel 171 7 tcp4 *:465 *:*

stunnel stunnel 171 6 tcp4 *:995 *:*

root sendmail 91 4 tcp4 *:25 *:*

root inetd 83 4 tcp4 *:110 *:*

让 stunnel 随启动时“正常”自动运行

因为在 make cert 时已经写入了 xiaohua.dns0755.net 。如果启动时 stunnel 解释不到相应的 IP 就不能正常启动。为此要让 stunnel 正常启动我们还要做两件事:

修改 /etc/rc.con ,将 PPPOE 启动方式改为 AUTO

ppp_mode="auto"

这样,系统在完全拨通号前是不会执行 rc.d 的脚本!不过启动时间会变长一点!

cd /usr/local/etc/rc.d/

cp stunnel.sh.sample zstunnel.sh

因为 rc.d 是按脚本的第一个字母做顺序启动的。这样 stunnel 将被最后执行。就能保证 stunnel 随系统正常启动而不用手工干预了。

客户端设置:

因为采用了 SSL ,所以Kmai 、OUTLOOK 等要选上 SSL 、及修改服务器的端口!详细请见下面的插图。

FAQ集:

1、问:我用的系统发现不能发送大的附件,请问怎样设置发送邮件的大小?

答:修改 /etc/mail/sendmail.cf ,找到

# maximum message size

#O MaxMessageSize=1000000

增加一行:

O MaxMessageSize=50000000

完成后重启 sendmail

2、问:Openwebmail 在那申请用户帐号?

答:Openwebmail 本身没有此功能,除非有人写一个。它是用操作系统上的系统用户作数据库的。所以这样就一定程序上提高了安全性。你不用担心别人天天在你的系统上申请一堆没有帐号,或发上无数的垃圾邮件到你的系统上。否则你的系统很快就没空间了。要增加用户请用 adduser 、/stand/sysinstall 工具增加。还可通过 ssh 、webmin 等工具进行远程管理。Openwebmail 还支持 mysql、ldap 等功能,你可以试一下。

3、问:我想更多了解 Openwebmail ?

答:到 /usr/local/www/data-dist/openwebmail/ 下看看吧,里面有一堆文档,不过全是 E 文的。

4、邮件客户端程序不能发邮件,但通过 WEB 方式能收发,怎么回事?

答:这主要是 DNS 问题造成。目前发现 www.dns0755.net 有不稳现象。甚至发现有假冒 IP 现象。造成本人有一阵子也无法正常使用 Kmail、OUTLOOK ,本人的网站也无法正常浏览等。这时可以通过 openwebmail 来发信了。或者通过 IP 来访问邮件系统。

如果你条件许可,那我十分建议你申请一个固定 IP 、域名。如果这样,这个问题就能圆满解决了。

5、我还有更多的问题?

答:如果你有更多问题,请到以下 UNIX 论坛找我( xiaohua ),我会尽量为你解答,只要是我知道的。

http://community.FreeBSDChina.org/ www.chinaunix.net http://forum.cnfug.org/index.php?act=idx

6、我发现文章有错误。

答:非常好,同时希望你能告知作者!如果你有任何意见也可以告知作者!感谢! J

7、注:近日发现本人前域名 xiaohua.dns0755.net 被人冒充IP 了,导致无法正常浏览。现已改为:http://bsdroot.dns0755.net 。要试用系统请将相应主机名改为 bsdroot.dns0755.net 。

作者简介:

网络妮称:Xiaohua (英文)、海鹰(中文)

主页:http://bsdroot.dns0755.net (新) MSN、E_mail:bdiy2010@yahoo.com.cn

作者的梦想:

1、和我最好的朋友、最爱的女人去海南天涯海角,去山海关合照。那一定是一件很开心的事。

2、期望有一天,我和她能成为一对海鹰,在无边无际的大海上

自由飞翔。飞到我们想去的地方:天涯海角。从此不再分开

致谢:

所有曾经帮助过我的所有朋友、网友、网站!

参考信息:

中国、台湾等各大 FreeBSD、UNIX 网站等。太多了,不能一一列出!实在抱歉!希望各站长不要见怪!! ^_^

,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有