redtea 半仙
注册时间: 2004-04-29 文章: 111
|
发表于: Mon 2005-04-25 17:03:21 发表主题: postfix 安装记录.sasl不打patch支持加密密码认证. |
|
|
以下是安装笔记,此方法利用 cyrus-sasl-2.1.20 调用 courier-authlib 的authdaemon 来认证,所以并不需要为cyrus-sasl-2.1.20 打patch 就可以支持加密密码的认证。
软件组合: postfix-2.2.2 + cyrus-sasl-2.1.20 + courier-authlib-0.55 + courier-imap 4.02 + postfixadmin(邮箱/邮局管理)
cyrus-sasl-2.1.20 安装
$ tar -zxvf cyrus-sasl-2.1.20.tar.gz
$ cd cyrus-sasl-1.2.20
$ ./configure -enable-plain --enable-login --enable-cram --enable-digest --enable-sql --disable-otp
--disable-srp --disable-srp-setpass --disable-krb4 --disable-gssapi --disable-anon --disable-ntlm -
-with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket --with-
mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include/mysql --with-mysql-
libs=/usr/local/mysql/lib/mysql
$ make
# make install
--with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket
这行是指定courier-authlib 的 authdaemon 的位置。
/usr/local/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
# pw groupadd postfix -g 1000
# pw groupadd postdrop
# pw useradd postfix -u 1000 -g postfix -G postdrop
安装postfix-2.2.2
$ tar -zxvf postfix-2.2.2.tar.gz
$ cd postfix-2.2.2
$ make tidy
$ make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -
I/usr/local/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lm -lz -
L/usr/local/lib -lsasl2'
$ make
$ su root
# make install
courier-authlib-0.55 安装
$ ./configure --prefix=/usr/local/courier-authlib --without-authuserdb --without-authpam --without-
authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --without-
authcustom --with-authmysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql
$ make
# make install
# make install-configure
chmod +x /usr/local/courier-authlib/var/spool/authdaemon
(authdaemon 默认不允许其他用户读取,加上存取权限).
COURIERAUTHCONFIG=/usr/local/courier-authlib/bin/courierauthconfig
(由于courier-authlib我没有安装在默认路径,因此加上此行指定courier-authlib 的位置)
courier-imap-4.0.2
$ ./configure --prefix=/usr/local/courier-imap --enable-unicode
$make
# make install
建立存储邮件的目录:
#mkdir /home/mailbox
#chown postfix:postfix /home/mailbox
#chmod -R 771 /home/mailbox
配置courier-authlib
要让courier-authlib能读取mysql中的认证信息,就需要配置authmysql的配置文件/usr/local/courier-
authlib/etc/authlib/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD yourpassword
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD crypt #如果数据库密码字段使用加密请使用此设置
MYSQL_CLEAR_PWFIELD clear #如果数据库密码字段使用明码请使用此设置
(根据数据库里的密码字段设置)
MYSQL_UID_FIELD '1000'
MYSQL_GID_FIELD '1000'
(此处根据设置你所建立的postfix用户及用户组的ID)
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/home/mailbox/' #设置postfix存储邮件的目录
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_WHERE_CLAUSE active='1'
postfix-2.2.2 部分设置
1.main.cf
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:1000
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1000
virtual_transport = virtual
virtual_uid_maps = static:1000
# Additional for quota support
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please
try again later.
virtual_overquota_bounce = yes
postfix sasl2认证设置:
main.cf
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
# reject_rbl_client opm.blitzed.org,
# reject_rbl_client list.dsbl.org,
# reject_rbl_client bl.spamcop.net,
# reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
把以下文件保存到根据/usr/local/etc/postfix/
(根据postfix 的 main.cf 里设置的路径/usr/local/etc/postfix/)
2 mysql_virtual_alias_maps.cf
You will need to put this into a text file for postfix to pickup.
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
3 mysql_virtual_domains_maps.cf
You will need to put this into a text file for postfix to pickup.
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
#additional_conditions = and backupmx = '0' and active = '1'
4 mysql_virtual_mailbox_maps.cf
You will need to put this into a text file for postfix to pickup.
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
#additional_conditions = and active = '1'
5 mysql_virtual_mailbox_limit_maps.cf
You will need to put this into a text file for postfix to pickup.
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
#additional_conditions = and active = '1'
另外可以参考这篇文章:http://postfixwiki.org/index.php/Virtual_Users_and_Domains_with_Courier-IMAP_and_MySQL |
|