メールサーバー · 1 min read · Nov 09, 2025

Postfix、Courier、MySQLを使用した仮想ユーザーとドメイン (Fedora Core 5)

Postfix、Courier、MySQLを使用した仮想ユーザーとドメイン (Fedora Core 5)

バージョン 1.0
著者: Falko Timme

このチュートリアルは、Falko Timmeによる著作権 (c) 2006です。これは、http://workaround.orgで見つけることができるChristoph Haasのチュートリアルに基づいています。このチュートリアルは、クリエイティブ・コモンズライセンス2.5またはそれ以降のバージョンの下で自由に使用できます。

この文書は、Postfixに基づいたメールサーバーをインストールする方法を説明します。これは、仮想ユーザーとドメイン、すなわちMySQLデータベースにあるユーザーとドメインに基づいています。また、Courier(Courier-POP3、Courier-IMAP)のインストールと設定を示し、CourierがPostfixが使用するのと同じMySQLデータベースに対して認証できるようにします。

結果として得られるPostfixサーバーは、SMTP-AUTHTLS、およびクォータをサポートします(クォータはデフォルトではPostfixに組み込まれていませんので、Postfixを適切にパッチする方法を示します)。パスワードはデータベースに暗号化された形式で保存されます(私が見つけたほとんどの文書は、セキュリティリスクであるプレーンテキストパスワードを扱っていました)。さらに、このチュートリアルでは、スパムとウイルスのスキャンを行うために、AmavisdSpamAssassin、およびClamAVのインストールもカバーします。

このような「仮想」セットアップ(MySQLデータベース内の仮想ユーザーとドメイン)の利点は、「実際の」システムユーザーに基づくセットアップよりもはるかにパフォーマンスが高いことです。この仮想セットアップを使用すると、メールサーバーは数千のドメインとユーザーを処理できます。さらに、新しいユーザー/ドメインを追加したり、既存のものを編集したりする際に、MySQLデータベースのみを扱えばよいため、管理が容易です。dbファイルを作成するためのpostmapコマンドや、Postfixの再読み込みは不要です。MySQLデータベースの管理には、phpMyAdminのようなWebベースのツールを使用できます。このhowtoでもインストールされます。3つ目の利点は、ユーザーがユーザー名としてメールアドレスを持つため(ユーザー名 + メールアドレスではなく)、理解しやすく、記憶しやすいことです。

このチュートリアルは、Fedora Core 5(i386)に基づいています。ここで説明されているように、基本的なFedoraシステムをすでにセットアップしている必要があります(x86_64システム用ですが、i386システムの手順は同じです):https://www.howtoforge.com/perfect_setup_fedora_core_5 および https://www.howtoforge.com/perfect_setup_fedora_core_5_p2。また、ファイアウォールがオフになっていること(少なくとも今のところ)と、SELinuxが無効になっていること(これは重要です!)を確認してください。これは https://www.howtoforge.com/perfect_setup_fedora_core_5_p3 に示されています。

このhowtoは実用的なガイドとして意図されています。理論的な背景はカバーしていません。それらはWeb上の他の多くの文書で扱われています。

この文書には、いかなる種類の保証もありません!このシステムを設定する唯一の方法ではないことを言いたいです。この目標を達成する方法はいくつもありますが、これが私の取る方法です。これがあなたにとって機能することを保証するものではありません!

1 /etc/hostsを編集

この例のホスト名はserver1.example.comで、IPアドレスは192.168.0.100ですので、/etc/hostsを次のように変更します:

vi /etc/hosts

| # 以下の行を削除しないでください。さもないと、ネットワーク機能を必要とするさまざまなプログラムが失敗します。 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 |

2 Fedoraパッケージ用の追加リポジトリを設定

インストールする必要があるパッケージのいくつか(courier-imapなど)は、公式のFedoraリポジトリには含まれていないため、yumに別のリポジトリを追加する必要があります:

rpm -ivh http://www.enlartenment.com/packages/fedora/5/i386/enlartenment-release-1.1-2.fc5.mf.noarch.rpm

その後、/etc/yum.repos.d/enlartenment.repoでenabledを1に設定する必要があります:

vi /etc/yum.repos.d/enlartenment.repo

| [enlartenment] name=Enlartenment Repository for $releasever - $basearch baseurl=http://www.enlartenment.com/packages/fedora/$releasever/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-enlartenment enabled=1 gpgcheck=1 [enlartenment-sources] name=Enlartenment Repository for $releasever - Sources baseurl=http://www.enlartenment.com/packages/fedora/$releasever/SRPMS/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-enlartenment enabled=1 gpgcheck=1 |

次に、そのリポジトリのGPGキーをインポートします:

rpm --import http://www.enlartenment.com/RPM-GPG-KEY.mf

3 Postfix、Courier、Saslauthd、MySQL、phpMyAdminをインストール

これらはすべて1つのコマンドでインストールできます:

yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel maildrop courier-imap courier-authlib-mysql phpmyadmin pcre-devel openldap-devel

次のようなメッセージが表示された場合:

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2  
Public key for ntp-4.2.0.a.20050816-11.FC5.i386.rpm is not installed  
Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora  
Importing GPG key 0x4F2A6FD2 "Fedora Project <[email protected]>"  
Is this ok [y/N]:

yと答えてください。

4 Postfixにクォータパッチを適用

Postfixのソースrpmを取得し、クォータパッチでパッチを当て、新しいPostfix rpmパッケージをビルドしてインストールする必要があります。

cd /usr/src  
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/fedora/linux/core/5/source/SRPMS/postfix-2.2.8-1.2.src.rpm  
rpm -ivh postfix-2.2.8-1.2.src.rpm  
cd /usr/src/redhat/SOURCES  
wget http://web.onda.com.br/nadal/postfix/VDA/postfix-2.2.8-vda.patch.gz  
gunzip postfix-2.2.8-vda.patch.gz  
cd /usr/src/redhat/SPECS/

次に、postfix.specファイルを編集する必要があります:

vi postfix.spec

%define MYSQL 0を%define MYSQL 1に変更し、# PatchesスタンザにPatch0: postfix-2.2.8-vda.patchを追加し、最後に%setup -qスタンザに%patch0 -p1 -b .vdaを追加します:

| [...] %define MYSQL 1 [...] # Patches Patch0: postfix-2.2.8-vda.patch Patch1: postfix-2.1.1-config.patch Patch3: postfix-alternatives.patch Patch4: postfix-hostname-fqdn.patch Patch6: postfix-2.1.1-obsolete.patch Patch7: postfix-2.1.5-aliases.patch Patch8: postfix-large-fs.patch Patch9: postfix-2.2.5-cyrus.patch [...] %setup -q # Apply obligatory patches %patch0 -p1 -b .vda %patch1 -p1 -b .config %patch3 -p1 -b .alternatives %patch4 -p1 -b .postfix-hostname-fqdn %patch6 -p1 -b .obsolete %patch7 -p1 -b .aliases %patch8 -p1 -b .large-fs %patch9 -p1 -b .cyrus [...] |

次に、クォータとMySQLサポートを持つ新しいPostfix rpmパッケージをビルドします:

rpmbuild -ba postfix.spec

次のような警告がたくさん表示されますが、無視して構いません:

msg.h:12:1: warning: "/*" within comment  
msg.h:14:1: warning: "/*" within comment  
msg.h:33:1: warning: "/*" within comment  
msg.h:34:1: warning: "/*" within comment  
msg.h:35:1: warning: "/*" within comment  
msg.h:36:1: warning: "/*" within comment

私たちのPostfix rpmパッケージは/usr/src/redhat/RPMS/i386に作成されるので、そこに移動してインストールします:

cd /usr/src/redhat/RPMS/i386  
rpm -ivh postfix-2.2.8-1.2.i386.rpm

(Postfix rpmパッケージの作成に問題がある場合は、ここから私のものをダウンロードできます。)

5 MySQLパスワードを設定し、phpMyAdminを構成

MySQLを起動します:

chkconfig --levels 235 mysqld on  
/etc/init.d/mysqld start

次に、MySQLのrootアカウントのパスワードを設定します:

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

次に、phpMyAdminを構成します。/usr/share/phpmyadmin/config.inc.phpを作成します:

vi /usr/share/phpmyadmin/config.inc.php

| |

次に、phpMyAdminがlocalhostからだけでなく接続を許可するようにApacheの設定を変更します:

vi /etc/httpd/conf.d/phpmyadmin.conf

| Alias /phpmyadmin/ "/usr/share/phpmyadmin/" # # Order allow,deny # Allow from 127.0.0.1 # |

次に、Apacheのシステム起動リンクを作成し、起動します:

chkconfig --levels 235 httpd on  
/etc/init.d/httpd start

これで、ブラウザをhttp://server1.example.com/phpmyadmin/に向け、ユーザー名rootと新しいroot MySQLパスワードでログインできます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。