[CentOS6] Postfixによるメールサーバ構築 その2 (MySQLの設定とpostfixadminのインストール)

  • URL: http:/www.example.com/postfixadmin/
  • パスワード保存形式: dovecot CRAM-MD5形式

準備

パスワードの保存にdovecotのCRAM-MD5形式を採用しているため、postfixadminでのパスワード登録や認証にdoveadmコマンドが必要となります。そのため事前にdovecotをインストールしておきます。

yum install dovecot

MySQLの設定

Postfix、Dovecotで使用するドメイン情報、ユーザ情報、認証情報を保存するデータベースをMySQLで設定します。

事前にMySQLをインストールしておく必要があります。記事「MySQL phpMyAdmin インストール」を参考にしてインストールしてください。

  • ユーザ名: postfix
  • データベース名: postfix
  • パスワード: skpMrLvw9fiX
mysql -u root -p
----------------------------------------------------
SELECT host,user,password FROM mysql.user;
DELETE FROM mysql.user WHERE user="";
SELECT host,user,password FROM mysql.user;
CREATE DATABASE postfix;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'skpMrLvw9fiX';
GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
exit
----------------------------------------------------

postfixadminのインストール

postfixadmin 2.3.6をダウンロードして/vaw/wwwへ設置します。

cd /usr/local/src/
wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.6/postfixadmin-2.3.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpostfixadmin%2F&ts=1372249044&use_mirror=jaist
tar zxvf postfixadmin-2.3.6.tar.gz
mv postfixadmin-2.3.6/ /var/www/postfixadmin

config.inc.phpを編集してpostfixadminの初期設定を行います。

cd /var/www/postfixadmin
vi config.inc.php
----------------------------------------------------
//$CONF['configured'] = false;
$CONF['configured'] = true;
//$CONF['postfix_admin_url'] = '';
$CONF['postfix_admin_url'] = '/postfixadmin/';
//$CONF['default_language'] = 'en';
$CONF['default_language'] = 'ja';
//$CONF['database_type'] = 'mysql';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
//$CONF['database_password'] = 'postfixadmin';
$CONF['database_password'] = 'skpMrLvw9fiX';
$CONF['database_name'] = 'postfix';
//$CONF['encrypt'] = 'md5crypt';
$CONF['encrypt'] = 'dovecot:CRAM-MD5';
//$CONF['dovecotpw'] = "/usr/sbin/dovecotpw";
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
//$CONF['page_size'] = '10';
$CONF['page_size'] = '50';
//$CONF['domain_path'] = 'NO';
$CONF['domain_path'] = 'YES';
// Specify your default values below. Quota in MB.
$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
//$CONF['maxquota'] = '10';
$CONF['maxquota'] = '200';
//$CONF['quota'] = 'NO';
$CONF['quota'] = 'YES';
//$CONF['vacation_control'] ='YES';
$CONF['vacation_control'] ='NO';
//$CONF['vacation_control_admin'] = 'YES';
$CONF['vacation_control_admin'] = 'NO';
//$CONF['alias_control'] = 'NO';
$CONF['alias_control'] = 'YES';
//$CONF['alias_control_admin'] = 'NO';
$CONF['alias_control_admin'] = 'YES';
//$CONF['alias_domain'] = 'YES';
$CONF['alias_domain'] = 'NO';
//$CONF['backup'] = 'YES';
$CONF['backup'] = 'NO';
//$CONF['sendmail'] = 'YES';
$CONF['sendmail'] = 'NO';
//$CONF['fetchmail'] = 'YES';
$CONF['fetchmail'] = 'NO';
//$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main";
$CONF['user_footer_link'] = "/postfixadmin/";
//$CONF['show_footer_text'] = 'YES';
$CONF['show_footer_text'] = 'NO';
//$CONF['emailcheck_resolve_domain']='YES';
$CONF['emailcheck_resolve_domain']='NO';
//$CONF['used_quotas'] = 'NO';
$CONF['used_quotas'] = 'YES';
//$CONF['new_quota_table'] = 'NO';
$CONF['new_quota_table'] = 'YES';
----------------------------------------------------

Apacheの設定を行いpostfixadminへアクセスできるようにします。

vi /etc/httpd/conf.d/postfixadmin.conf
----------------------------------------------------
Alias /postfixadmin "/var/www/postfixadmin"
<Directory "/var/www/postfixadmin">
Order allow,deny
Allow from all
</Directory>
----------------------------------------------------
apachectl -t
apachectl restart

セットアップパスワードの登録

phpmyadmin セットアップ

データベース等の情報が正しく設定されていれば、http:/www.example.com/postfixadmin/setup.phpへアクセスするとデータベースのセットアップが始まります。

postfixadmin セットアップパスワード

セットアップパスワードを入力しボタンを押すことでパスワードハッシュが生成されます。表示されたパスワードハッシュをconfig.inc.phpへコピー&ペーストで追記します。以降、setup.phpを使用するにはセットアップパスワードが必要となります。

vi config.inc.php
----------------------------------------------------
//$CONF['setup_password'] = 'changeme';
$CONF['setup_password'] = '367b10879c33b7555216f.....略...6df5e61357ae13fe0f8f4e133ec';
----------------------------------------------------

管理者の登録

postfixadmin 管理者登録

再度、http:/www.example.com/postfixadmin/setup.phpへアクセスし、今度は管理者の登録を行います。登録の際には先ほど設定したセットアップパスワードも入力する必要があります。

管理者でのログイン確認

postfixadmin 管理者ログイン

登録した管理者でログイン画面(http:/www.example.com/postfixadmin/)へアクセスし、管理者正しくログインできるか確認します。この管理者でドメインやメールアカウントの登録ができるようになります。

ちなみに、一般ユーザはhttp:/www.example.com/postfixadmin/postfixadmin/users/からログインできます。