postfixadminでバーチャルドメイン管理

PostfixAdminはPostfixが導入されている環境においてWeb上でメールアカウントの管理を行うためのソフトウェアです。単一ドメインであればとくに問題ないのですが複数のドメインを利用するようなバーチャルドメイン環境ではWeb上でアカウント管理が出来るようになるとかなり管理が楽になります。

作成日:2005.5.27
更新日:2008.5.18

前提条件
基本的には何もないところからのPostfixAdminだけを導入するという目的で行っているため簡単ですが各ソフトウェアについて解説していますがセキュリティの設定などを行うとかなりの量になりますのでここでは必要最小限になっています
従って、実際の運用においてはApache、PHP、MySQL、Postfix、Courier-imapそれぞれの設定は十分行う必要があります。

必要最低限なソフトウェアと導入したときの各ソフトウェアのバージョン構成です。
■インストール時の環境
  ・FreeBSD4.11
  ・Apache2.0.54
  ・PHP4.3.11+PEAR

  ・MySQL4.0.24
  ・Postfix2.2.2
  ・PostfixAdmin2.1.0(PHPスクリプト)
  ・courier-imap4.0.2

ページのトップへ

インストール
■MySQLのインストール
順序はあまり関係ないのですが他のソフトを先にインストールしてしまうとクライアントだけが先にインストールされてしまいますのでこれから導入しておきます。
既にクライアントだけインストールされている場合はサーバをインストールするときにエラーになるかもしれませんので、そのときはクライアントを"pkg_delete"、もしくは"make deinstall"で削除した後で行ってください。
(色分け:入力値コマンドラインコメント)
# cd /usr/ports/databases/mysql40-server
無くても特に問題ないのですが、make時に文字コードを設定しておきます。 ここでは"ujis(EUC-JP)"をデフォルトとしていますが、シフトJISは"sjis"を 指定します。
# make clean ; make WITH_CHARSET=ujis WITH_XCHARSET=all

makeが正常に終わればインストール。
# make install
インストールが終わったら、MySQLが起動できるように"/etc/rc.conf"に「mysql_enable="YES"」を追記します。以前は、起動するときに"/usr/local/etc/rc.d"内にあるシェルスクリプトを使うだけで出来ていたのですが、最近は『rc.conf』内で制御する方法になっているのでこれが無いと起動できません。
これ以外にもいくつかパラメータがあるのですがとりあえずデフォルトで大丈夫なのでこれだけ。
ページのトップへ
■Postfixのインストール
(色分け:入力値コマンドラインコメント)
# cd /usr/ports/mail/postfix
# make clean ; make ; make install

※インストール時にオプション選択画面が表示されると思いますので
「MYSQL」と「SASL2」を選択しておきます。


インストールが終わると、いくつか質問されますので答えていきます。
===>   Installing for postfix-2.2.2,1
===>    postfix-2.2.2,1 depends on shared library: 
pcre.0 - found
===>    postfix-2.2.2,1 depends on shared library: 
mysqlclient.12 - found
Added group "postfix".
Added group "maildrop".
Added user "postfix".

~[ 質問1 ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ユーザーとグループの追加するかどうかの質問なのでそのまま[Enter]します。
You need user "postfix" added to group "mail".
Would you like me to add it [y]? [Enter]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~[ 質問2 ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mailer.confをPosftix用に書き換えるかどうかなのでここは[y]とします。
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

質問2で[y]を選択すると最後に↓Postfixの起動方法が表示されます。If you have postfix configured in your /etc/mail/mailer.conf
(answered yes to the previous question) and would like to enable
postfix to start at boot time,please set these variables in your
/etc/rc.conf file:

This will disable Sendmail completely.

Alternatively to the above settings, you can enable postfix to
start with the other local services, for example, after your
database server starts if you need it to be running for postfix.
To do this, set in your rc.conf file:
/usr/local/etc/rc.d/から起動するのでrc.confで以下の部分をNONEに 設定しておきます
sendmail_enable="NO"

Then make the following symbolic link:

cd /usr/local/etc/rc.d
ln -s /usr/local/sbin/postfix postfix.sh

Also, you will want to disable some Sendmail-specific daily
maintenance routines in your /etc/periodic.conf file:
/etc/periodic.confにこの4行を追加しておきます。 たぶんファイルが無い場合が多いと思いますので新しく作ってその中に書きます。
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
 ↑ここまでを記述。


If you are using SASL, you need to make sure that postfix has
access to read the sasldb file.  This is accomplished by adding
postfix to group mail and making the /usr/local/etc/sasldb*
file(s) readable by group mail (this should be the default for
new installs).

If you are upgrading from postfix version prior to 2.0, please
see the README files for recommended changes to your
configuration.
■Apache2のインストール
ApacheはPHPよりも先にインストールしておいた方が書き換える箇所が少なく済みますので先にインストールしておくと良いと思います。
(色分け:入力値コマンドラインコメント)
Portsからインストールします。
# cd /usr/ports/www/apache2
# make clean ; make

makeが正常に終わればインストールします。
# make install
Apacheもインストール後に"/etc/rc.conf"に「apache2_enable="YES"」を追記します。
ページのトップへ
■PHP4のインストール
PHPは、以前は「configure oprtions」が開いてPHP4と一緒にモジュールをインストールできてきたのですが、今は単体インストールになっているのでPHP4を入れた後でモジュールのインストールも行っています。後、PEARの部分も書いているので少し見づらいかもしれません。
(色分け:入力値コマンドラインコメント)
 ### PHP本体のインストール ################################
Portsからインストールします。
# cd /usr/ports/lang/php4
# make clean ; make
オプションはApache2を入れているので「Apache2」をチェックします。 「IPV6」はもともと選択されているのでそのまま。
makeが正常に終わればインストールします。
# make install
### 拡張モジュールのインストール ########################### Portsからインストールします。
# cd /usr/ports/lang/php4-extensions
# make clean ; make
選択するオプションはデフォルトで"MySQL"が選択されているのでそれ以外には 特にそのままで構いません。
makeが正常に終わればインストールします。
# make install
各モジュールのインストール終了時には下のようなメッセージが出てきてきますが これはファイルに追加しましたということなので書き換える必要はありません。 拡張したモジュールは"/usr/local/etc/php/extensions.ini"に記載されます。
****************************************************************
The following line has been added to your 
/usr/local/etc/php/extensions.ini
configuration file to automatically load the installed extension :

entension= zlib.so

****************************************************************

 ### PEARのインストール ##################################
# cd /usr/ports/devel/php4-pear
# make clean ; make

makeが正常に終わればインストール。
# make install****************************************************************

To use PEAR you have to add the correct include path into your 
/usr/local/etc/php.ini configuration file, like:
php.iniに下の1行を追加します。 すでに別のパスを書いている場合は:(コロン)で追記すれば良いと思います。
include_path = ".:/usr/local/share/pear"

****************************************************************
ページのトップへ
■Courier-imapのインストール
(色分け:入力値コマンドラインコメント)
Portsからインストールします。
# cd /usr/ports/mail/courier-imap
# make clean ; make

オプションは「AUTH_MYSQL」を選択しておいてあとはデフォルト。

makeが正常に終わればインストールします。
# make install


In case you use authpam, you should put the following lines in your 
/etc/pam.conf
pam認証を使う場合はこの3行を"/etc/pam.conf"に追加する。
imap   auth      required   
pam_unix.so    try_first_pass
imap   account required   pam_unix.so    
try_first_pass
imap   session  required   pam_permit.so

You will have to run /usr/local/share/courier-imap/mkimapcert to 
create a self-signed certificate if you want to use imapd-ssl.
And you will have to copy and edit the *.dist files to * in 
/usr/local/etc/sourier-imap.

===>   Compressing manual pages for courier-imap-4.0.2_1,1
===>   Registering installation for courier-imap-4.0.2_1,1
===> SECURITY REPORT:
This port has installed the 
following files which may act as network servers
and may therefore pose a remote 
security risk to the system.
/usr/local/bin/couriertls
/usr/local/libexec/courier-imap/couriertcpd

This port has installed the 
following startup scripts which may cause these
network services to be started 
at boot time.
/usr/local/etc/rc.d/courier-imapd-ssl.sh
/usr/local/etc/rc.d/courier-imapd.sh
/usr/local/etc/rc.d/courier-pop3d-ssl.sh
/usr/local/etc/rc.d/courier-pop3d.sh

If there are vulnerabilities in 
these programs there may be a security risk
to the system. FreeBSD akes no 
guarantee about the security of ports 
included in the Ports 
Collection. Please type 'make deinstall' to deinstall
the port if this is a concern.

For more information, and 
contact details about the security status of this
software, see the following 
webpage:
http://www.courier-mta.org/imap/
インストール後は"/etc/rc.conf"に以下の3行を追記します。
IMAPとPOP3については、SSL起動と通常起動の2つ起動方法があるので利用する方をYESにします。

courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"
 (SSLを使う場合は、courier_imap_imapd_ssl_enable="YES")
courier_imap_pop3d_enable="YES"
 (SSLを使う場合は、courier_imap_pop3d_ssl_enable="YES")
ページのトップへ
■PostfixAdminのインストール
PostfixAdminはPHPスクリプトなので本家からアーカイブをダウンロードしてそれを解凍してブラウザでアクセスできる領域アップロードします。
ここで一つINSTALL.TXTにも書かれていることなのですが気をつける点があり、PostfixAdminはアクセス制限に.htpasswdを利用しているのですがデフォルトでは誰でもアクセスが可能ですのでアップロードする場合は特定のアクセス領域へアップロードを行うか.htpasswdを設定しておかないといけません。
と言ってもPostfixAdminは管理者用のソフトなので外部からアクセスできる領域にはアップロードしないかもしれませんがもし外部からアクセスできる領域へのアップロードを考えている場合は注意してください。

あとはDATABASE_MYSQL.TXTをphpMyAdminでMySQLへ導入するかコマンドラインから適用するだけですが「postfix」という名前のデータベースを作成しますのでもし同じ名前のデータベースを既に他用途目的で作成している場合はエディタで変更する必要があります。
もし変更したときはこれ以降の内容も読み替えてください。
(色分け:入力値コマンドラインコメント)
[DATABASE_MYSQL.TXTより]
# mysql -u root [-p] < DATABASE_MYSQL.TXT
以上でインストールは全て終わりで、次はインストールしたソフトの設定を行なっていきます。
ページのトップへ

設定
設定についても必要な部分のみの記述になっていますのである程度の環境を構築している人は今の設定ファイルと照らし合わしながら追記・書換を行ってください。
設定は木村さんのページを参考にしつつ行なっています。
■Postfixの設定
"/usr/local/etc/postfix/main.cf"
(色分け:書換追記コメント)
61:# INTERNET HOST AND DOMAIN NAMES
62:# 
63:# The myhostname parameter specifies the internet hostname of this
64:# mail system. The default is to use the fully-qualified domain name
65:# from gethostname(). $myhostname is used as a default value for many
66:# other configuration parameters.
67:#
68:myhostname = test.lipwood.com
69:#myhostname = virtual.domain.tld
70:
71:# The mydomain parameter specifies the local internet domain name.
72:# The default is to use $myhostname minus the first component.
73:# $mydomain is used as a default value for many other configuration

...(中略)...

150:#
151:# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
152:#
153:mydestination = $myhostname, localhost
154:#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
155:#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
156:# mail.$mydomain, www.$mydomain, ftp.$mydomain
157:
158:# REJECTING MAIL FOR UNKNOWN LOCAL USERS
159:#

...(中略)...

403:# mailbox file relative to a user's home directory. The default
404:# mailbox file is /var/spool/mail/user or /var/mail/user. Specify
405:# "Maildir/" for qmail-style delivery (the / is required).
406:#
407:#home_mailbox = Mailbox
408:home_mailbox = Maildir/
409:
410:# The mail_spool_directory parameter specifies the directory where
411:# UNIX-style mailboxes are kept. The default setting depends on the
412:# system type.

...(中略)...

### MySQLベースのバーチャルドメイン ######################### local_transport = virtual virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_valias.cf virtual_gid_maps = static:10000 virtual_mailbox_base = /usr/local/virtual virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_vdomains.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_vmailbox.cf virtual_minimum_uid = 10000 virtual_transport = virtual virtual_uid_maps = static:10000
編集が終わったら次は、"virtual_gid_maps"と"virtual_uid_maps"で指定しているIDをもつユーザーとグループが必要ですのでこれを作っておきます。ユーザーの登録はadduserを使って行なうと思いますので、"Uid"のところを"10000"にして、ホームディレクトリを"virtual_mailbox_base"で記述したパスにしておけば良いと思います。あとは必要に応じて設定してください。
下は少し見づらいかもしれませんが、5.4 と 4.11 の adduser を使った例です。
(色分け:入力値コマンドラインコメント)
# adduser

 ### FreeBSD 4.11のadduser内容 ###
Enter username : mailuser
Enter full name: Virtual Mail User
Enter shell csh date no sh tcsh :
Enter home directory (full path) [home/mailuser] : /usr/local/virtual
Uid [1000] : 10000
Enter login class : default []:
Login group mailuser [mailuser] :
Login group is ''mailuser''. Invite mailuser into other groups:
Enter password? : *******

 ### FreeBSD 5.4のadduser内容 ###
Username: mailuser
Full name: Virtual Mail User
Uid (Leave empty for default): 10000
Login group [vmail]:
Login group is  mailuser. Invite mailuser into other groups:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: tcsh
Home directory [/home/mailuser]: /usr/local/virtual
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: *******
Enterpassword again: *******
Lock out the account after creation? [no]:
これでユーザーとグループ、それからメールボックスのベースとなるディレクトリの3つが出来上がりました。あとは、データベースで管理するのでそれに必要な設定ファイルを作ります。
"/usr/local/etc/postfix/mysql_valias.cf"
(色分け:書換追記コメント)
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
"/usr/local/etc/postfix/mysql_vdomains.cf"
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
"/usr/local/etc/postfix/mysql_vmailbox.cf"
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
ここに書いてあるパスワードはあくまでテスト用ですので必要に応じて変更してください。 このユーザーは後で説明しますがMySQLへPostfixAdminのデータベースを取り込んだときに作成されます。ですので、もしここで変更している場合は取り込んだ後にデータベースもここと同じように変更しておくことを忘れないようにしてください。
あと、当然のことながらこのファイルにはデータベースのパスワードが書かれていますのでパーミッションは適切に設定する必要があります。

■参考になるか分からないけれど私が設定したパーミッション
 所有者:root
 グループ:postfix
 パーミッション:440
ページのトップへ
■PHP4の設定
PHPについては特に設定を変更するところは無いですが、インストール直後であればphp.iniがありませんのでとりあえず"php.ini-dist"をコピーしておきます。あとから変更する場合はこのファイルを書き換えれば済みます。
(色分け:入力値コマンドラインコメント)
# cd /usr/local/etc/php.ini-dist

# cp php.ini-dist php.ini
ページのトップへ
■Apache2の設定
PostfixAdminのファイルを置いた場所を見れるように書き加えるのとphpファイルを解析できるように拡張子を設定し起きます。
とりあえず追加・編集したのはこんな感じです。
"/usr/local/etc/apache2/httpd.conf"
(色分け:書換追記コメント)
【適当なところに】
<Directory "/usr/local/www/postfixadmin">
    Options Indexes
    AllowOverride AuthConfig
</Directory>

AddType application/x-httpd-php .php
AddType application/x-httpd-source .phps

"DocumentRoot"と"DirectoryIndex"は既にある箇所を書き換えるとして、あとはファイルの最後にでも書き足しておきましょう。
最後の2行はPHPをインストールすれば追加されていると思うのですが、私の場合はなぜかPHPをインストールしてもこの2行は追加されなかったので書き加えました。この部分だけ確認してから追加してください。
ページのトップへ
■MySQLの設定
MySQLの設定は特に変更する箇所とかは無くデフォルトのままでも問題ありませんのでそのままにしました。ちなみに、設定ファイルは初めは無いので"/usr/local/share/mysql"からコピーしてくるようになります。 "/usr/local/share/mysql"には"my-*.cnf"という名前で環境に応じて複数用意されていますので、利用環境に一番近い設定ファイルを"/etc/my.cnf"というファイル名でコピーします。
後は、PostfixAdminのデータベースをMySQLへ取り込んでおきます。
(色分け:入力値コマンドラインコメント)
# mysql -u root < /usr/local/www/postfixadmin/DATABASE_MYSQL
.TXT(実際は1行)
このデータベースを取り込むと"postfix"と"postfixadmin"の2つのユーザーが新しく登録されます。
この登録されたユーザーのパスワードはユーザー名と同じなってますので実際の運用では変更しておく方が良いと思います。とりあえず今回はテストと言うことなのでそのまま使います。
もし、パスワードを変更した場合は前のPostfixの設定のところで作ったデータベースの設定ファイルも書き換えないといけないので忘れずに書き換えてください。
ページのトップへ
■PostfixAdminの設定
設定ファイルは"/usr/local/www/postfixadmin/config.inc.php"にありますのでこれを編集していきます。
とりあえず主な変更内容はこんな感じです。
"/usr/local/www/postfixadmin/config.inc.php"
(色分け:書換追記コメント)
16:// Postfix Admin Path
17:// Set the location to your Postfix Admin installation here.
18:$CONF['postfix_admin_url'] = "http://test.lipwood.com/postfixadmin";
19:$CONF['postfix_admin_path'] = "/usr/local/www/postfixadmin";
20:
21:// Language config
22:// Language files are located in './languages'.
23:$CONF['default_language'] = "ja";
24:
25:// Database Config
26:// mysql = MySQL 3.23 and 4.0
27:// mysqli = MySQL 4.1
28:// pgsql = PostgreSQL
29:$CONF["database_type"] = "mysql";
30:$CONF["database_host"] = "localhost";
31:$CONF["database_user"] = "postfix";
32:$CONF["database_password"] = "postfix";
33:$CONF["database_name"] = "postfix";
34:$CONF["database_prefix"] = "";

18、19行目はPostfixAdminをインストールしているURLとローカルパスを指定します。URLの部分はテストと言うこともあり手間を省くためにローカルIPにしていますので、環境に応じて置き換えてください。

23行目はPostfixAdminで利用する言語の設定になります。上では日本語の'ja'を設定していますが、このPostfixAdminにはもともと日本語は収録されていませんので日本語化ファイルを別途用意しなけ得ればならないです。日本語化ファイルはyanbeさんのブログで公開されているのですが、それを編集したものが木村さんのPostfixAdminのページで公開されていますのでこちらをお借りしてきました。(ファイルはリンク先ページの中央あたりにあります)。

29行目からはデータベースへの接続設定になりますが、PostfixやMySQLの設定のところでパスワードを変更をしていればここも忘れずに変更しておきます。

あと、日本語化のところで"templates/header.tpl"ファイル中の"iso-8859-1"を削除することを書かれているのですが"ja.lang"ファイル中に"$PALANG['charset'] = 'Shift_JIS';"という行を追加することでも対処できるので書き加えました。別に削除しても構わなかったのですがバージョンアップしたときの手間を考えるとちょっと面倒なので少しでも楽をしたい私は"ja.lang"に加えました。
追記はこんな感じです。
"/usr/local/www/postfixadmin/languages/ja.lang"
(色分け:書換追記コメント)
//
// Language file Japanese
//
// 1st Release http://www.yanbe.net/blog/archives/000240.html
// October 17, 2004
//
// Postfix Admin 2.1.0 edition
// modified 2005.01.20 By F.K
//
$PALANG["charset"] = "Shift_JIS";  ←これを追加(EUCの場合はEUC_JP) $PALANG["YES"] = "使用中"; $PALANG["NO"] = "無効"; $PALANG["edit"] = "編集"; $PALANG["del"] = "削除"; $PALANG["confirm"] = "本当に削除してしまってもいいですか?";
ページのトップへ
■Courier-imapの設定
ユーザーのデータは全てMySQLで行なっているのでCourier-imapの設定もそれにあうように編集します。編集するファイルは"/usr/local/etc/authlib/"に ある"authmysqlrc"と"authdaemonrc"の2つです。
まず、"authmysqlrc"はこんな感じです。
"/usr/local/etc/authlib/authmysqlrc"
(色分け:書換追記コメント)
22:##NAME: LOCATION:0
23:#
24:# The server name, userid, and password used to log in.
25
26:MYSQL_SERVER localhost
27:MYSQL_USERNAME postfix
28:MYSQL_PASSWORD postfix
29
30:##NAME: MYSQL_SOCKET:0
31:#


...(中略)...


50:##NAME: MYSQL_DATABASE:0
51:#
52:# The name of the MySQL database we will open:
53:
54:MYSQL_DATABASE postfix
55:
56:##NAME: MYSQL_USER_TABLE:0
57:#
58:# The name of the table containing your user data. See README.authmysqlrc
59:# for the required fields in this table.
60:
61:MYSQL_USER_TABLE mailbox
62:
63:##NAME: MYSQL_CRYPT_PWFIELD:0
64:#
65:# Either MYSQL_CRYPT_PWFIELD or MYSQL_CLEAR_PWFIELD must be defined. 
66:# Both are OK too. crypted passwords go into MYSQL_CRYPT_PWFIELD, 
67:# cleartext passwords go into MYSQL_CLEAR_PWFIELD. Cleartext passwords 
68:# allow CRAM-MD5 authentication to be implemented.
69:
70:MYSQL_CRYPT_PWFIELD password
71:
72:##NAME: MYSQL_CLEAR_PWFIELD:0


...(中略)...


85:##NAME: MYSQL_UID_FIELD:0
86:#
87:# Other fields in the mysql table:
88:#
89:# MYSQL_UID_FIELD - contains the numerical userid of the account
90:#
91:MYSQL_UID_FIELD 10000
92:
93:##NAME: MYSQL_GID_FIELD:0
94:#
95:# Numerical groupid of the account
96:
97:MYSQL_GID_FIELD 10000
98:
99:##NAME: MYSQL_LOGIN_FIELD:0
100:#
101:# The login id, default is id. Basically the query is:
102:#
103:# SELECT MYSQL_UID_FIELD, MYSQL_GID_FIELD, ... WHERE id='loginid'
104:#
105:
106:MYSQL_LOGIN_FIELD username
107:
108:##NAME: MYSQL_HOME_FIELD:0
109:#
110:
111:MYSQL_HOME_FIELD '/usr/local/virtual'
112:

...(中略)...


119:##NAME: MYSQL_MAILDIR_FIELD:0
120:#
121:# This is an optional field, and can be used to specify an arbitrary
122:# location of the maildir for the account, which normally defaults to
123:# $HOME/Maildir (where $HOME is read from MYSQL_HOME_FIELD).
124:#
125:# You still need to provide a MYSQL_HOME_FIELD, even if you uncomment this
126:# out.
127:#
128:MYSQL_MAILDIR_FIELD maildir
129:


あと、"authdaemonrc"は"authodulelist"に"authmysql"を追加しておきます。もしかすると環境によっては既に記述されているかもしれません。
もし書かれていなかった場合は追記しておきます。
編集した内容はこんな感じです。
"/usr/local/etc/authlib/authdaemonrc"
(色分け:書換
追記、
コメント)
23:# default list is installed. You may selectively disable modules simply
24:# by removing them from the following list. The available modules you
25:# can use are: authuserdb authvchkpw authpam authldap authmysql authpgsql
26:
27:authmodulelist="authpam authmysql"
28
29:##NAME: authmodulelistorig:2
30:#
もともとの"authmodulelist"には"authpam"と"authmysql"以外にも設定されていると思いますがインストールしていないので削除しました。起動時にログにエラーとして記録されるのでなんだかすっきりしないと言う理由からです。ただこのメッセージはデバッグを有効にしているときだけですので消さなくても別に問題ないと思います。
■/usr/local/lib/sasl2/smtpd.confの設定
送信時の認証を「authdaemond」を使って行うようにファイルを編集します。
"/usr/local/lib/sasl2/smtpd.conf"
(色分け:書換追記コメント)
pwcheck_method: authdaemond
authdaemond_path: /var/run/authdaemond/socket
mech_list: PLAIN LOGIN
log_level: 3
ページのトップへ

動作確認
ようやく設定も終りましたので残るはいよいよ動作確認だけです。もし一度、再起動もしくは終了していた場合はpsコマンドを使って立ち上がっていないものだけ立ち上げてください。
(色分け:入力値コマンドラインコメント)
 ### MySQLの起動 ###################################
# /usr/local/etc/rc.d/mysql-server.sh start

 ### Apacheの起動 ###################################
# apachectl configtest
Syntax OK
# apachectl start

 ### Postfixの起動 ###################################
# postfix check
# postfix start

 ### Courier-imapの起動 ##############################
# /usr/local/etc/rc.d/courier-authdaemond.sh start
# /usr/local/etc/rc.d/courier-imap-imapd.sh start
# /usr/local/etc/rc.d/courier-imap-pop3d.sh start

# SSLを利用する場合はこれも実行
# /usr/local/etc/rc.d/courier-imap-imapd-ssl.sh start
# /usr/local/etc/rc.d/courier-imap-pop3d-ssl.sh start
一応、ApacheとPostfixは設定ファイルにミスが無いか簡単なチェックができますのでそれを行なってから起動しています。MySQLの場合はエラーログが残ると思いますのでそれを参照してください(デフォルの保存先は "/var/db/mysql/サーバのホスト名.err"にあります)。
あと、Courier-imapはIMAPとPOP3とそれぞれ起動しています。

全て起動すれば、次はブラウザを起動してPostfixAdminの操作を行ないます。
まずは、PostfixAdminがあるURLを入力すると下のような初期画面が表示されますので、このページの「setup」を押して次へ進みます。
【URL:test.lipwood.com/postfixadmin/】
「setup」を押して次へ良くと、下のようにPostfixAdminの動作に必要な環境チェックを行なってくれます。
【URL:test.lipwood.com/postfixadmin/setup.php】
全てOKで特に問題が無ければ「admin section」というリンクから管理画面へ移動します。このとき、太文字で「setup.php」を削除してくださいということが書かれていますので後で削除しておきま しょう。ここで、もし何らかのエラーが出た場合は「Error」という始まりで書かれていますのでそこに書かれているメッセージを元に改善してください。
移動先はAdminディレクトリ内のファイルになるのですがここのディレクトリには『.htaccess』を使ってアクセス制限がかかっていますのでIDとパスワードを入力する必要があります。IDとパスワード の初期設定は両方とも「admin」となります。これも後で変えておく方がいいと思います。

これで全てが終わりです。あとは実際にいろいろと使ってみてください。もしアカウント作成を行なってもディレクトリが作成されない場合はパーミッションが関係していると思いますので変更してみてください。
ページのトップへ

補足
今回はテスト環境と言うことでユーザ名やパスワードはデフォルトのままですので実運用においては変更しておく必要があります。
ページのトップへ