メールサーバー · 1 min read · Jan 07, 2026

Postfix、Courier、MySQL、および SquirrelMail を使用した仮想ユーザーとドメイン (Mandriva 2009.0 i386)

Postfix、Courier、MySQL、および SquirrelMail を使用した仮想ユーザーとドメイン (Mandriva 2009.0 i386)

バージョン 1.0
著者: Falko Timme

このチュートリアルは、Falko Timme による著作権 (c) 2008 です。これは、http://workaround.org にある Christoph Haas のチュートリアルから派生したものです。このチュートリアルは、クリエイティブ・コモンズライセンス 2.5 またはそれ以降のバージョンの下で自由に使用できます。

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

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

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

このチュートリアルは Mandriva 2009.0 (i386) に基づいています。すでにこのチュートリアルの第 1 章から第 7 章で説明されている基本的な Mandriva システムをセットアップしている必要があります: https://www.howtoforge.com/perfect-server-mandriva-2009.0-i386。第 6.2 章の自動更新スクリプトの作成は省略してください。なぜなら、Postfix の更新があると、私たちが第 3 章で構築するカスタムビルドの Postfix が置き換えられてしまうからです!

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

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

前提条件

システムには静的 IP アドレスが必要です。このチュートリアルでは、192.168.0.100 を私の IP アドレス、server1.example.com をホスト名として使用します。

1 Apache、MySQL、phpMyAdmin をインストール

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

urpmi MySQL MySQL-client libmysql15-devel phpmyadmin db4-devel html2text libsasl-devel openssl-devel openldap-devel pcre-devel postgresql8.3-devel rpm-build

2 Courier と saslauthd をインストール

Courier と saslauthd をインストールするには、次のように実行します:

urpmi courier-authlib courier-authlib-mysql courier-imap courier-pop cyrus-sasl libsasl2 libsasl2-devel libsasl2-plug-plain libsasl2-plug-anonymous libsasl2-plug-crammd5 libsasl2-plug-digestmd5 libsasl2-plug-gssapi libsasl2-plug-login

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

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

cd /usr/src  
mkdir rpm  
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2009.0/SRPMS/main/release/postfix-2.5.5-2mdv2009.0.src.rpm  
rpm -ivh postfix-2.5.5-2mdv2009.0.src.rpm

最後のコマンドは無視できるいくつかの警告を表示します:

warning: user mandrake does not exist - using root  
warning: group mandrake does not exist - using root

次に、Postfix ソースを postfix-2.5.5-vda-ng パッチ (http://vda.sourceforge.net/ から) でパッチします:

cd /usr/src/rpm/SOURCES  
tar xvfz postfix-2.5.5.tar.gz  
wget http://vda.sourceforge.net/VDA/postfix-2.5.5-vda-ng.patch.gz  
gunzip postfix-2.5.5-vda-ng.patch.gz  
cd postfix-2.5.5  
patch -p1 < ../postfix-2.5.5-vda-ng.patch  
cd ..  
mv postfix-2.5.5.tar.gz postfix-2.5.5.tar.gz_orig  
tar -pczf postfix-2.5.5.tar.gz postfix-2.5.5/  
rm -fr postfix-2.5.5/

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

cd /usr/src/rpm/SPECS/  
rpmbuild -ba postfix.spec

私たちの Postfix rpm パッケージは /usr/src/rpm/RPMS/i586 に作成されるので、そこに移動します:

cd /usr/src/rpm/RPMS/i586

コマンド

ls -l

は、利用可能なパッケージを表示します:

[root@server1 i586]# ls -l  
total 3256  
-rw-r--r-- 1 root root  220988 2008-10-14 17:51 libpostfix1-2.5.5-2mdv2009.0.i586.rpm  
-rw-r--r-- 1 root root 1257200 2008-10-14 17:51 postfix-2.5.5-2mdv2009.0.i586.rpm  
-rw-r--r-- 1 root root 1736835 2008-10-14 17:51 postfix-debug-2.5.5-2mdv2009.0.i586.rpm  
-rw-r--r-- 1 root root   27748 2008-10-14 17:51 postfix-ldap-2.5.5-2mdv2009.0.i586.rpm  
-rw-r--r-- 1 root root   23183 2008-10-14 17:51 postfix-mysql-2.5.5-2mdv2009.0.i586.rpm  
-rw-r--r-- 1 root root   23324 2008-10-14 17:51 postfix-pcre-2.5.5-2mdv2009.0.i586.rpm  
-rw-r--r-- 1 root root   23299 2008-10-14 17:51 postfix-pgsql-2.5.5-2mdv2009.0.i586.rpm  
[root@server1 i586]#

まず、現在の Postfix パッケージをアンインストールします…

urpme postfix

…次に、postfix と postfix-mysql パッケージを選択し、次のようにインストールします:

rpm -ivh postfix-2.5.5-2mdv2009.0.i586.rpm postfix-mysql-2.5.5-2mdv2009.0.i586.rpm

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

デフォルトでは、Mandriva 2009.0 の MySQL パッケージではネットワーキングが有効になっていませんが、ISPConfig にはネットワーキングが必要です。これを変更するには、/etc/my.cnf の skip-networking 行をコメントアウトします:

vi /etc/my.cnf

| [...] # TCP/IP ポートで全くリッスンしません。これはセキュリティの向上になる可能性があります。 # mysqld に接続する必要があるすべてのプロセスが同じホストで実行される場合。 # mysqld とのすべてのやり取りは、Unix ソケットまたは名前付きパイプを介して行う必要があります。 # Windows で名前付きパイプを有効にせずにこのオプションを使用すると # (「enable-named-pipe」オプションを介して) は、mysqld を無用にします! # #skip-networking [...] |

その後、Apache と MySQL のシステム起動リンクを作成します…

chkconfig mysqld on  
chkconfig httpd on

…そして、両方のサービスを起動します:

/etc/init.d/mysqld start  
/etc/init.d/httpd start

ネットワーキングが有効になっていることを確認します。次のコマンドを実行します:

netstat -tap | grep mysql

出力は次のようになります:

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                         LISTEN      4363/mysqlmanager  
tcp        0      0 *:mysql                     *:*                         LISTEN      4372/mysqld  
[root@server1 ~]#

次に、次のコマンドを実行します:

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

これにより、ユーザー root のパスワードが設定されます (さもなければ、誰でもあなたの MySQL データベースにアクセスできます!)。

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

Share: X/Twitter LinkedIn

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

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