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