完全な仮想メールサーバー/管理支援システム

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Complete Virtual Mail Server/Admin Support Systems and the translation is 81% complete.
Other languages:

管理インターフェース

This document will not rely on any of the applications mentioned in this chapter. They can be installed and used, but a valid system should work without any of these in place. There is one exception however, www-apps/postfixadmin. The exception exists that postfixadmin will be used to create the initial tables. The reason is simple, postfixadmin could be used to administer the database and if it is not entirely happy about the table layout, things could go wrong. Thus letting postfixadmin create the tables, it is kept happy if ever it is decided to use it.

Apache、PHP、PostgreSQL

Apache、PHP、PostgreSQL は大きなパッケージです。Apache をセットアップするには Apache の記事を読んでください。PHP もそのインストールに特化したウィキページを持っています。これらは Web メールの利用と統計表示のために重要になるので、続ける前に、PHP と Apache が期待するすべての機能が動作することを確実にするべきです。

セットアップのための核となる部分のひとつが PostgreSQL です。続ける前に、PostgreSQL インフラストラクチャをセットアップするためにウィキ記事を確実に通読し従ってください。代わりに MySQL または LDAP もあります。

PostgreSQL と Apache(とさらに他の部分)を接続する方法は複数あります。例えば、ネットワーク経由や UNIX ソケット経由などです。UNIX ソケットは最も高速で多少安全であるものの、複数の(仮想)サーバ間で接続するときには TCP/IP 接続が望ましいでしょう。

UNIX ソケットを使う場合は、標準のファイルシステム権限が使われるため、apache と postfix が postgres グループに属している必要があるかもしれません。

root #gpasswd -a apache postgres

Postfixadmin

As mentioned in the introduction, postfixadmin will be used to create the tables. This to make sure that if postfixadmin would ever be used to administer the mail accounts etc, it will understand the table format.

まだであれば、www-apps/postfixadmin を emerge してください:

root #emerge --ask postfixadmin

postfixadmin は Web アプリケーションなので、postfixadmin をインストールするために webapp-config が利用されます。外部ドメインが望ましく必要である場合は、Apache が適切に、できれば https 経由のみで、セットアップされている必要があります。

root #webapp-config -h localhost -d postfixadmin -I postfixadmin 2.3.8

Postfixadmin はデータを保管するためのデータベースと、このデータベースにアクセスするためのユーザを必要とします。データベースにアクセスするための postfixadmin ユーザを作成し、あとでこのデータベースから読むための別のユーザを作成します。このようにして、管理と単純な読み込みを論理的に分離します。

root #createuser -U postgres --pwprompt postfixadmin
Enter password for new role: $password
Enter it again: $password

このユーザのためのデータベースも必要になります。postfixadmin によって所有されます:

root #createdb -U postgres --owner=postfixadmin postfix

次に、このデータベースを指すように postfixadmin コンフィグファイルを編集する必要があります。

メモ
Postfixadmin はコンフィグファイルにハッシュ化されたパスワードを要求します、これは http://localhost/postfixadmin/setup.php を訪れることで生成されます。しかし実際にパスワードを得るためには、コンフィグファイルを事前に適切に設定しておく必要があります。そのため、config.inc.php 内にパスワードを記入するのはそれを適切に編集した後でのみ行えます。
ファイル /var/www/localhost/htdocs/postfixadmin/config.inc.phpDiff of postfixadmin configuration
-$CONF['configured'] = false;
+$CONF['configured'] = true;
 
-$CONF['postfix_admin_url'] = '';
+$CONF['postfix_admin_url'] = 'http://localhost/postfixadmin';
-$CONF['database_type'] = 'mysql';
+$CONF['database_type'] = 'pgsql';
 $CONF['database_host'] = 'localhost';
-$CONF['database_user'] = 'postfix';
-$CONF['database_password'] = 'postfixadmin';
+$CONF['database_user'] = 'postfixadmin';
+$CONF['database_password'] = '$password';
 $CONF['database_name'] = 'postfix';
 $CONF['database_prefix'] = '';
 
-$CONF['admin_email'] = 'postmaster@change-this-to-your.domain.tld';
+$CONF['admin_email'] = 'postmaster@example.com';
 
 
-    'abuse' => 'abuse@change-this-to-your.domain.tld',
-    'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
-    'postmaster' => 'postmaster@change-this-to-your.domain.tld',
-    'webmaster' => 'webmaster@change-this-to-your.domain.tld'
+    'abuse' => 'abuse@example.com',
+    'hostmaster' => 'hostmaster@example.com',
+    'postmaster' => 'postmaster@example.com',
+    'webmaster' => 'webmaster@example.com'
 
-$CONF['domain_path'] = 'NO';
+$CONF['domain_path'] = 'YES';
 
-$CONF['domain_in_mailbox'] = 'YES';
+$CONF['domain_in_mailbox'] = 'NO';
 
-$CONF['transport'] = 'NO';
+$CONF['transport'] = 'YES';
 
-$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';
+$CONF['vacation_domain'] = 'autoreply.example.com';
 
-$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main";
+$CONF['user_footer_link'] = "http://example.com/";
 
-$CONF['footer_text'] = 'Return to change-this-to-your.domain.tld';
-$CONF['footer_link'] = 'http://change-this-to-your.domain.tld';
+$CONF['footer_text'] = 'Return to http://example.com/';
+$CONF['footer_link'] = 'http://example.com/';
 
-// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
+$CONF['mailbox_postcreation_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
 
-// $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
+$CONF['mailbox_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
 
-// $CONF['domain_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postdeletion.sh';
+$CONF['domain_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-domain-postdeletion.sh';
メモ
最後の三行は完全に省略可能ですが、メールボックスとドメインの追加と削除を可能にします。postfixadmin を使わない場合はこれらを省略できます。使う場合には、スクリプトは/usr/share/dc/postfixadmin-2.3.7/ADDITIONS からコピーできます。スクリプトを動作させるには sudo をインストールして設定する必要があります。すべてのスクリプトを実行可能にして(chmod +x)、スクリプトの先頭にある basedirtrashbase 変数をストレージ領域に変更するのを忘れないでください。
root #visudo
apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-domain-postdeletion.sh
apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postcreation.sh
apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postdeletion.sh
これで apache が(postfixadmin を経由して)上述のスクリプトを vmail ユーザとして実行できるようになります。

Having postfixadmin generate the required tables, go to http://localhost/postfixadmin/setup.php and follow the instructions. Also any configuration errors or missing packages will be noted here. At this point a password hash will also be generated and can be edited into the config file. After that, super-admin users can be added to the database from this page. To log into the administrative page, go to http://localhost/postfixadmin/.

警告
The mailsystem should end up being fully postfixadmin compatible. It should not matter if users/domains are added manually or via the postfixadmin GUI. Note however, that there are some user -> domain dependencies.
メモ
If postfixadmin is not desired on the system, it can be removed after the tables have been created. Another option is to have postfixadmin create the tables on some other test system, and export/import the tables.