postfix mysql 虚拟用户_配置Postfix支持虚拟用户

我所写的postfix搭建是一气呵成的,前面发布的是基本搭建的内容,后续都是以前面为基础的发表,实验环境还是redhat 5.4服务器版,其实这就是为安装Extmail做准备

---------------------

建立虚拟用户数据库

[root@mail mail]# service mysqld restart

Shutting down MySQL.                                            [确定]

Starting MySQL                                                  [确定]

[root@mail mail]#

[root@mail mail]# tar xzvf extman-0.2.5.tar.gz

[root@mail mail]# cd extman-0.2.5/docs/

[root@mail docs]#

[root@mail docs]# mysql -u root -p < extmail.sql

Enter password:

[root@mail docs]# mysql -u root -p < init.sql

Enter password:

---------------------

修改 Postfix的配置

[root@mail docs]# vim /etc/postfix/main.cf

#mydestination = $mydomain, $myhostname   //这一行注释掉

......

virtual_mailbox_base = /mailbox

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf

virtual_uid_maps = static:1000

virtual_gid_maps = static:1000

[root@mail docs]# cp mysql_virtual_* /etc/postfix/

[root@mail docs]# postfix reload       //  重新加载配置

----------------------

为虚拟用户设置 SMTP 发信认证

[root@mail mail]# tar jxvf courier-authlib-0.60.2.tar.bz2

[root@mail mail]#

[root@mail mail]# cd courier-authlib-0.60.2

[root@mail courier-authlib-0.60.2]#

[root@mail courier-authlib-0.60.2]# vim courier-authlib.sh

./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir \

--with-authmysql --with-redhat --with-mysql-libs=/usr/local/mysql/lib/mysql \

--with-mysql-includes=/usr/local/mysql/include/mysql

[root@mail courier-authlib-0.60.2]# chmod a+x courier-authlib.sh

[root@mail courier-authlib-0.60.2]#

[root@mail courier-authlib-0.60.2]# ./courier-authlib.sh

[root@mail courier-authlib-0.60.2]# make

[root@mail courier-authlib-0.60.2]# make install

[root@mail courier-authlib-0.60.2]# make install-configure   //生成默认配置文件

[root@mail courier-authlib-0.60.2]# vim /etc/ld.so.conf     //末尾添加如下行内容

......

/usr/local/courier-authlib/lib/courier-authlib

[root@mail courier-authlib-0.60.2]# ldconfig

[root@mail courier-authlib-0.60.2]# cd /usr/local/courier-authlib/etc/authlib/

[root@mail authlib]# vim authdaemonrc  //修改27行和34行,保留authmysql认证方式

27 authmodulelist="authmysql"

......

34 authmodulelistorig="authmysql"

[root@mail authlib]# chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon/

[root@mail authlib]# cp authmysqlrc authmysqlrc.bak

[root@mail authlib]# vim authmysqlrc

// 修改下列行,描述如何向MySQL查询数据

26 MYSQL_SERVER             localhost

27 MYSQL_USERNAME           extmail

28 MYSQL_PASSWORD           extmail

49 MYSQL_SOCKET             /tmp/mysql.sock

68 MYSQL_DATABASE           extmail

83 MYSQL_USER_TABLE         mailbox

92 MYSQL_CRYPT_PWFIELD      password

113 MYSQL_UID_FIELD         uidnumber

119 MYSQL_GID_FIELD         gidnumber

128 MYSQL_LOGIN_FIELD       username

133 MYSQL_HOME_FIELD        concat('/mailbox/',homedir)

139 MYSQL_NAME_FIELD        name

150 MYSQL_MAILDIR_FIELD     concat('/mailbox/',maildir)

-------------------

复制启动脚本,启动courier-authlib服务,这个脚本在源码包的目录里

[root@mail authlib]# cd /home/tom/LNS-SG7/courier-authlib-0.60.2

[root@mail courier-authlib-0.60.2]# pwd

/home/tom/mail/courier-authlib-0.60.2

[root@mail courier-authlib-0.60.2]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib

[root@mail courier-authlib-0.60.2]# chmod 755 /etc/init.d/courier-authlib

[root@mail courier-authlib-0.60.2]# chkconfig courier-authlib on

[root@mail courier-authlib-0.60.2]# service courier-authlib start

Starting Courier authentication services: authdaemond

-----------------

修改Cyrus sasl设置

[root@mail courier-authlib-0.60.2]# vim /usr/lib/sasl2/smtpd.conf

#pwcheck_method:saslauthd

pwcheck_method: authdaemond

authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket

-----------------

修改 Dovecot 的配置

修改邮件存储位置,设置启用数据库查询功能

[root@mail ~]# vim /etc/dovecot.conf

218 mail_location = maildir:/mailbox/%d/%n/Maildir

.....

794 auth default {

799    mechanisms = plain

903    passdb sql {

904      # Path for SQL configuration file, see doc/dovecot-sql-example.conf

905       args = /etc/dovecot-mysql.conf

906    }

966    userdb sql {

967      # Path for SQL configuration file, see doc/dovecot-sql-example.conf

968       args = /etc/dovecot-mysql.conf

969    }

.....

}

--------------------

建立数据库查询配置文件

[root@mail ~]# vim /etc/dovecot-mysql.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

--------------------

建立虚拟用户postmaster@extmail.org的邮箱目录,调整权限

username = '%u'

[root@mail ~]# mkdir -p /mailbox/extmail.org/postmaster/Maildir/

[root@mail ~]# chown -R postfix:postfix /mailbox

--------------------

重启Dovecot服务

[root@mail ~]# killall -9 dovecot

[root@mail ~]# dovecot

[root@mail ~]# netstat -nlpt |grep dovecot

tcp    0      0 0.0.0.0:110       0.0.0.0:*              LISTEN       27034/dovecot

tcp    0      0 0.0.0.0:143         0.0.0.0:*                        LISTEN       27034/dovecot

[root@mail ~]#

--------------------

测试虚拟用户实现结果

测试Postfix 支持虚拟用户

[root@mail ~]# /usr/local/courier-authlib/sbin/authtest -s login postmaster@extmail.org extmail

Authentication succeeded.         //  表示成功

Authenticated: postmaster@extmail.org   (uid 1000, gid 1000)

Home Directory: /mailbox/extmail.org/postmaster

Maildir: /mailbox/extmail.org/postmaster/Maildir/

Quota: (none)

Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0

Cleartext Password: extmail

Options: (none)

--------------------

测试虚拟用户SMPT发信认证

[root@mail ~]# printf   "postmaster@extmail.org" | openssl base64

cG9zdG1hc3RlckBleHRtYWlsLm9yZw==

[root@mail ~]# printf   "extmail" | openssl base64

ZXh0bWFpbA==

[root@mail ~]#

[root@mail ~]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220 mail.benet.com ESMTP Postfix

auth login

334 VXNlcm5hbWU6

cG9zdG1hc3RlckBleHRtYWlsLm9yZw==

334 UGFzc3dvcmQ6

ZXh0bWFpbA==

235 2.0.0 Authentication successful       //  表示成功

quit

221 2.0.0 Bye

Connection closed by foreign host.

[root@mail ~]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值