10.6. POP before SMTP の設定

Turbolinux 10 Server の Postfix は、デフォルトで外部からの第三者中継を拒否する設定となっています。したがって、外部から Turbolinux 10 Server の Postfix を利用してメールを送信することはできません。しかし、自宅から会社の SMTP サーバーを利用してメールを送信したいなど、ある特定の条件のもとで第三者によるメール中継を許可したい場合も考えられます。このような問題を回避するために、広く利用されている手法が POP before SMTP です。POP before SMTP は、POP によ るユーザ認証を SMTP で利用することによって中継を許可するホストを限定するメカニズムを提供します。POP でログインに成功したホストの IP アドレスを一定の時間(Turbolinux 10 Server のデフォルトは 30 分)だけデータベースに保存し、その IP アドレスから送信されたメールの中継を許可することができます。POP before SMTP の実装には、いくつかの方法がありますが、Turbolinux 10 Server では DRAC(Dynamic Relay Authorization Control)を採用しています。

Dynamic Relay Authorization Control

http://mail.cc.umanitoba.ca/drac/

Turbolinux 10 Server の DRAC が使用する設定ファイルは、以下 3 つのファイルです。

/etc/dracd/dracd.allow

DRAC のデータベース(/etc/dracd/dracd.db)から情報の検索やアップデートを許可するホストを指定します。書式は以下の通りです。

netmask1 IP address
...

デフォルトの内容は以下の通りです。ローカルホストからのアクセスのみ許可されています。

# dracd.allow: clients trusted by rpc.dracd
#
# The format of this file is one of more lines of
#
# netmask netaddr
# Both netmask and netaddr must be dotted quads.
#
#255.255.255.255 192.168.16.8
255.255.255.255 127.0.0.1
####
/etc/dracd/dracd.conf

POP3/IMAP4 サーバーが使用する設定ファイルです。ここで指定したホストにあるデータベース(/etc/dracd/dracd.db)をアップデートします。書式は以下の通りです。

DRAC Server Name
...

デフォルトの内容は以下の通りです。POP3/IMAP4 サーバーは、ローカルホストに存在するデータベース情報のアップデートだけを試みます。

localhost
/etc/sysconfig/dracd

DRAC のデーモンを起動するには、このファイルの編集が必要です。デフォルトでは、以下のように ENABLE_DRAC の値が no に設定されていますので、yes に変更します。また、必要に応じて、リレーを許可する IP アドレスを保持しておく時間を EXPIRE_TIME で変更することも可能です。デフォルトの保持時間は 30 分です。

# Because DRAC requires manual configuration, it is disabled by default upon
# installation.  Once it is configured (see TURBOLINUX.README for details),
# it can be enabled here.  Set to "yes" to enable.

ENABLE_DRAC="no" <- no を yes に変更する

# The number of minutes drac should wait before expiring an authenticated
# host's entry.
EXPIRE_TIME="30"

したがって、SMTP サーバーと POP3/IMAP4 サーバーが同じホスト上で動作しているのであれば、/etc/dracd/dracd.allow と /etc/dracd/dracd.conf を編集する必要はありません。/etc/sysconfig/dracd の ENABLE_DRAC の値を yes に変更するだけです。異なるホストで動作している場合は、環境にあわせた設定を行う必要があります。

次に、Postfix の設定を行います。DRAC を機能させるには Postfix 側の設定も必要です。/etc/postfix/main.cf に以下の 1 行を追記します。

smtpd_recipient_restrictions = permit_mynetworks, check_client_access btree:/etc/dracd/dracd, check_relay_domains

最後に DRAC を起動し、Postfix を再起動します。DRAC は RPC(Remote Procedure Call)を使用しますので portmap サービスも起動する必要があります。

# /etc/init.d/portmap start
# /etc/init.d/dracd start
# /etc/init.d/postfix restart

Turbolinux 10 Server の起動時に DRAC を有効にするには、以下のように chkconfig コマンドを実行しておきます。

# chkconfig portmap on
# chkconfig dracd on