inet_interfaces = all在设置好以上基本参数后就需要设置支持virtualhost了,在本例中我们将所有的邮件全部存放在/var/mailbox中,同时因为iGENUS要在用户邮箱目录(Maildir)中建立文件和存放信息,所以就要求web服务器的用户要对用户邮箱目录有写的权限,所以我们在这里就将用户邮箱的uid和gid设置成web服务器的uid和gid以确保iGENUS正常工作,本例中web服务器的uid和gid都为80。在/etc/postfix/main.cf中加入:
virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_mailbox_domains.cfhQuLinux联盟
virtual_mailbox_base = /var/mailbox/hQuLinux联盟
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_mailbox_maps.cfhQuLinux联盟
virtual_minimum_uid = 80hQuLinux联盟
virtual_uid_maps = static:80hQuLinux联盟
virtual_gid_maps = static:80hQuLinux联盟
virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_alias_maps.cf
虚拟域名支持的配置比较简单,根据字意就可以看明白,不过有一点需要注意,/var/mailbox/最后的"/"字符不能省略。
在设置好虚拟域名的基本参数后,就需要设置每个MySQL查询配置文件了,我们将所有的MySQL查询配置文件统一存放在/etc/postfix/mysql中,每个查询配置文件的内容分别如下:
在/etc/postfix/建立mysql目录hQuLinux联盟
#mkdir /etc/postfix/mysqlhQuLinux联盟
#ee /etc/postfix/mysql/mysql_mailbox_domains.cfhQuLinux联盟
加入hQuLinux联盟
user = postfixhQuLinux联盟
password = postfixhQuLinux联盟
dbname = postfix
table = domainhQuLinux联盟
select_field = domainhQuLinux联盟
where_field = domainhQuLinux联盟
additional_conditions = and active='1'
加入hQuLinux联盟
#ee /etc/postfix/mysql/mysql_mailbox_maps.cfhQuLinux联盟
user = postfixhQuLinux联盟
password = postfixhQuLinux联盟
dbname = postfix
table = mailboxhQuLinux联盟
select_field = maildirhQuLinux联盟
where_field = usernamehQuLinux联盟
additional_conditions = and active='1'
加入hQuLinux联盟
#ee /etc/postfix/mysql/mysql_alias_maps.cfhQuLinux联盟
user = postfixhQuLinux联盟
password = postfixhQuLinux联盟
dbname = postfix
table = aliashQuLinux联盟
select_field = gotohQuLinux联盟
where_field = addresshQuLinux联盟
additional_conditions = and active='1'
接下来开启sasl认证(为了与旧的MUA兼容所以加入broken_sasl_auth_clients的支持),在/etc/postfix/main.cf中加入:hQuLinux联盟
#ee /etc/postfix/main.cfhQuLinux联盟
smtpd_sasl_auth_enable = yeshQuLinux联盟
smtpd_sasl_application_name = smtpdhQuLinux联盟
broken_sasl_auth_clients = yeshQuLinux联盟
smtpd_sasl_local_domain = mgpc.com.cnhQuLinux联盟
smtpd_recipient_restrictions= permit_sasl_authenticated permit_auth_destination reject
接下来设置alias_maps,在/etc/postfix/main.cf中加入:hQuLinux联盟
alias_maps = hash:/etc/postfix/aliaseshQuLinux联盟
现在用postalias生成aliases.dbhQuLinux联盟
# cd /etc/postfixhQuLinux联盟
# postalias aliases
最后就是建立/var/mailbox目录:hQuLinux联盟
# mkdir /var/mailboxhQuLinux联盟
# chown -R www:www /var/mailbox
5.8配置sasl认证
在配置postfix的时候,我们设置了postfix使用的sasl配置文件为smtpd,所以现在我们需要配置sasl让它知道怎么从MySQL中读取认证信息:
# ee /usr/local/lib/sasl2/smtpd.conf在其中加入hQuLinux联盟
pwcheck_method: auxprophQuLinux联盟
mech_list: plain loginhQuLinux联盟
auxprop_plugin: sqlhQuLinux联盟
sql_engine: mysqlhQuLinux联盟
sql_hostnames: localhosthQuLinux联盟
sql_user: postfixhQuLinux联盟
sql_passwd: postfixhQuLinux联盟
sql_database: postfixhQuLinux联盟
sql_select: SELECT password FROM mailbox WHERE username='%u@%r' and domain='%r' and active='1'
上面的选项中根本字意就可以了解它的意思,其中sql_select中的%u表示是用户名,%r表示是realm,通常为用户的域名(如果用户名中没有包含域名,则默认为服务器的域名),因为postfixadmin生成的用户名是user@domain.ltd的形式,而非标准的user形式,所以我们需要设置WHERE语句为username='%u$%r'即'用户名@域名'。
5.9配置courier-imap
要让courier-imap能够正确的读取MySQL中的认证信息,就需要配置authmysql的配置文件/usr/server/courier-imap/etc/authmysqlrc,本例中其内容如下:
# cd /usr/server/courier-imap/etc/hQuLinux联盟
# cp /usr/server/courier-imap/etc/authmysqlrc.dist /usr/server/courier-imap/etc/authmysqlrchQuLinux联盟
# ee authmysqlrchQuLinux联盟
MYSQL_SERVER localhosthQuLinux联盟
MYSQL_SOCKET /tmp/mysql.sockhQuLinux联盟
MYSQL_USERNAME postfixhQuLinux联盟
MYSQL_PASSWORD postfixhQuLinux联盟
MYSQL_DATABASE postfixhQuLinux联盟
MYSQL_USER_TABLE mailboxhQuLinux联盟
MYSQL_LOGIN_FIELD usernamehQuLinux联盟
MYSQL_CLEAR_PWFIELD passwordhQuLinux联盟
MYSQL_UID_FIELD '80'hQuLinux联盟
MYSQL_GID_FIELD '80'hQuLinux联盟
MYSQL_HOME_FIELD '/var/mailbox/'hQuLinux联盟
MYSQL_MAILDIR_FIELD maildirhQuLinux联盟
MYSQL_NAME_FIELD namehQuLinux联盟
MYSQL_QUOTA_FIELD quotahQuLinux联盟
MYSQL_WHERE_CLAUSE active='1'hQuLinux联盟
同postfix中的配置一样,/var/mailbox/最后的"/"字符不能省略。
注释掉MYSQL_CRYPT_PWFIELD
接下来配置authdaemonrc:hQuLinux联盟
# cp /usr/server/courier-imap/etc/authdaemonrc.dist /usr/server/courier-imap/etc/authdaemonrc
因为我们这里只使用了authmysql模块,所以我们可以把其它验证模块去掉,编辑authdaemonrc文件,将其中的:
authmodulelist="authcustom authcram authuserdb authmysql authpam"
改成:
authmodulelist="authmysql"
最后就是配置pop3d和imapd了,这里我们直接使用其默认设置:
# cp /usr/server/courier-imap/etc/pop3d.dist /usr/server/courier-imap/etc/pop3dhQuLinux联盟
# cp /usr/server/courier-imap/etc/pop3d-ssl.dist /usr/server/courier-imap/etc/pop3d-sslhQuLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论