メールサーバー · 1 min read · Oct 29, 2025

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

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

バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください

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

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

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

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

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

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

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

予備ノート

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

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

まず、パッケージデータベースを更新します:

urpmi.update -a

1つのコマンドでパッケージをインストールできます:

urpmi MySQL MySQL-client lib64mysql-devel phpmyadmin db4-devel html2text lib64sasl-devel openssl-devel openldap-devel pcre-devel postgresql8.4-devel rpm-build

2 Courierとsaslauthdのインストール

Courierとsaslauthdをインストールするには、単に次のコマンドを実行します:

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

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

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

cd /usr/src  
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2010.0/SRPMS/main/release/postfix-2.6.5-2mdv2010.0.src.rpm  
rpm -ivh postfix-2.6.5-2mdv2010.0.src.rpm

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

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

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

cd /root/rpmbuild/SOURCES  
tar xvfz postfix-2.6.5.tar.gz  
gunzip postfix-2.6.5-vda-ng.patch.gz  
cd postfix-2.6.5  
patch -p1 < ../postfix-2.6.5-vda-ng.patch  
cd ..  
mv postfix-2.6.5.tar.gz postfix-2.6.5.tar.gz_orig  
tar -pczf postfix-2.6.5.tar.gz postfix-2.6.5/  
rm -fr postfix-2.6.5/  
gzip postfix-2.6.5-vda-ng.patch

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

cd /root/rpmbuild/SPECS/  
rpmbuild -ba postfix.spec

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

cd /root/rpmbuild/RPMS/x86_64

コマンド

ls -l

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

[root@server1 x86_64]# ls -l  
total 3388  
-rw-r--r-- 1 root root  230449 2010-03-08 17:29 lib64postfix1-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root 1351340 2010-03-08 17:29 postfix-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root 1763590 2010-03-08 17:29 postfix-debug-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   30266 2010-03-08 17:29 postfix-ldap-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25460 2010-03-08 17:29 postfix-mysql-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25617 2010-03-08 17:29 postfix-pcre-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25476 2010-03-08 17:29 postfix-pgsql-2.6.5-2mdv2010.0.x86_64.rpm  
[root@server1 x86_64]#

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

urpme postfix

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

rpm -ivh postfix-2.6.5-2mdv2010.0.x86_64.rpm postfix-mysql-2.6.5-2mdv2010.0.x86_64.rpm

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

デフォルトでは、Mandriva 2010.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 x86_64]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                         LISTEN      14395/mysqlmanager  
tcp        0      0 *:mysql                     *:*                         LISTEN      14403/mysqld  
[root@server1 x86_64]#

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

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

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

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