PostfixAdmin 2.3beta

(最終更新日時:2009-02-21 08:24:13)
postfixのユーザーアカウントおよびバーチャルドメインの管理をGUIで行うツール PostfixAdmin をインストールします。

ダウンロード

PostfixAdmin 2.3 betapostfixadmin-2.3beta.tar.gz

事前準備

関連パッケージとして、下記を事前にインストールしておきます。
PHP
Apache Web Server
MySQL データベース
データベースには、PostgreSQL を使用することも可能です。

インストール

インストールするWebサイトディレクトリでアーカイブを展開します。
ここでは、/home/www/vhosts/system-act.com/www に展開します。
# mkdir /home/www/vhosts/system-act.com/www
# cd /home/www/vhosts/system-act.com/www
# tar xzvf ダウンロード先/postfixadmin-2.3beta.tar.gz
# mv postfixadmin-2.3beta postfixadmin                        アクセスしやすいディレクトリ名に変更します

データベース設定

MySQLにPostfixデータベースを準備します。
# mysql -u root -p
Enter password: MySQL rootユーザーのパスワード
       :
-- Postfixデータベースを作成します
mysql> CREATE DATABASE postfix;
       :
-- Postfix管理ユーザーを作成し、Postfixデータベースへの権限を設定します
mysql> GRANT ALL PRIVILEGES ON postfix.*
    -> TO postfixadmin@localhost
    -> IDENTIFIED BY 'パスワード';
       :
mysql> exit
PostgreSQLの場合は、以下でPostfixデータベースを準備します。
# su - postgres                                               postgresユーザーで行います
$ psql
Password: DBユーザー postgres のパスワード
       :
-- Postfix管理ユーザーを作成します
postgres=# CREATE ROLE postfixadmin WITH LOGIN PASSWORD 'パスワード';
CREATE ROLE

-- Postfixデータベースを作成します
postgres=# CREATE DATABASE postfix OWNER postfixadmin ENCODING 'UTF8';
CREATE DATABASE

postgres=# \q
$ exit

# PostgreSQLデータベースへの接続許可設定を行います
# vi /home/database/pgsql/pg_hba.conf

       :
# IPv4 local connections:
       :
host    postfix     postfixadmin 127.0.0.1/32         md5
       :

# service pgsql reload

定義ファイルの編集

Postfix AdminのConfigファイルを編集します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin

# replace "change-this-to-your.domain.tld" "system-act.com" -- config.inc.php
config.inc.php converted

# vi config.inc.php

     :
$CONF['configured'] = true;
     :
$CONF['default_language'] = 'ja';                             日本語表示にします
     :
$CONF['database_type'] = 'mysqli';                            mysqli拡張サポートで接続します
     :
$CONF['database_user'] = 'postfixadmin';                      データベース設定で作成したPostfix管理ユーザーを設定します
$CONF['database_password'] = 'データベース設定で作成したPostfix管理ユーザーのパスワード';
     :
$CONF['domain_path'] = 'YES';                                 メールボックスはドメイン名のフォルダ内に作成します
     :
$CONF['domain_in_mailbox'] = 'NO';                            メールボックス名にはドメイン名を付加しません
     :
$CONF['fetchmail'] = 'NO';                                    fetchmail機能は使用しません
     :
$CONF['user_footer_link'] = "main.php";                       ユーザー画面のフッターはメイン画面への遷移にします
     :
$CONF['show_footer_text'] = 'NO';                             フッターのテキストを表示しません
     :
$CONF['welcome_text'] = <<<EOM
ようこそ!Postfixメールシステムへ。

メールボックスの作成が完了しました。
EOM;
     :

改修等

ブラウザがIE(インターネットエクスプローラー)で、かつ SSL で接続している場合、バックアップでエラーになりますので対応します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin

# vi backup.php
session_cache_limiter('public');                              IE & SSLサイト用の設定を追加します
require_once('common.php');
     :

お知らせメッセージを編集します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin

# vi motd.txt

<div class="standout">
=== お知らせ ===<br />
現在、<a href="mailto:<?php print $CONF['admin_email']; ?>">サイト管理者</a>からのお知らせはありません。<br />
============<br />
</div>
<br />

# vi motd-users.txt

<div class="standout">
=== お知らせ ===<br />
現在、<a href="mailto:<?php print $CONF['admin_email']; ?>">サイト管理者</a>からのお知らせはありません。<br />
============<br />
</div>
<br />

Webサーバー設定

apacheのホスト設定にPostfix Adminの設定を追加します。
# vi /usr/local/apache2/conf/extra/vhosts/www.system-act.com.conf
Alias /postfixadmin "/home/www/vhosts/system-act.com/www/postfixadmin"

# service httpd restart                                       再起動して設定を反映させます
パーミッションおよびオーナーを変更します
# cd /home/www/vhosts/system-act.com/www/postfixadmin
# chown -R apache *
# chmod -R 400    *

# chmod 500 css
# chmod 500 images
# chmod 500 languages
# chmod 500 templates
# chmod 500 admin
# chmod 500 users

Postfix Adminの初期セットアップ

Webブラウザから http://WebサーバーのURL/postfixadmin/setup.php で初期セットアップ画面を表示させます。
postfixadmin01.gif
(※)エラーの表示がないことを確認し、特権管理者(ドメインの作成/削除ができます)のログインアドレスとパスワードを作成します。
(※)アップグレードの場合、特権管理者は既に作成済ですので作成する必要はありません。

特権管理者の作成を終えたら、setup.php を削除します。
# cd /home/www/vhosts/system-act.com/www/postfixadmin
# rm setup.php

接続ユーザーの作成

postfixdovecot からのデータベース接続は、管理ユーザーとは別のユーザーで行うようにします。
# mysql -u root -p
Enter password: MySQL rootユーザーのパスワード
       :
-- Postfix接続ユーザーを作成し、Postfixデータベースへの権限を設定します
mysql> GRANT SELECT ON postfix.*
    -> TO postfix@localhost
    -> IDENTIFIED BY 'パスワード';
       :
mysql> exit
PostgreSQLの場合は、以下で作成します。
# su - postgres                                               postgresユーザーで行います
$ psql
Password: DBユーザー postgres のパスワード
       :
-- Postfix接続ユーザーを作成します
postgres=# CREATE ROLE postfix WITH LOGIN PASSWORD 'パスワード';
CREATE ROLE

-- Postfixデータベースへの権限を設定します
postgres=# \c postfix
You are now connected to database "postfix".
postfix=# GRANT SELECT ON domain  TO postfix;
GRANT
postfix=# GRANT SELECT ON mailbox TO postfix;
GRANT
postfix=# GRANT SELECT ON alias   TO postfix;
GRANT

postgres=# \q
$ exit

# PostgreSQLデータベースへの接続許可設定を行います
# vi /home/database/pgsql/pg_hba.conf

       :
# IPv4 local connections:
       :
host    postfix     postfix     127.0.0.1/32          md5
       :

# service pgsql reload

Postfix Adminの運用

http://WebサーバーのURL/postfixadmin/ で管理者のログイン画面が表示されます。
postfixadmin11.gif
(※)特権管理者ログインアドレスとパスワードでログインすれば、新規ドメインの作成ができます。
(※)ドメイン管理者ログインアドレスとパスワードでログインすれば、管理ドメイン内にメールアドレスの作成ができます。
(注)各管理者のログインアドレスとパスワードはPOP3/IMAPとは別のものです。

最初にドメインを作成します。
postfixadmin12.gif
(※)ドメイン一覧からも作成することができます。

ドメインを作成した後にそのドメインの管理者を作成します。
postfixadmin13.gif
(※)管理者一覧からも作成することができます。
(※)一つの管理者で複数のドメインを管理することもできます。

 
a System House to build an Accounting system by the Computer Technology