邮件服务器-邮件系统-邮件技术论坛(BBS)'s Archiver

海洋科技www.idcsea.com,海外邮件解决方案提供商!

chaohu 发表于 2005-5-5 19:36

freebsd+postfix+sasl+mysql完全ports安装,支持密码加密认证。

freebsd+postfix+sasl+mysql完全ports安装,支持密码加密认证。<br>
本系统在winxpsp2+VMWARE5.0+freebsd4.10系统中测试通过。ports最后更新日期为5月1日。<br>
freebsd系统采用最小安装并添加cvsup。<br>
本系统最大的优点是简单,认证部分使用courier认证,是同一个进程,效率更高。<br>
apache、mysql、php、phpmyadmin(修改Makefile中的/www/为/www/data/)、postfixadmin(<br>
<br>
修改Makefile中的/www/为/www/data/,有很多处,全部改,因我不想修改httpd.conf)等软件直<br>
<br>
接通过ports安装,不说了。<br>
这里重点主要讲一讲sasl认证。<br>
一、在安装步骤上,我们首先安装courier-imap,并选中mysql认证,<br>
然后添加/etc/rc.conf增加courier_authdaemond_enable="YES"自启动,并启动<br>
/usr/local/etc/rc.d/courier_authdaemond.sh start。此时会在/var/run/authdaemond/下产<br>
<br>
生socket。<br>
chmod +x /var/run/authdaemond<br>
<br>
二、SASL<br>
1、cd /usr/ports/security/cyrus-sasl2;make install WITH_AUTHDAEMON=yes ;<br>
2、ee /usr/local/lib/sasl2/smtpd.conf ;<br>
pwcheck_method: authdaemond<br>
log_level: 3<br>
mech_list: PLAIN LOGIN<br>
authdaemond_path:/var/run/authdaemond/socket<br>
至此,认证部分基本完成。<br>
<br>
三、POSTFIX<br>
安装时选中sasl2+tls+mysql+vda+test等。<br>
ee /usr/local/etc/postfix/main.cf<br>
在最后添加:<br>
#======= BASE ==============<br>
myhostname = mail.chinake.com<br>
mydomain = chinake.com<br>
home_mailbox = Maildir/<br>
mydestination = $myhostname<br>
local_recipient_maps = <br>
#======= MYSQL =============<br>
virtual_gid_maps = static:80<br>
virtual_mailbox_base = /usr/local/virtual<br>
virtual_uid_maps = static:80<br>
virtual_minimum_uid = 80<br>
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf<br>
virtual_mailbox_domains = <br>
<br>
mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf<br>
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf<br>
#======= Quota ============<br>
message_size_limit = 5242880<br>
virtual_mailbox_limit_inbox = no<br>
virtual_mailbox_limit_override = yes<br>
virtual_maildir_extended = yes<br>
virtual_create_maildirsize = yes<br>
virtual_mailbox_limit_maps = <br>
<br>
mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf<br>
virtual_mailbox_limit = 52428800<br>
#======== SASL ================<br>
smtpd_sasl_auth_enable = yes<br>
smtpd_sasl_security_options = noanonymous<br>
broken_sasl_auth_clients = yes<br>
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination <br>
<br>
reject<br>
#smtpd_sasl_local_domain = $mydomain<br>
smtpd_client_restrictions = permit_sasl_authenticated<br>
<br>
几个配置文件:<br>
<br>
1、mysql_virtual_alias_maps.cf <br>
user = postfix<br>
password = postfix<br>
hosts = localhost<br>
dbname = postfix<br>
table = alias<br>
select_field = goto<br>
where_field = address<br>
<br>
2、mysql_virtual_domains_maps.cf <br>
user = postfix<br>
password = postfix<br>
hosts = localhost<br>
dbname = postfix<br>
table = domain<br>
select_field = description<br>
where_field = domain<br>
#additional_conditions = and backupmx = '0' and active = '1'<br>
3、mysql_virtual_mailbox_maps.cf <br>
user = postfix<br>
password = postfix<br>
hosts = localhost<br>
dbname = postfix<br>
table = mailbox<br>
select_field = maildir<br>
where_field = username<br>
#additional_conditions = and active = '1'<br>
4、mysql_virtual_mailbox_limit_maps.cf <br>
user = postfix<br>
password = postfix<br>
hosts = localhost<br>
dbname = postfix<br>
table = mailbox<br>
select_field = quota<br>
where_field = username<br>
#additional_conditions = and active = '1'<br>
<br>
这里我使用80用户,即WWW(HTTP)并修改:<br>
chown www:www /usr/local/virtual<br>
chmod 771 /usr/local/virtual<br>
<br>
四、COURIER<br>
ee authmysqlrc<br>
DEFAULT_DOMAIN chinake.com<br>
MYSQL_CRYPT_PWFIELD password<br>
MYSQL_DATABASE postfix<br>
MYSQL_GID_FIELD '80'<br>
MYSQL_HOME_FIELD '/usr/local/virtual'<br>
MYSQL_LOGIN_FIELD username<br>
MYSQL_MAILDIR_FIELD maildir<br>
MYSQL_NAME_FIELD name<br>
MYSQL_OPT 0<br>
MYSQL_PASSWORD postfix<br>
#MYSQL_PORT 0<br>
# Uncomment below if you want quota support.<br>
#MYSQL_QUOTA_FIELD quota<br>
MYSQL_SERVER localhost<br>
# Default FreeBSD Socket<br>
#MYSQL_SOCKET /var/mysql/mysql.sock<br>
# Default RedHat Socket<br>
#MYSQL_SOCKET /var/lib/mysql/mysql.sock<br>
MYSQL_UID_FIELD '80'<br>
MYSQL_USERNAME postfix<br>
MYSQL_USER_TABLE mailbox<br>
<br>
这里用户也修改为80<br>
ee authdaemonrc<br>
authmodulelist="authmysql authpam authuserdb"<br>
authmodulelistorig="authmysql authpam authuserdb"<br>
version="authdaemond.mysql"<br>
<br>
<br>
数据库我使用postfixadmin自带的。<br>
<br>

samfan 发表于 2005-5-6 13:13

re:keep Up!

keep Up!<br>


页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.