linux postfix 虚拟,linux下Postfix支持虚拟用户如何完成

1.建立虚拟用户数据库

[root@mail ~]#service mysqld restart            //重新启动一下mysql数据库

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

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

[root@mail docs]#mysql -u root -p123456 < extmail.sql  //导入extmail.sql脚本,root用户登入数据库密码为123456

[root@mail docs]#mysql-u root  -p123456 < init.sql   //导入init.sql脚本

extmail.sql脚本完成的主要数据库操作如下:

创建名为extmail的数据库及该库中的一些表;

建立数据库用户extmail@localhost,初始密码为extmail,对数据库extmail中的表有select、update权限;

建立数据库用户webman@localhost,初始密码为extman,对数据库extmail中的表有select、insert、delete、update权限。

init.sql脚本完成的主要数据库操作如下:

初始化数据库Extmail;

建立名为extmail.org的虚拟邮件域;

建立数据库用户root@extmail.org,初始密码为:extmail*123* ,作为邮件域的管理账户;

建立数据库用户postmaster@extmail.org,初始密码为:extmail,作为基本邮件用户。

2.修改Postfix的配置

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

支持虚拟用户的配置有:

virtual_mailbox_base: 指定虚拟邮箱存储目录的路径起点

virtual_alias_maps: 指定虚拟邮件用户对应的别名文件位置

virtual_mailbox_maps: 虚拟邮箱地址和存储位置对应关系的映射位置

virtual_mailbox_domains: 域名

virtual_uid_maps: 设置虚拟邮件用户映射的本地用户的UID号

virtual_gid_maps: 设置虚拟邮件用户映射的本地组的GID号

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

1>.编译安装courier-authlib软件包:

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

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

[root@mail courier-authlib-0.60.2]#./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]#make && make install

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

2>.修改courier-authlib相关配置,并启动服务:

将courier-authlib的库文件路径添加到系统的搜索路径中:

[root@mail courier-authlib-0.60.2]#vi /etc/ld.so.conf

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

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

修改authdaemonrc主配置文件,仅保留authmysql认证方式,去掉其他方式:

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

[root@mail authlib]#vi authdaemonrc

authmodulelist=“authmysql”           //需要修改的配置项

authmodulelistorig="authmysql"           //需要修改的配置项

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

修改authmysqlrc文件,用于描述如何向mysql数据库查询信息:

[root@mail authlib]#vi authmysqlrc

MYSQL_SERVER localhost \\msyql数据库服务器位置

MYSQL_USERNAME extmail \\数据库管理员账号

MYSQL_PASSWORD extmail \\数据库管理员账户密码

MYSQL_SOCKET /tmp/mysql.sock \\mysql.sock文件位置

MYSQL_DATABASE extmail \\虚拟用户数据库

MYSQL_USER_TABLE mailbox \\重mailbox表中获得账户的信息

MYSQL_CRYPT_PWFIELD password \\从pssword字段获得帐户密码

MYSQL_UID_FIELD uidnumber \\从uidnumber字段获得映射的本地用户UID

MYSQL_GID_FIELD gidnumber \\从gidnumber字段获得映射的本地组GID

MYSQL_LOGIN_FIELD username \\从username字段获得帐户名称(带@后缀)

MYSQL_HOME_FIELD concat(‘/mailbox/’,homedir) \\合并出用户的宿主目录完整路径

MYSQL_NAME_FIELD name \\从name字段获得帐户名称(不带@后缀)

MYSQL_MAILDIR_FIELD concat(‘/mailbox/’,maildir) \\合并出用户的完整邮件存储路径

复制courier-authlib脚本,并启动courier-authlib服务:

[root@mail authlib]#cp courier-authlib.sysvinit    /etc/init.d/courier-authlib    //courier-authlib.sysvinit文件位于源码包解压后的courier-authlib-0.60.2目录下

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

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

[root@mail authlib]#chkconfig --level 35  courier-authlib  on

3>.修改Cyrus sasl设置:(修改smtpd.conf文件,此文件在搭建基于系统用户的邮件系统时已建立,现在将认证方式更改为authdaemond,即courier-authlib)

[root@mail authlib]#vi /usr/lib/sasl2/smtpd.conf

pwcheck_method: authdaemond

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

4.修改Dovecot的配置:

1>.dovecot文件需要修改的配置如下:

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

查找mail_location 把它修改为

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

查找 mechanisms = plain 在下面添加以下内容

passdb sql {

args = /etc/dovecot-mysql.conf

}

userdb sql {

args = /etc/dovecot-mysql.conf

}

2>.建立数据库查询配置文件:

[root@mail ~]# vi /etc/dovecot-mysql.conf

driver = mysql

connect = host=localhost dbname=extmail user=extmail password=extmail

default_pass_scheme = CRYPT \\msyql数据库中存储的密码串的加密算法

password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = ‘%u’ \\用于查询用户密码的SQL语句

user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = ‘%u’ \\用于查询用户的SQL语句

3>.建立虚拟用户postmaster@extmail.org的邮箱目录,调整权限,并启动dovecot服务:

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

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

[root@mail Maildir]#killall -9 dovecot        //如果dovecot服务已启动,先执行此步骤

[root@mail Maildir]#dovecot

5.测试虚拟用户实现结果:

1>.测试authlib服务,如果之前的配置没有错误,将会看到“Authentication succeeded”信息:

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

2>.测试对虚拟用户的smtp发信认证,出现“235 Authentication Successful”信息表示成功

[root@mail ~]# perl -e ‘use MIME::Base64; print encode_base64(“postmaster\@extmail.org”)’

[root@mail ~]# perl -e ‘use MIME::Base64; print encode_base64(“extmail”)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值