作者:PowerPlane
该附言或许不成其为什么许可证,但还是希望您尊重作者的愿望。
如果您发现有什么错误,请及时通知我,我将尽快作出修改。如果您在网上转载,那将是免费,但希望您附上本附言,并且注明出处的链接。如果您要把它用印刷物形式出版,请通过www.cnfug.org跟本人接洽。
您在以本文作为根据配置电脑的时候,若出现任何故障,后果自负,与本作者无关。
本文的目的是在于说明如何在FreeBSD的环境下面搭建一个邮件系统。这个邮件系统支持虚拟用户,提供IMAP服务,可以成为构成WebMail系统的基础。
支持IMAP服务的Webmail有著名的IMP和SquirrelMail等等。
本文虽然是用PgSQL作为后台数据库,但是仍然对使用MySQL,LDAP数据库的作为后台的类似邮件系统有启发作用。如果仔细阅读本文,一定会有所收货的。使用其他后台数据库的话,要修改的地方有两处:pam服务和main.cf的virtual_mailbox_maps项。
本文所有的调试是在FreeBSD-4.8 release上通过的,也对FreeBSD-5作了额外的说明,主要的差异是集中在pam服务的配置不同而已,希望能有所帮助。
Linux的用户也能可以参考本文的配置,您只需要留意路径和pam服务的配置。pam服务配置跟FreeBSD-5类似。
Postfix:充当MTA,就是smtpd,作为邮件转发用。
Cyrus-SASL:分成两部分
a)Cyrus项目的SASL lib,Postfix使用SASL需要用到的lib。
b)Cyrus-saslauthd,一个SASL的验证后台程序。
Cyrus-IMAPD:
提供IMAP服务,提供邮件读取和管理邮箱的作用。
cyradm:
这个不是一个独立的软件,安装Cyrus-IMAP的时候会自动安装上去的。它的作用是创建和管理邮箱。
PgSQL:后台数据库,存放用户的密码等等。
0.PostgreSQL
路径/usr/ports/databases/postgresql7
make install
注意,这个路径下的是pgsql 7.3
1.Postfix:
路径 /usr/ports/mail/postfix
make install,然后会出现一个编译选项的菜单,选择Cyrus-SASL2和PgSQL的支持。PgSQL的支持可能有两种,一个是7.3,一个是7.2,请根据的PgSQL服务器选择。
2.Cyrus-SASL2:
由于上面安装Postfix的时候,选择了Cyrus-SASL2支持,编译Postfix的时候,会自动下载Cyrus-SASL2进行编译安装,所以Cyrus-SASL2不需要安装。
3. Cyrus-sasl-saslauthd
路径:/usr/ports/security/cyrus-sasl2-saslauthd/
make install
4. Cyrus-imapd-2.1.14
路径:/usr/ports/mail/cyrus-imapd2/
make install
I、配置Postfix + SASL验证,并且组建一个虚拟用户的环境。
比如说:user@f4.room
user并不是FreeBSD上的本地用户,而是一个虚拟的用户。用户的认证信息是存储在数据库的。
看到freebsd的port的好处了吗?他可以让你保留原有的sendmail。
Postfix也有一个程序叫做sendmail。如果用源码安装,会把Postfix安装在/usr/sbin里头,那么就会把sendmail覆盖掉了。用Port来安装,它会遵守freebsd的hier(目录结构),将软件都装在/usr/local/下面的sbin/,bin/,lib/,libexe/目录里头,不会跟系统的冲突。
哪天您老人家不高兴,想玩玩sendmail,先pkg_delete了postfix,然后修改/etc/rc.conf,把sendmail="NONE"改成"YES",就可把sendmail请回来了。
Trying 192.168.1.10...
Connected to f4.
Escape character is '^]'.
220 localhost ESMTP Postfix
ehlo host
250-localhost
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-XVERP
250 8BITMIME
auth plain dGVzdDEAdGVzdDEAcGFzczE=
235 Authentication successful
>; cyradm --user cyrus localhost
Password:
localhost>; cm user.test1
localhost>; cm user.test2
localhost>; lm
user.test1 (\HasNoChildren) user.test2 (\HasNoChildren)
localhost>; quit
S: * OK F4 Cyrus IMAP4 v2.1.15 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE AUTH=NTLM AUTH=OTP AUTH=DIGEST-MD5 AUTH=CRAM-MD5
S: C01 OK Completed
Please enter your password:
C: L01 LOGIN test1 {4}
S: + go ahead
C: <omitted>;
S: L01 OK User logged in
Authenticated.
Security strength factor: 0
. logout
* BYE LOGOUT received
. OK Completed
Connection closed.
Postfix的virtual domains入门:
http://www.freebsddiary.org/postfix.php
Postfix的虚拟用户设置:
/usr/local/share/doc/postfix/VIRTUAL_README
Postfix的一些官方文档,教你如何跟Cyrus-SASL2和Cyrus-IMAP2整合:
http://www.postfix.org/docs.html
FreeBSD上面的PAM配置:
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/pam/index.html
下面的是Linux为目标系统的,我也参考过。如果您仔细阅读过他们和本文,就明白FreeBSD的hier和Port系统的好处。
Postfix-Cyrus-Web-cyradm-HOWTO:
http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO/html/index.html
Postfix + Cyrus-IMAP + Cyrus-SASL + MySQL + IMP的中文HOWTO
http://www.cngnu.org/technology/Postfix_I.html
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |