メールサーバー · 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-AUTH、TLS、およびクォータに対応しています(クォータはデフォルトではPostfixに組み込まれていませんので、適切にPostfixをパッチする方法を示します)。パスワードはデータベースに暗号化された形式で保存されます(私が見つけたほとんどの文書はプレーンテキストのパスワードを扱っており、これはセキュリティリスクです)。さらに、このチュートリアルでは、スパムとウイルスのスキャンを行うためにAmavisd、SpamAssassin、および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-build2 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-login3 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.rpm4 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パスワードでログインできます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。