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

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

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

バージョン 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 のインストールもカバーしています。

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

このチュートリアルは Mandriva 2008.0 (i386) に基づいています。基本的な Mandriva システムをすでにセットアップしている必要があります。このことは、このチュートリアルの第 1 章から第 7 章で説明されています: https://www.howtoforge.com/perfect_server_mandriva_2008.0。

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

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

前書き

システムには静的 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 postgresql-devel

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  
wget ftp://ftp.uni-bayreuth.de/pub/linux/Mandrakelinux/official/2008.0/SRPMS/main/release/postfix-2.4.5-2mdv2008.0.src.rpm  
rpm -ivh postfix-2.4.5-2mdv2008.0.src.rpm

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

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

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

cd /usr/src/rpm/SOURCES  
tar xvfz postfix-2.4.5.tar.gz  
wget http://vda.sourceforge.net/VDA/postfix-2.4.5-vda-ng.patch.gz  
gunzip postfix-2.4.5-vda-ng.patch.gz  
cd postfix-2.4.5  
patch -p1 < ../postfix-2.4.5-vda-ng.patch  
cd ..  
mv postfix-2.4.5.tar.gz postfix-2.4.5.tar.gz_orig  
tar -pczf postfix-2.4.5.tar.gz postfix-2.4.5/  
rm -fr postfix-2.4.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 4552  
-rw-r--r-- 1 root root  264550 2008-01-04 19:36 libpostfix1-2.4.5-2mdv2008.0.i586.rpm  
-rw-r--r-- 1 root root 1746569 2008-01-04 19:36 postfix-2.4.5-2mdv2008.0.i586.rpm  
-rw-r--r-- 1 root root 2540076 2008-01-04 19:36 postfix-debug-2.4.5-2mdv2008.0.i586.rpm  
-rw-r--r-- 1 root root   24970 2008-01-04 19:36 postfix-ldap-2.4.5-2mdv2008.0.i586.rpm  
-rw-r--r-- 1 root root   20132 2008-01-04 19:36 postfix-mysql-2.4.5-2mdv2008.0.i586.rpm  
-rw-r--r-- 1 root root   20154 2008-01-04 19:36 postfix-pcre-2.4.5-2mdv2008.0.i586.rpm  
-rw-r--r-- 1 root root   20196 2008-01-04 19:36 postfix-pgsql-2.4.5-2mdv2008.0.i586.rpm  
[root@server1 i586]#

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

urpme postfix

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

rpm -ivh postfix-2.4.5-2mdv2008.0.i586.rpm postfix-mysql-2.4.5-2mdv2008.0.i586.rpm

4 MySQL パスワードの設定と phpMyAdmin の設定

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

vi /etc/my.cnf

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

その後、MySQL を起動します:

/etc/init.d/mysqld start

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

netstat -tap | grep mysql

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

[root@server1 var]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                         LISTEN      5697/mysqlmanager  
tcp        0      0 *:mysql                     *:*                         LISTEN      5705/mysqld

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

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

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

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