设为首页 收藏本站
查看: 2350|回复: 0

[经验分享] 邮件系统服务器搭建记录(五)(Postfix+Cyrus-sasl+Courier-authlib+Dovecot+ExtMail+MySQL)

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-1-11 08:43:35 | 显示全部楼层 |阅读模式
13.  配置dovecot访问mysql进行验证
dovecot本身是支持mysql认证方式的,其在/etc/dovecot/conf.d/下提供了名为auth-sql.conf.ext的配置文件:
1
2
3
[iyunv@mail ~]# cd /etc/dovecot/conf.d/
[iyunv@mail conf.d]# ls auth-master.conf.ext
auth-master.conf.ext



但dovecot默认使用的收件认证方式是系统账号口令验证,因此auth-sql.conf.ext默认不被加载,所以要编辑/etc/dovecot/conf/10-auth.conf加载该文件:
1
2
3
[iyunv@mail conf.d]# vi 10-auth.conf
#!include auth-system.conf.ext    #注释该行
!include auth-sql.conf.ext    #启用该行



上述修改表示将不再加载系统账号口令验证的配置文件,而加载mysql认证的配置文件。
配置auth-sql.conf.ext文件:
1
2
3
4
5
6
7
8
9
10
11
[iyunv@mail conf.d]# vi auth-sql.conf.ext
passdb {  
    driver = sql    #sql驱动  
    # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext  
    args = /etc/dovecot/dovecot-sql.conf    #详细配置文件
}

userdb {  
    driver = sql    #sql驱动  
    args = /etc/dovecot/dovecot-sql.conf    #详细配置文件
}



在/etc/dovecot下创建dovecot-sql.conf文件,并添加如下内容:
1
2
3
4
5
6
[iyunv@mail dovecot]# vi dovecot-sql.conf
driver = mysql    #驱动
connect = host=localhost dbname=extmail user=extmail password=extmail    #连接数据库配置
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir,uidnumber AS uid,gidnumber AS gid FROM mailbox WHERE username = '%u'



注:auth-sql.conf.ext文件的passdb和userdb的driver配置的内容不同于dovecot-sql.conf的driver,一个为sql,一个为mysql(我也不知道为什么,是否为固定格式?)
如果重启dovecot后,在/var/log/maillog中发现如下错误提示:Unknown passdb driver 'mysql',请安装dovecot-mysql包。

14. 配置ExtMail和ExtMan
ExtMail提供了名为webmail.cf的配置文件,可以对其程序内容和访问mysql方式进行修改,编辑/var/www/extsuite/extmail/webmail.cf:
1
2
3
4
5
6
7
[iyunv@mail ~]# cd /var/www/extsuite/extmail/
[iyunv@mail extmail]# cp webmail.cf webmail.cf.default
[iyunv@mail extmail]# vi webmail.cf
SYS_USER_LANG = zh_CN    #修改默认语言
SYS_MAILDIR_BASE = /mailbox    #修改maildir路径
SYS_MYSQL_USER = extmail    #访问mysql的用户,同extmail库一致
SYS_MYSQL_PASS = extmail



ExtMan提供的配置文件名称为webman.cf,编辑/var/www/extsuite/extman/webman.cf:
1
2
3
4
5
6
7
8
9
10
[iyunv@mail extmail]# cd ..
[iyunv@mail extsuite]# cd extman/
[iyunv@mail extman]# cp webman.cf webman.cf.default
[iyunv@mail extman]# vi webman.cf
SYS_MAILDIR_BASE = /mailbox
SYS_CAPTCHA_ON = 0    #不使用验证码验证登录
SYS_DEFAULT_UID = 2525    #运行该程序的用户UID,应为postfix的UID
SYS_DEFAULT_GID = 2525    #运行该程序的用户GID,应为postfix的GID
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail



创建/tmp/extman目录,并修改属主属组为postfix:
1
2
[iyunv@mail ~]# mkdir /tmp/extman
[iyunv@mail ~]# chown postfix.postfix /tmp/extman




15. 部署ExtMail和ExtMan
到现在为止,postfix已经配置支持虚拟用户,courier-authlib和cryus-sasl也配置支持访问mysql进行虚拟用户的发件验证,dovecot也可以访问mysql进行虚拟用户的收件验证了,webmail也完成了配置,那么现在只要将ExtMail和ExtMan部署,并通过ExtMan提供的Web管理接口创建虚拟用户和虚拟域,就可以对整个邮件系统进行测试了!

由于收发邮件的服务都是由postfix用户运行的,所以要将ExtMail和ExtMan的Web应用程序文件(见第9节)父目录/var/www/extsuite的属主和属组修改为postfix:
1
[iyunv@mail ~]# chown -R postfix.postfix /var/www/extsuite/



修改apache服务器配置文件/etc/httpd/conf/httpd.conf:
1
2
3
4
5
6
7
8
9
10
[iyunv@mail ~]# vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80>    #开启虚拟主机
    DocumentRoot /var/www/extsuite/extmail/html/
    ServerName mail.ahltnew.com    #与系统主机名一致
    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
    Alias /extmail /var/www/extsuite/extmail/html
    ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
    Alias /extman /var/www/extsuite/extman/html
    SuexecUserGroup postfix postfix    #表示切换成postfix用户和postfix组来运行该Web程序
</VirtualHost>




16. 重启所有相关服务
至此,所有的配置都已完成,重启如下服务:
1
2
3
4
5
[iyunv@mail ~]# service postfix restart    #postfix
[iyunv@mail ~]# service saslauthd restart    #cyrus-sasl
[iyunv@mail ~]# service courier-authlib restart   #courier-authlib
[iyunv@mail ~]# service dovecot restart    #dovecot
[iyunv@mail ~]# service httpd restart    #apache server



至此,邮箱系统搭建基本结束。

注:postfix,courier-authlib,cyrus-sasl,dovecot运行过程中的日志可以通过/var/log/maillog进行查看,apache server的日志则通过/var/log/httpd/error_log进行查看。

访问http://主机IP/extmail来登录extmail,如果页面提示Unix::Syslog not found,请安装perl-Unix-Syslog软件包:
1
[iyunv@mail ~]# yum install perl-Unix-Syslog




可以只将select的权限赋予mysql的extmail用户,新建一个mysql用户用于修改extmail库记录内容,同时修改webman.cf的SYS_MYSQL_USER和SYS_MYSQL_PASS配置项内容为该用户名和口令,即可以实现WebMail的访问和管理的权限分离。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-162799-1-1.html 上篇帖子: 邮件系统服务器搭建记录(四)(Postfix+Cyrus-sasl+Courier-authlib+Dovecot+ExtMail+MySQL) 下篇帖子: email怎么创建怎么才能有属于自己的email呢? 服务器 邮件系统 记录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表