仮想ドメイン (Postfix)/ローカルアドレスにマップする方法

提供: Sympa-JA
移動: 案内, 検索

ここでは、新たに追加する仮想ドメインをvirtual.dom.ainとします。

この方法の長所は次の通りです。

  • Sympaの再コンパイルは不要です。設定変更だけでできます。
  • 仮想ドメインと非仮想ドメインの両方を簡単に扱うことができるため、既存のドメインの設定は変えずに仮想ドメインを追加できます。

短所は次の通りです。

  • 存在しないリストアドレスにメッセージが送られると、エラーメッセージを返信してしまいます。これは後方散乱メール (backscatter) と呼ばれ、他サイトに多大な迷惑をかけることがあります。
  • メーリングリストのアドレスと同じだけ、サービスには使わないエイリアスができてしまいます。

目次

Sympaの設定

エイリアス生成テンプレートをカスタマイズして、エイリアスの代わりにトランスポートマップを生成させるようにします。既定のテンプレートは /home/sympa/default/list_aliases.tt2ですが、これを直接変更せず、コピーして使います。

  • 特定のドメインのみ仮想ドメインとする場合は、/home/sympa/etc/ドメイン/ に置きます。
  • Sympaの扱うドメインすべてを仮想ドメインにするつもりなら、/home/sympa/etc/ に置きます。

/home/sympa/etc/list_aliases.tt2または
/home/sympa/etc/ドメイン/list_aliases.tt2

#--- [% list.name %]: list alias created [% date %]
[% list.domain %]-[% list.name %]: "| /home/sympa/bin/queue [% list.name %]@[% list.domain %]"
[% list.domain %]-[% list.name %]-request: "| /home/sympa/bin/queue [% list.name %]-request@[% list.domain %]"
[% list.domain %]-[% list.name %]-editor: "| /home/sympa/bin/queue [% list.name %]-editor@[% list.domain %]"
#[% list.domain %]-[% list.name %]-subscribe: "| /home/sympa/bin/queue [% list.name %]-subscribe@[% list.domain %]"
[% list.domain %]-[% list.name %]-unsubscribe: "| /home/sympa/bin/queue [% list.name %]-unsubscribe@[% list.domain %]"
[% list.domain %]-[% list.name %][% return_path_suffix %]: "| /home/sympa/bin/bouncequeue [% list.name %]@[% list.domain %]"

仮想ドメインの追加

ここでは、既存のドメインに加えて、次のような仮想ドメインを追加することにします。

  • 電子メールインタフェースのドメイン: virtual.dom.ain
  • ウェブインタフェースのドメイン: www.virtual.dom.ain

電子メールインタフェースのドメインとウェブインタフェースのドメインは同一でもかまいませんし、異なっていてもかまいません。ここでは区別できるように変えています。

DNSへのホストの登録

インターネットから仮想ドメインにアクセスできるようにするために、ドメインのDNSに仮想ドメインの情報を登録しておかなければなりません。

  • virtual.dom.ainのMXレコードとして、Sympaが動作しているホストのホスト名を登録します。
  • www.virtual.dom.ainのCNAMEレコードやAレコードとして、Sympaが動作しているホストのホスト名やIPアドレスを登録します。

登録の詳しい方法については、DNSサーバのマニュアルを参照してください。たとえばBINDネームサーバソフトウェアでは、ゾーンファイルに次のような情報を追加する必要があります。

$ORIGIN virtual.dom.ain
@       IN      MX 10 my.host.fqdn.
www     IN      CNAME my.host.fqdn.

Sympaの設定

Sympaでは、仮想ドメインごとに設定を変更できます。

ドメインの設定ファイル

etcディレクトリの中に、ドメイン名のサブディレクトリを作成してそこに設定ファイルを置きます。

$ cd /home/sympa
# mkdir etc/virtual.dom.ain
# chown sympa:sympa etc/virtual.dom.ain

仮想ドメインの主設定ファイルを作成します。ファイル名はetc/ドメイン名/robot.confです。sympa.confおよびwwsympa.confでのデフォルト設定を、ドメインごとに上書きすることができます (robot.confに書かなかった設定はデフォルトのままです)。詳細→robot.conf

/home/sympa/etc/virtual.dom.ain/robot.conf

http_host www.virtual.dom.ain
cookie_domain www.virtual.dom.ain
wwsympa_url http://www.virtual.dom.ain/sympa
title virtual.dom.ain Mailing list service

その他の設定ファイルも、仮想ドメインのディレクトリの下に作成することで Sympa のデフォルト設定を上書きできます。詳細→Category:設定ファイル

リストデータ用ディレクトリの作成

list_dataディレクトリの中に、ドメイン名のサブディレクトリを作成します。この下にリストデータが格納されます。

$ cd /home/sympa
# mkmdir list_data/virtual.dom.ain
# chown sympa:sympa list_data/virtual.dom.ain
注 
Sympaの5.4.x以前からアップデートしている場合、リストデータディレクトリの名前はlist_dataではなくexplであるかもしれません。

Postfixの設定

仮想ドメインのアドレスをローカルドメインのエイリアスにマップします。

注 
ここでは正規表現マップregexp_table(5) を使っています。Perl互換正規表現マップ (PCRE) pcre_table(5) でもやりかたは同じです。

main.cf

virtual_alias_domains = ...,
  virtual.dom.ain
virtual_alias_maps = ...,
  regexp:/etc/postfix/virtual.regexp
recipient_delimiter = +

virtual.regexp

/^(.*)@virtual\.dom\.ain$/  virtual.dom.ain-$1

サービスの再起動

すべての設定が終わったら、Postfix、Sympa、Apacheを再起動します。

動作確認

ウェブインタフェースに、追加した仮想ホストのURL http://www.virtual.dom.ain/sympa でアクセスします。リストのないウェブサイトが表示されるはずです。

新しくリストを作成してみます。エイリアスファイルに作成されたリストのエイリアスが追加されているはずです。例:

#--- testlist: list alias created 15 Apr 2010
virtual.dom.ain-testlist: "| /home/sympa/bin/queue testlist@virtual.dom.ain"
virtual.dom.ain-testlist-request: "| /home/sympa/bin/queue testlist-request@virtual.dom.ain"
virtual.dom.ain-testlist-editor: "| /home/sympa/bin/queue testlist-editor@virtual.dom.ain"
#virtual.dom.ain-testlist-subscribe: "| /home/sympa/bin/queue testlist-subscribe@virtual.dom.ain"
virtual.dom.ain-testlist-unsubscribe: "| /home/sympa/bin/queue testlist-unsubscribe@virtual.dom.ain"
virtual.dom.ain-testlist-owner: "| /home/sympa/bin/bouncequeue testlist@virtual.dom.ain"

非仮想ドメインを仮想ドメインに移行する

これは簡単です。既存の非仮想ドメインも、#仮想ドメインの追加でやったのと同じ結果になるようにすればいいのです。

  1. Sympaのetcディレクトリの下にドメイン名のディレクトリを作り、最低限の内容のrobot.confを設置します。
  2. list_dataディレクトリの下にドメイン名のディレクトリを作り、既存のリストデータをすべてこの下に移します。
個人用ツール
名前空間

変種
操作
案内
ツール