實戰部署MySQL用戶認證的Postfix郵件系統(2)

實戰部署Postfix+MySQL+Dovecot+Postfixadmin+Extmail郵件系統(2)

-----構建開源郵件系統系列
  如果您對本系列文章感興趣,可以通過點擊以下鏈接查看全文:

上面我們介紹了MySQL的查詢表,接下來就來創建這個配置文件,看看文件中包含什麼內容。
[root@mail i386]# cat /etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
[root@mail i386]#
mysql_virtual_domains_maps.cf配置文件內容:

[root@mail i386]# cat /etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
[root@mail i386]#

mysql_virtual_mailbox_limit_maps.cf配置文件內容:

[root@mail i386]# cat /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
[root@mail i386]#
mysql_virtual_mailbox_maps.cf配置文件內容:

[root@mail i386]# cat /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
[root@mail i386]#
Postfix的默認用戶郵件存放目錄是/var/spool/mail,由於RedHat默認設置的權限不是postfix用戶本身,這裏我們修改一下。筆者在搭建這個系統的過程中,由於這個目錄導致使用Webmail登錄不成功。當然我是如何發現的問題,通過看mail日誌發現的這個問題。
[root@mail i386]# ls -ld /var/spool/mail/
drwxrwxr-x 2 root mail 4096 Jan 19 00:07 /var/spool/mail/
[root@mail i386]# chown postfix.postfix /var/spool/mail/
[root@mail i386]# ls -ld /var/spool/mail/
drwxrwxr-x 2 postfix postfix 4096 Jan 19 00:07 /var/spool/mail/
四、創建Postfix所需的數據庫

hh
[root@mail i386]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.    Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database postfix;
Query OK, 1 row affected (0.04 sec)

mysql> create user 'postfix'@'localhost' identified by 'postfix';
Query OK, 0 rows affected (0.09 sec)

mysql> grant all privileges on postfix.* to postfix@'localhost';
Query OK, 0 rows affected (0.03 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
hh
mysql> show databases;
+--------------------+
| Database                     |
+--------------------+
| information_schema |
| mysql                            |
| postfix                        |
| test                             |
+--------------------+
4 rows in set (0.29 sec)

mysql> use postfix;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> show grants for postfix@'localhost';
+---------------------------------------------------------------------------------------+
| Grants for postfix@localhost                                                          |
+---------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'postfix'@'localhost' IDENTIFIED BY PASSWORD '3ecf3e4f55dd846f' |
| GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'localhost'                          |
+---------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

五、Postfixadmin安裝與配置

Postfixadminpostfix郵件系統的web管理工具,可以通過它管理虛擬郵件主機、添加刪除虛擬域、管理員、郵箱、別名以及用戶等,配置工作十分簡單。

安裝Postfixadmin較簡單,只要將該軟件解壓到Apache的主目錄中即可。使用rpm包安裝的Apache的默認路徑在/var/www/html下。

[root@mail ~]# tar -zxvf postfixadmin-2.3.6.tar.gz -C /var/www/html/
… …
postfixadmin-2.3.6/debian/control
postfixadmin-2.3.6/debian/lighttpd.conf
postfixadmin-2.3.6/debian/postfixadmin.docs
postfixadmin-2.3.6/edit-domain.php
[root@mail ~]# cd /var/www/html/
[root@mail html]# mv postfixadmin-2.3.6 postfixadmin
接下來設置postfixadmin的配置文件config.inc.php,主要修改下面的參數項:

[root@mail html]# vim postfixadmin/config.inc.php
……
$CONF['configured'] = true;                    //將默認的false修改爲true
$CONF['default_language'] = 'cn';            // postfixadmin默認語言:"cn" 中文,"en"英文
$CONF['database_type'] = 'mysql';          //數據庫類型
$CONF['database_host'] = 'localhost';     //數據庫服務的位置
$CONF['database_user'] = 'postfix';        //postfixadmin連接數據庫時使用的用戶名
$CONF['database_password'] = 'postfix'; //訪問數據庫的密碼
$CONF['database_name'] = 'postfix';    //連接MySQL數據庫的庫名
$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';
$CONF['encrypt'] = 'md5crypt';         //數據庫中密碼的保存形式
$CONF['domain_path'] = 'YES';         //指定以域名作爲郵箱文件夾的路徑名,將默認的NO修改爲YES
$CONF['domain_in_mailbox'] = 'NO';
$CONF['aliases'] = '1000';
$CONF['mailboxes'] = '1000';
$CONF['maxquota'] = '1000';
$CONF['quota'] = 'NO';
$CONF['quota_multiplier'] = '1024000';        //
郵箱的大小限制                                                            $CONF['emailcheck_resolve_domain']='NO';   //將默認的YES修改爲NO
在瀏覽器地址欄輸入http://mail.xifeng.com/postfixadmin/setup.php訪問postfixadmin設置頁,瀏覽器會出現如下圖所示界面。
在第一次訪問的過程中會在MySQL數據庫,postfix庫中添加相應的表結構,可以使用如下命令驗證:
[root@mail ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.    Commands end with ; or \g.
Your MySQL connection id is 156
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use postfix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------------+
| Tables_in_postfix         |
+-----------------------+
| admin                                 |
| alias                                 |
| alias_domain                    |
| config                                |
| domain                                |
| domain_admins                 |
| fetchmail                         |
| log                                     |
| mailbox                             |
| quota                                 |
| quota2                                |
| vacation                            |
| vacation_notification |
+-----------------------+
13 rows in set (0.00 sec)

mysql>
Change setup passwd下填寫你要設置的密碼後,將產生加密密碼,如下所示:

按照提示,將產生的密碼替換postfixadmin配置文件config.inc.php$CONF['setup_password'] =changeme”字段中的changeme,結果如下:
$CONF['setup_password'] = ' dbd193530d798b7cd5d6f0a3805ee4e4:b5b951b8706bec173e58aeb38d333926caa3863c';
接下來創建Postfixadmin的管理員,Postfixadmin將管理員劃分爲兩種:超級管理員和普通管理員,他們分別用以下用途:

l超級管理員:可以添加刪除郵件域、管理員;新建管理員並授予具有管理那個域的權限,新建用戶郵箱等權限。

l普通管理員:爲了安全起見,一般情況下,使用超級管理員來創建郵件域和普通管理員,而使用普通管理員來添加用戶郵箱以及別名。

在新版本中的postfixadmin管理工具中,在設置完Setup password後,就可以按照嚮導完成超級管理員的創建。

依次“創建輸入Setup password密碼、超級管理員用戶名(例如:本例中使用[email protected]作爲用戶名)和密碼”點擊“新增”,如下圖所示:

    點擊“新增”後,postfixadmin會提示“新增管理員成功”提示

超級管理員創建完成後,將setup.php文件和所有motd開頭的txt文件,移動到其它位置,或者刪除。

[root@mail html]# mv postfixadmin/setup.php ~
[root@mail html]# mv postfixadmin/motd* ~

創建完超級管理員後,我們直接輸入http://mail.xifeng.com/postfixadmin就可以使用超級管理員登錄,完成郵件域和普通管理員的創建:

輸入“超級管理員用戶名和密碼”點擊“登錄”完成登錄。
接下來我們來以下面的信息爲例來創建相應的信息:

域名

郵箱名

郵箱密碼

xifeng.com

123456

vfast.com

123456

在創建域的過程中,只需要點擊“域名清單”/“新建域”,如下所示:

輸入域名的相關信息之後,點擊“新增”即可。

點擊“域名清單”,可以列出已創建的郵件域:

在創建普通管理員的過程中,和創建域的過程一樣簡單。只需要單擊“管理員清單”/“新建管理員”
注意管理員名稱輸入的管理賬號名爲郵件地址,並賦予這個賬號可以管理那些域,如果是多個域可以按Ctrl鍵,選中要選擇的域的名稱即可。之後點擊“新增”
點擊“管理員清單”可以看到有兩個管理員,其中一個爲超級管理員,另一個爲普通管理員,管理的域名爲2個。

創建完成後也可以登錄到MySQL數據庫中,查詢admin表,你會發現這管理員的的信息。
[root@mail ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.    Commands end with ; or \g.
Your MySQL connection id is 135
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use postfix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from admin;
+------------------------+------------------------------------+---------------------+---------------------+--------+
| username                             | password                                                     | created                         | modified                        | active |
+------------------------+------------------------------------+---------------------+---------------------+--------+
| [email protected]             | $1$4a6944be$g1JKJSJ8uEk.KtW.OBaKa. | 2013-01-21 22:41:50 | 2013-01-21 22:41:50 |            1 |
| [email protected] | $1$7da3934e$/7Z5vzQmGXD3bVHFJGwu00 | 2013-01-21 22:36:31 | 2013-01-21 22:36:31 |            1 |
+------------------------+------------------------------------+---------------------+---------------------+--------+
2 rows in set (0.00 sec)

mysql>
接下來使用我們創建的[email protected]這個普通管理員登錄Postfixadmin,完成用戶郵箱的添加,同樣是使用http://mail.xifeng.com/postfixadmin這個管理鏈接來登錄。

登錄後,顯示出了普通管理員能夠完成的工作。

在創建用戶郵箱的過程中,只需要點擊“虛擬用戶清單”/“新建郵箱”,如下所示:

輸入用戶名後選擇用戶要添加的郵件域名之後輸入密碼等信息,點擊“增加郵箱”

完成後,會提示建立郵箱成功的提示,可以根據嚮導繼續創建郵箱。

現在我們先測試一下Postfix服務是否能夠啓動,如果可以,並將其設置爲開機自啓動。
[root@mail ~]# /etc/init.d/postfix start
Starting postfix:                                                                                    [    OK    ]
[root@mail ~]# chkconfig --level 35 postfix on
通常,Postfix輸出這一行信息並不能確認Postfix已經正常運行,我們還需要查看Postfix的系統日誌中有沒有什麼出錯信息。
[root@mail ~]# tail /var/log/maillog
……
Jan 22 02:57:49 mail postfix/postfix-script: starting the Postfix mail system
Jan 22 02:57:49 mail postfix/master[27795]: daemon started -- version 2.3.3, configuration /etc/postfix
[root@mail ~]#
如果日誌文件中包含上面的兩行信息,那麼恭喜你了,現在Postfix已經能夠啓動了,雖然它還不能提供服務。繼續努力吧!
由於老是提示文章篇幅超過8萬字符,特分爲三篇發佈,點擊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章