歡迎您光臨本站 註冊首頁

linux下Postfix支持虛擬用戶如何完成

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

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”)

本文出自 「Hello」 博客,請務必保留此出處http://xiaozhuang.blog.51cto.com/4396589/867929


[火星人 ] linux下Postfix支持虛擬用戶如何完成已經有455次圍觀

http://coctec.com/docs/linux/show-post-45954.html