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

Postfix、Courier、MySQL、SquirrelMailを使用した仮想ユーザーとドメイン (Mandriva 2008.1)

Postfix、Courier、MySQL、SquirrelMailを使用した仮想ユーザーとドメイン (Mandriva 2008.1)

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

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

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

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

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

予備ノート

システムには静的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 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/2008.1/SRPMS/main/release/postfix-2.5.1-2mdv2008.1.src.rpm  
rpm -ivh postfix-2.5.1-2mdv2008.1.src.rpm

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

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

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

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

次に、クォータと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 4712  
-rw-r--r-- 1 root root  275303 2008-04-11 16:22 libpostfix1-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root 1822571 2008-04-11 16:22 postfix-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root 2608569 2008-04-11 16:22 postfix-debug-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   27341 2008-04-11 16:22 postfix-ldap-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   22208 2008-04-11 16:22 postfix-mysql-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   22150 2008-04-11 16:22 postfix-pcre-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   22266 2008-04-11 16:22 postfix-pgsql-2.5.1-2mdv2008.1.i586.rpm  
[root@server1 i586]#

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

urpme postfix

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

rpm -ivh postfix-2.5.1-2mdv2008.1.i586.rpm postfix-mysql-2.5.1-2mdv2008.1.i586.rpm

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

デフォルトでは、Mandriva 2008.1の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 i586]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                         LISTEN      13537/mysqlmanager  
tcp        0      0 *:mysql                     *:*                         LISTEN      13545/mysqld  
[root@server1 i586]#

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

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

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

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