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

[经验分享] Extmail邮件服务器centos搭建(二)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-30 09:28:36 | 显示全部楼层 |阅读模式
3.3 postfix开启基于cyrus-sasl的认证

查看sasl有关的安装包

[iyunv@mail ~]# rpm -qa |grep sasl

cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64

3.3.1

postfix和sasl结合,编辑postfix配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[iyunv@mail ~]# vim /etc/postfix/main.cf
  
#添加一下配置
  
broken_sasl_auth_clients = yes smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination
  
smtpd_sasl_auth_enable = yes
  
smtpd_sasl_local_domain = $myhostname
  
smtpd_sasl_security_options = noanonymous
  
smtpd_banner = Welcome to our $myhostname SMTP
  
[iyunv@mail ~]# service postfix restart
  
关闭 postfix:                                             [确定]
  
启动 postfix:                                             [确定]
  
[iyunv@mail ~]# telnet 127.0.0.1 25
  
Trying 127.0.0.1...
  
Connected to 127.0.0.1.
  
Escape character is '^]'.
  
220 Welcome to our mail.aolens.cn ESMTP,Warning: Version not Available!
  
ehlo mail.aolens.cn
  
250-mail.aolens.cn
  
250-PIPELINING
  
250-SIZE 10240000
  
250-VRFY
  
250-ETRN
  
250-AUTH CRAM-MD5 DIGEST-MD5 PLAIN LOGIN GSSAPI
  
250-AUTH=CRAM-MD5 DIGEST-MD5 PLAIN LOGIN GSSAPI
  
250-ENHANCEDSTATUSCODES
  
250-8BITMIME
  
250 DSN



3.3.2 sasl配置
1
2
3
4
5
6
7
8
9
[iyunv@mail ~]# service saslauthd restart
  
停止 saslauthd:                                           [确定]
  
正在启动 saslauthd:                                       [确定]
  
[iyunv@mail ~]# chkconfig --add saslauthd
  
[iyunv@mail ~]# chkconfig saslauthd on



3.4  安装Courier authentication library

下载地址:http://www.courier-mta.org/download.html#authlib

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@mail ~]# tar jxf courier-authlib-0.66.4.tar.bz2 -C /usr/local/src/
  
[iyunv@mail ~]# cd /usr/local/src/courier-authlib-0.66.4/
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# ./configure \
  
--prefix=/usr/local/courier-authlib \
  
--sysconfdir=/etc \
  
--with-authmysql \
  
--with-mysql-libs=/usr/lib64/mysql \
  
--with-mysql-includes=/usr/include/mysql \
  
--with-RedHat \
  
--with-authmysqlrc=/etc/authmysqlrc \
  
--with-authdaemonrc=/etc/authdaemonrc \
  
--with-mailuser=postfix



报错:

configure: error: The Courier Unicode Library 1.2 appears not to be installed. You may need to install a separate development subpackage, in addition to the main package

下载:courier-unicode

https://sourceforge.net/projects/courier/files/courier-unicode/1.2/courier-unicode-1.2.tar.bz2/download

1
2
3
4
5
6
7
[iyunv@mail ~]# tar jxf courier-unicode-1.2.tar.bz2
  
[iyunv@mail ~]# cd courier-unicode-1.2
  
[iyunv@mail ~/courier-unicode-1.2]# ./configure
  
[iyunv@mail ~/courier-unicode-1.2]# make && make install && echo 1



再次编译courier-authlib就好了

3.4.2 配置courier-authlib

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# cp /etc/authdaemonrc.dist /etc/authdaemonrc
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# cp /etc/authmysqlrc.dist /etc/authmysqlrc
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# vim /etc/authdaemonrc
  
#authmodulelist="authuserdb authpwd authshadow authmysql authcustom authpipe”
  
#authmodulelistorig="authuserdb authpwd authshadow authmysql authcustom authpipe"
  
authmodulelist="authmysql"
  
authmodulelistorig="authmysql"
  
MYSQL_SERVER        localhost
  
MYSQL_USERNAME      root
  
MYSQL_PASSWORD      aolens
  
MYSQL_SOCKET      /var/lib/mysql/mysql.sock
  
MYSQL_PORT      3306
  
MYSQL_DATABASE      extmail
  
MYSQL_USER_TABLE    mailbox
  
MYSQL_CRYPT_PWFIELD password
  
DEFAULT_DOMAIN        aolens.cn
  
MYSQL_UID_FIELD     '2525'
  
MYSQL_GID_FIELD     '2525'
  
MYSQL_LOGIN_FIELD   username
  
MYSQL_HOME_FIELD    concat('/var/mailbox/',homedir)
  
MYSQL_MAILDIR_FIELD   concat('/var/mailbox/',maildir)
  
 
  
[iyunv@mail /usr/lib64/sasl2]# mkdir -pv /var/mailbox
  
mkdir: 已创建目录 "/var/mailbox"
  
[iyunv@mail /usr/lib64/sasl2]# chown -R postfix.postfix /var/mailbox



为courier-authlib创建启动脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# chmod +x /etc/init.d/courier-authlib
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# chkconfig --add courier-authlib
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# chkconfig courier-authlib on
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# echo "/usr/local/courier-authlib/lib/courier-authlib/" >> /etc/ld.so.conf.d/courier-authlib.conf
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# ldconfig
  
[iyunv@mail /usr/local/src/courier-authlib-0.66.4]# service courier-authlib startStarting Courier authentication services: authdaemond



3.4.3配置smtp以及虚拟用户的相关

创建smtpd.conf

1
2
3
4
5
6
7
pwcheck_method: authdaemond
  
log_level: 3
  
mech_list: PLAIN LOGIN
  
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket



编辑main.cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
##postfix支持SMTP##
  
broken_sasl_auth_clients = yes
  
smtpd_client_restrictions = permit_sasl_authenticated
  
smtpd_sasl_security_options = noanonymous
  
smtpd_sasl_auth_enable = yes
  
smtpd_sasl_local_domain = $myhostname
  
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  
##postfix支持虚拟用户##
  
virtual_mailbox_base = /var/mailbox
  
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
  
virtual_alias_domains =
  
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
  
virtual_uid_maps = static:2525
  
virtual_gid_maps = static:2525
  
virtual_transport = virtual



3.5 导入数据库

使用extman源码目录下docs中的extmail.sql和init.sql建立数据库:

下载extmail 和extman

http://7xivyw.com1.z0.glb.clouddn.com/extmail-1.2.tar.gz

http://7xivyw.com1.z0.glb.clouddn.com/extman-1.1.tar.gz

1
[iyunv@mail ~/extman-1.1/docs]# cp mysql_virtual_* /etc/postfix/



创建数据库
1
2
3
4
5
6
7
8
9
[iyunv@mail ~/extman-1.1/docs]# mysql -uroot -p < extmail.sql
  
[iyunv@mail ~/extman-1.1/docs]# mysql -uroot -p < init.sql
  
[iyunv@mail ~/extman-1.1/docs]# service postfix restart
  
关闭 postfix:                                             [确定]
  
启动 postfix:                                             [确定]



3.6 配置dovecot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[iyunv@mail ~/extman-1.1/docs]# vim /etc/dovecot/conf.d/10-mail.conf
  
#添加
  
mail_location = maildir:/var/mailbox/%d/%n/Maildir
  
[iyunv@mail ~/extman-1.1/docs]# vim /etc/postfix/main.cf
  
#添加
  
home_mailbox = Maildir/
  
[iyunv@mail /etc/dovecot/conf.d]# cp  auth-sql.conf.ext auth-sql.conf
  
[iyunv@mail /etc/dovecot/conf.d]# vim auth-sql.conf
  
#修改
  
passdb {
  
driver = sql
  
#args = /etc/dovecot/dovecot-sql.conf.ext
  
args = /etc/dovecot/dovecot-sql.conf
  
}
  
userdb {
  
driver = sql
  
#args = /etc/dovecot/dovecot-sql.conf.ext
  
args = /etc/dovecot/dovecot-sql.conf
  
}



创建dovecot-mysql.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[iyunv@mail /etc/dovecot/conf.d]# vim /etc/dovecot/dovecot-mysql.conf
  
driver = mysql
  
connect = host=localhost dbname=extmail user=root password=aolens
  
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'
  
[iyunv@mail /etc/dovecot]# service dovecot start
  
正在启动 Dovecot Imap:                                    [确定]
  
[iyunv@mail /etc/dovecot]# chkconfig dovecot on



3.7 安装Extmail
1
2
3
4
5
6
7
[iyunv@mail ~]# tar zxf extmail-1.2.tar.gz
  
[iyunv@mail ~]# cp -a extmail-1.2 /var/www/extsuite/extmail
  
[iyunv@mail ~]# cd /var/www/extsuite/extmail
  
[iyunv@mail /var/www/extsuite/extmail]# cp webmail.cf.default webmail.cf



3.7.2 修改主配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SYS_MESSAGE_SIZE_LIMIT = 5242880   #用户可以发送的最大邮件
  
SYS_USER_LANG = zh_CN   #语言选择
  
SYS_MAILDIR_BASE =  /var/mailbox #邮件存放位置
  
SYS_MYSQL_USER = root   #数据库配置
  
SYS_MYSQL_PASS = aolens
  
SYS_MYSQL_DB = extmail
  
SYS_MYSQL_HOST = localhost
  
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
  
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket



3.8安装extman
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[iyunv@mail ~]# cp -a extman-1.1 /var/www/extsuite/extman
  
[iyunv@mail /var/www/extsuite/extman]# cp webman.cf.default webman.cf
  
[iyunv@mail /var/www/extsuite/extman]# chown -R postfix.postfix /var/www/extsuite/extman/cgi
  
[iyunv@mail /var/www/extsuite/extman]# chown -R postfix.postfix /var/www/extsuite/extmail/cgi
  
为extman创建临时目录
  
[iyunv@mail /var/www/extsuite/extman]# mkdir /tmp/extman &&chown -R postfix.postfix /tmp/extman
  
[iyunv@mail /var/www/extsuite/extman]# vim webman.cf
  
SYS_CAPTCHA_ON = 0   #修改1为0 验证码功能
  
[iyunv@mail /var/www/extsuite/extman]# service postfix restart
  
关闭 postfix:                                             [确定]
  
启动 postfix:                                             [确定]
  
[iyunv@mail /var/www/extsuite/extman]# service dovecot restart
  
停止 Dovecot Imap:                                        [确定]
  
正在启动 Dovecot Imap:                                    [确定]
  
[iyunv@mail /var/www/extsuite/extman]# service saslauthd restart
  
停止 saslauthd:                                           [确定]
  
正在启动 saslauthd:                                       [确定]



3.9测试虚拟用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@mail ~]# /usr/local/courier-authlib/sbin/authtest -s login postmaster@extmail.org extmail
  
Authentication succeeded.
  
Authenticated: postmaster@extmail.org  (uid 2525, gid 2525)
  
Home Directory: /var/mailbox/extmail.org/postmaster
  
Maildir: /var/mailbox/extmail.org/postmaster/Maildir/
  
Quota: (none)
  
Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
  
Cleartext Password: extmail
Options: (none)



postmaster@extmail.org时init.sql里自带的

4 安装perl依赖环境

extmail将会用到perl的Unix::syslogd功能,您可以去http://search.cpan.org搜索下载原码包进行安装。

1
2
3
4
5
6
7
[iyunv@mail ~]# tar zxf Unix-Syslog-1.0.tar.gz -C /usr/local/src/
  
[iyunv@mail ~]# cd /usr/local/src/Unix-Syslog-1.0/
  
[iyunv@mail /usr/local/src/Unix-Syslog-1.0]# perl Makefile.PL
  
[iyunv@mail /usr/local/src/Unix-Syslog-1.0]# make && make install



4.2 配置apache虚拟主机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@mail ~]# vim /etc/httpd/conf/httpd.conf
  
User postfix
  
Group postfix
  
<VirtualHost *:80>
  
ServerName mail.aolens.com
  
DocumentRoot "/var/www/extsuite/extmail/html/"
  
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
  
</VirtualHost>
  
[iyunv@mail ~]# service httpd restart



访问mail.aolens.cn

选择登陆邮箱管理:默认的账号密码是:root@extmail.org   extmail*123*

img_573934fe2bd5a.jpg

添加域,添加用户

使用普通用户登录

报错:

Can't chdir to /var/mailbox/aolens.cn/aolens/Maildir/, No such file or directory

[/shell][iyunv@mail /var/www/extsuite]# vim /var/www/extsuite/extman/webman.cf

SYS_MAILDIR_BASE = /var/mailbox

SYS_MYSQL_USER = root

SYS_MYSQL_PASS = aolens

SYS_MYSQL_DB = extmail

SYS_MYSQL_HOST = localhost

SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock[/shell]

就是因为webman.cf没有设置导致创建用户后没有自动创建用户邮件存放路径。

不启动cmdserver 的话系统页面会出现Connection refused

img_5739354fa9653.jpg

[iyunv@mail /var/www/extsuite/extman/daemon]# ./cmdserver -d

loaded ok

现在尝试发送邮件:

aaa@aolens.cn —> 312313231@qq.com  邮件发送成功

aaa@aolens.cn —> bbb@aolens.cn 发送不成功

报错:

mail postfix/smtpd[6525]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 <bbb@aolens.cn>: Recipient address rejected: User unknown in local recipient table; from=<aaa@aolens.cn> to=<bbb@aolens.cn> proto=ESMTP helo=<localhost.localdomain>

修改main.cf

mydestination = $myhostname

邮件发送成功!






运维网声明 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-223730-1-1.html 上篇帖子: Extmail邮件服务器centos搭建(一) 下篇帖子: linux podtfix 邮件服务器部署 邮件服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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