メールサーバー · 1 min read · Sep 27, 2025

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

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

バージョン 1.0
著者: Falko Timme

このチュートリアルは、Falko Timmeによる著作権(c) 2009です。これは、http://workaround.orgで見つけることができるChristoph Haasのチュートリアルから派生したものです。このチュートリアルは、Creative Commonsライセンス2.5またはそれ以降のバージョンの下で自由に使用できます。

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

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

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

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

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

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

前提条件

システムには静的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.3-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/2009.1/SRPMS/main/release/postfix-2.5.6-4mdv2009.1.src.rpm  
rpm -ivh postfix-2.5.6-4mdv2009.1.src.rpm

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

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

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

cd /root/rpmbuild/SOURCES  
tar xvfz postfix-2.5.6.tar.gz  
wget http://vda.sourceforge.net/VDA/postfix-2.5.6-vda-ng.patch.gz  
gunzip postfix-2.5.6-vda-ng.patch.gz  
cd postfix-2.5.6  
patch -p1 < ../postfix-2.5.6-vda-ng.patch  
cd ..  
mv postfix-2.5.6.tar.gz postfix-2.5.6.tar.gz_orig  
tar -pczf postfix-2.5.6.tar.gz postfix-2.5.6/  
rm -fr postfix-2.5.6/

次に、クォータと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 3304  
-rw-r--r-- 1 root root  225752 2009-10-07 15:49 lib64postfix1-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root 1273469 2009-10-07 15:49 postfix-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root 1746832 2009-10-07 15:49 postfix-debug-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   29372 2009-10-07 15:49 postfix-ldap-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24616 2009-10-07 15:49 postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24846 2009-10-07 15:49 postfix-pcre-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24691 2009-10-07 15:49 postfix-pgsql-2.5.6-4mdv2009.1.x86_64.rpm  
[root@server1 x86_64]#

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

urpme postfix

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

rpm -ivh postfix-2.5.6-4mdv2009.1.x86_64.rpm postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm

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

デフォルトでは、Mandriva 2009.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 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

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

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