postfixadminでバーチャルドメイン管理
基本的には何もないところからのPostfixAdminだけを導入するという目的で行っているため簡単ですが各ソフトウェアについて解説していますがセキュリティの設定などを行うとかなりの量になりますのでここでは必要最小限になっています
従って、実際の運用においてはApache、PHP、MySQL、Postfix、Courier-imapそれぞれの設定は十分行う必要があります。
必要最低限なソフトウェアと導入したときの各ソフトウェアのバージョン構成です。
■インストール時の環境
従って、実際の運用においては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
・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"で削除した後で行ってください。
インストールが終わったら、MySQLが起動できるように"/etc/rc.conf"に「mysql_enable="YES"」を追記します。以前は、起動するときに"/usr/local/etc/rc.d"内にあるシェルスクリプトを使うだけで出来ていたのですが、最近は『rc.conf』内で制御する方法になっているのでこれが無いと起動できません。
これ以外にもいくつかパラメータがあるのですがとりあえずデフォルトで大丈夫なのでこれだけ。
既にクライアントだけインストールされている場合はサーバをインストールするときにエラーになるかもしれませんので、そのときはクライアントを"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
これ以外にもいくつかパラメータがあるのですがとりあえずデフォルトで大丈夫なのでこれだけ。
■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よりも先にインストールしておいた方が書き換える箇所が少なく済みますので先にインストールしておくと良いと思います。
Apacheもインストール後に"/etc/rc.conf"に「apache2_enable="YES"」を追記します。
(色分け:入力値、コマンドライン、コメント)
Portsからインストールします。 # cd /usr/ports/www/apache2 # make clean ; make makeが正常に終わればインストールします。 # make install
■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/
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」という名前のデータベースを作成しますのでもし同じ名前のデータベースを既に他用途目的で作成している場合はエディタで変更する必要があります。
もし変更したときはこれ以降の内容も読み替えてください。
以上でインストールは全て終わりで、次はインストールしたソフトの設定を行なっていきます。
ここで一つINSTALL.TXTにも書かれていることなのですが気をつける点があり、PostfixAdminはアクセス制限に.htpasswdを利用しているのですがデフォルトでは誰でもアクセスが可能ですのでアップロードする場合は特定のアクセス領域へアップロードを行うか.htpasswdを設定しておかないといけません。
と言ってもPostfixAdminは管理者用のソフトなので外部からアクセスできる領域にはアップロードしないかもしれませんがもし外部からアクセスできる領域へのアップロードを考えている場合は注意してください。
あとはDATABASE_MYSQL.TXTをphpMyAdminでMySQLへ導入するかコマンドラインから適用するだけですが「postfix」という名前のデータベースを作成しますのでもし同じ名前のデータベースを既に他用途目的で作成している場合はエディタで変更する必要があります。
もし変更したときはこれ以降の内容も読み替えてください。
(色分け:入力値、コマンドライン、コメント)
[DATABASE_MYSQL.TXTより] # mysql -u root [-p] < DATABASE_MYSQL.TXT
設定についても必要な部分のみの記述になっていますのである程度の環境を構築している人は今の設定ファイルと照らし合わしながら追記・書換を行ってください。
設定は木村さんのページを参考にしつつ行なっています。
編集が終わったら次は、"virtual_gid_maps"と"virtual_uid_maps"で指定しているIDをもつユーザーとグループが必要ですのでこれを作っておきます。ユーザーの登録はadduserを使って行なうと思いますので、"Uid"のところを"10000"にして、ホームディレクトリを"virtual_mailbox_base"で記述したパスにしておけば良いと思います。あとは必要に応じて設定してください。
下は少し見づらいかもしれませんが、5.4 と 4.11 の adduser を使った例です。
これでユーザーとグループ、それからメールボックスのベースとなるディレクトリの3つが出来上がりました。あとは、データベースで管理するのでそれに必要な設定ファイルを作ります。
ここに書いてあるパスワードはあくまでテスト用ですので必要に応じて変更してください。 このユーザーは後で説明しますがMySQLへPostfixAdminのデータベースを取り込んだときに作成されます。ですので、もしここで変更している場合は取り込んだ後にデータベースもここと同じように変更しておくことを忘れないようにしてください。
あと、当然のことながらこのファイルにはデータベースのパスワードが書かれていますのでパーミッションは適切に設定する必要があります。
■参考になるか分からないけれど私が設定したパーミッション
所有者:root
グループ:postfix
パーミッション:440
設定は木村さんのページを参考にしつつ行なっています。
■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
下は少し見づらいかもしれませんが、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]:
"/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
あと、当然のことながらこのファイルにはデータベースのパスワードが書かれていますのでパーミッションは適切に設定する必要があります。
■参考になるか分からないけれど私が設定したパーミッション
所有者: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ファイルを解析できるように拡張子を設定し起きます。
とりあえず追加・編集したのはこんな感じです。
"DocumentRoot"と"DirectoryIndex"は既にある箇所を書き換えるとして、あとはファイルの最後にでも書き足しておきましょう。
最後の2行はPHPをインストールすれば追加されていると思うのですが、私の場合はなぜかPHPをインストールしてもこの2行は追加されなかったので書き加えました。この部分だけ確認してから追加してください。
とりあえず追加・編集したのはこんな感じです。
"/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へ取り込んでおきます。
このデータベースを取り込むと"postfix"と"postfixadmin"の2つのユーザーが新しく登録されます。
この登録されたユーザーのパスワードはユーザー名と同じなってますので実際の運用では変更しておく方が良いと思います。とりあえず今回はテストと言うことなのでそのまま使います。
もし、パスワードを変更した場合は前のPostfixの設定のところで作ったデータベースの設定ファイルも書き換えないといけないので忘れずに書き換えてください。
後は、PostfixAdminのデータベースをMySQLへ取り込んでおきます。
(色分け:入力値、コマンドライン、コメント)
# mysql -u root < /usr/local/www/postfixadmin/DATABASE_MYSQL .TXT(実際は1行)
この登録されたユーザーのパスワードはユーザー名と同じなってますので実際の運用では変更しておく方が良いと思います。とりあえず今回はテストと言うことなのでそのまま使います。
もし、パスワードを変更した場合は前のPostfixの設定のところで作ったデータベースの設定ファイルも書き換えないといけないので忘れずに書き換えてください。
■PostfixAdminの設定
設定ファイルは"/usr/local/www/postfixadmin/config.inc.php"にありますのでこれを編集していきます。
とりあえず主な変更内容はこんな感じです。
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/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"
(色分け:書換、追記、コメント)
$PALANG["charset"] = "Shift_JIS"; ←これを追加(EUCの場合はEUC_JP) $PALANG["YES"] = "使用中"; $PALANG["NO"] = "無効"; $PALANG["edit"] = "編集"; $PALANG["del"] = "削除"; $PALANG["confirm"] = "本当に削除してしまってもいいですか?";// // 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 //
■Courier-imapの設定
ユーザーのデータは全てMySQLで行なっているのでCourier-imapの設定もそれにあうように編集します。編集するファイルは"/usr/local/etc/authlib/"に ある"authmysqlrc"と"authdaemonrc"の2つです。
まず、"authmysqlrc"はこんな感じです。
あと、"authdaemonrc"は"authodulelist"に"authmysql"を追加しておきます。もしかすると環境によっては既に記述されているかもしれません。
もし書かれていなかった場合は追記しておきます。
編集した内容はこんな感じです。
まず、"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"
(色分け:書換、
追記、
もともとの"authmodulelist"には"authpam"と"authmysql"以外にも設定されていると思いますがインストールしていないので削除しました。起動時にログにエラーとして記録されるのでなんだかすっきりしないと言う理由からです。ただこのメッセージはデバッグを有効にしているときだけですので消さなくても別に問題ないと思います。コメント)
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:#
■/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コマンドを使って立ち上がっていないものだけ立ち上げてください。
一応、ApacheとPostfixは設定ファイルにミスが無いか簡単なチェックができますのでそれを行なってから起動しています。MySQLの場合はエラーログが残ると思いますのでそれを参照してください(デフォルの保存先は "/var/db/mysql/サーバのホスト名.err"にあります)。
あと、Courier-imapはIMAPとPOP3とそれぞれ起動しています。
全て起動すれば、次はブラウザを起動してPostfixAdminの操作を行ないます。
まずは、PostfixAdminがあるURLを入力すると下のような初期画面が表示されますので、このページの「setup」を押して次へ進みます。
移動先はAdminディレクトリ内のファイルになるのですがここのディレクトリには『.htaccess』を使ってアクセス制限がかかっていますのでIDとパスワードを入力する必要があります。IDとパスワード の初期設定は両方とも「admin」となります。これも後で変えておく方がいいと思います。
これで全てが終わりです。あとは実際にいろいろと使ってみてください。もしアカウント作成を行なってもディレクトリが作成されない場合はパーミッションが関係していると思いますので変更してみてください。
(色分け:入力値、コマンドライン、コメント)
### 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
あと、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」となります。これも後で変えておく方がいいと思います。
これで全てが終わりです。あとは実際にいろいろと使ってみてください。もしアカウント作成を行なってもディレクトリが作成されない場合はパーミッションが関係していると思いますので変更してみてください。
作成日:2005.5.27
更新日:2008.5.18