歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux下Postfix虛擬用戶的配置

linux下Postfix虛擬用戶的配置

日期:2017/3/3 16:00:38   编辑:關於Linux

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的虛擬郵件域;

建立數據庫用戶[email protected],初始密碼為:extmail*123* ,作為郵件域的管理賬戶;

建立數據庫用戶[email protected],初始密碼為: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) \\合並出用戶的宿主目錄完整路徑

本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45498.htm

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>.建立虛擬用戶[email protected]的郵箱目錄,調整權限,並啟動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 [email protected] 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”)

Copyright © Linux教程網 All Rights Reserved