メールサーバー · 2 min read · Jan 26, 2026
Postfix、Courier、MySQLを使用した仮想ユーザーとドメイン (Fedora 8)
Postfix、Courier、MySQLを使用した仮想ユーザーとドメイン (Fedora 8)
バージョン 1.0
著者: Falko Timme
このチュートリアルは、Falko Timmeによる著作権(c) 2007です。これは、http://workaround.orgで見つけることができるChristoph Haasのチュートリアルから派生したものです。このチュートリアルは、Creative Commonsライセンス2.5またはそれ以降のバージョンの下で自由に使用できます。
この文書では、Postfixに基づくメールサーバーをインストールする方法を説明します。これは、仮想ユーザーとドメイン、すなわちMySQLデータベースにあるユーザーとドメインに基づいています。また、Courier(Courier-POP3、Courier-IMAP)のインストールと構成を示し、CourierがPostfixが使用するのと同じMySQLデータベースに対して認証できるようにします。
結果として得られるPostfixサーバーは、SMTP-AUTH、TLS、およびクォータに対応しています(クォータはデフォルトではPostfixに組み込まれていませんので、適切にPostfixをパッチする方法を示します)。パスワードはデータベースに暗号化された形式で保存されます(私が見つけたほとんどの文書はプレーンテキストのパスワードを扱っており、これはセキュリティリスクです)。さらに、このチュートリアルでは、スパムやウイルスのスキャンを行うために、Amavisd、SpamAssassin、およびClamAVのインストールもカバーしています。
このような「仮想」セットアップ(MySQLデータベース内の仮想ユーザーとドメイン)の利点は、「実際の」システムユーザーに基づくセットアップよりもはるかにパフォーマンスが高いことです。この仮想セットアップを使用すると、メールサーバーは数千のドメインとユーザーを処理できます。さらに、新しいユーザー/ドメインを追加したり、既存のものを編集したりする際に、MySQLデータベースだけを扱えばよいので、管理が容易です。dbファイルを作成するためのpostmapコマンドや、Postfixの再読み込みは不要です。MySQLデータベースの管理には、phpMyAdminのようなWebベースのツールを使用できます。このhowtoでもインストールされます。3つ目の利点は、ユーザーがユーザー名としてメールアドレスを持つこと(ユーザー名+メールアドレスではなく)で、理解しやすく、記憶しやすいことです。
このチュートリアルはFedora 8(i386)に基づいています。基本的なFedoraシステムをすでにセットアップしている必要があります。詳細は、https://www.howtoforge.com/fedora-8-server-lamp-email-dns-ftp-ispconfigおよびhttps://www.howtoforge.com/fedora-8-server-lamp-email-dns-ftp-ispconfig-p2を参照してください。また、ファイアウォールがオフになっていること(少なくとも今のところ)と、SELinuxが無効になっていること(これは重要です!)を確認してください。これは、https://www.howtoforge.com/fedora-8-server-lamp-email-dns-ftp-ispconfig-p3の第6章と第7章に示されています。
この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 ::1 localhost6.localdomain6 localhost6 |
2 一部のソフトウェアをインストール
まず、ソフトウェアパッケージのGPGキーをインポートします:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*次に、システム上の既存のパッケージを更新します:
yum update次に、後で必要なソフトウェアをインストールします:
yum groupinstall 'Development Tools'yum groupinstall 'Development Libraries'3 Apache、MySQL、phpMyAdminをインストール
これらはすべて1つのコマンドでインストールできます(Courier-IMAPを構築するために必要なパッケージを含む):
yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel phpMyAdmin pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel4 Courier-IMAP、Courier-Authlib、およびMaildropをインストール
残念ながら、Courier-IMAP、Courier-Authlib、およびMaildropのrpmパッケージは存在しないため、このチュートリアルで説明されているようにインストールする必要があります:Fedora、RedHat、CentOSにおけるcourier-imap、courier-authlib、およびmaildropのインストール方法
5 Postfixにクォータパッチを適用
Postfixのソースrpmを取得し、クォータパッチでパッチを当て、新しいPostfix rpmパッケージをビルドしてインストールする必要があります。
cd /usr/src
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/fedora/linux/releases/8/Fedora/source/SRPMS/postfix-2.4.5-2.fc8.src.rpm
rpm -ivh postfix-2.4.5-2.fc8.src.rpm最後のコマンドは無視できるいくつかの警告を表示します:
warning: user kojibuilder does not exist - using root
warning: group kojibuilder does not exist - using rootcd /usr/src/redhat/SOURCES
wget http://vda.sourceforge.net/VDA/postfix-2.4.5-vda-ng.patch.gz
gunzip postfix-2.4.5-vda-ng.patch.gz
cd /usr/src/redhat/SPECS/次に、postfix.specファイルを編集する必要があります:
vi postfix.spec%define MYSQL 0を%define MYSQL 1に変更し、# PatchesスタンザにPatch0: postfix-2.4.5-vda-ng.patchを追加し、最後に%setup -qスタンザに%patch0 -p1 -b .vda-ngを追加します:
| [...] %define MYSQL 1 [...] # Patches Patch0: postfix-2.4.5-vda-ng.patch Patch1: postfix-2.1.1-config.patch Patch3: postfix-alternatives.patch Patch6: postfix-2.1.1-obsolete.patch Patch7: postfix-2.1.5-aliases.patch Patch8: postfix-large-fs.patch Patch9: postfix-2.4.0-cyrus.patch Patch10: postfix-2.4.5-open_define.patch [...] %prep %setup -q # 必須のパッチを適用 %patch0 -p1 -b .vda-ng %patch1 -p1 -b .config %patch3 -p1 -b .alternatives %patch6 -p1 -b .obsolete %patch7 -p1 -b .aliases %patch8 -p1 -b .large-fs %patch9 -p1 -b .cyrus %patch10 -p1 -b .open_define [...] |
次に、クォータと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コマンド
ls -lは、利用可能なパッケージを表示します:
[root@server1 i386]# ls -l
total 11604
-rw-r--r-- 1 root root 3899179 2007-11-13 22:26 postfix-2.4.5-2.fc8.i386.rpm
-rw-r--r-- 1 root root 7907114 2007-11-13 22:26 postfix-debuginfo-2.4.5-2.fc8.i386.rpm
-rw-r--r-- 1 root root 50804 2007-11-13 22:26 postfix-pflogsumm-2.4.5-2.fc8.i386.rpm
[root@server1 i386]#Postfixパッケージを選択し、次のようにインストールします:
rpm -ivh postfix-2.4.5-2.fc8.i386.rpm(Postfix rpmパッケージの作成に問題がある場合は、ここから私のものをダウンロードできます。)
6 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を構成します。phpMyAdminがlocalhostからだけでなく接続を許可するようにApacheの設定を変更します(
vi /etc/httpd/conf.d/phpMyAdmin.conf| # phpMyAdmin - WebベースのMySQLブラウザ(phpで記述) # # デフォルトではlocalhostのみを許可 # # しかし、phpMyAdminをlocalhost以外の誰にでも許可することは # SSLで適切に保護されていない限り危険と見なされるべきです Alias /phpMyAdmin /usr/share/phpMyAdmin # |
次に、Apacheのシステム起動リンクを作成し、起動します:
chkconfig --levels 235 httpd on
/etc/init.d/httpd startこれで、ブラウザをhttp://server1.example.com/phpMyAdmin/またはhttp://192.168.0.100/phpMyAdmin/に向け、ユーザー名rootと新しいroot MySQLパスワードでログインできます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。