PostfixとExchangeでインターネット接続

 

Exchangeを使ってインターネットメールの環境を構築する場合、Exchangeサーバ自体はインターネットに晒したくない。

Exchangeと既存のSMTP環境の連携手順はあまりネットでみつからなかったので、メモとして記載。

以下、手順を試した際の仮想要件。

・会社のドメイン名はmiracosta.co.jp
・インターネット側の既存SMTPとして、CentOSベースのPostfixを利用
・内部ネットワーク上にActive DirectoryとExchangeの環境構築済み
・メールアカウントとメールボックスの管理はActive DirectoryとExchangeで行なう
・Active Directoryのドメイン名はds.miracosta.co.jp
・Postfixはインターネットから受信したメールをExchangeにリレー
・Exchangeはインターネット向けメールをPostfixにリレー

■Postfix側の設定

main.cfの主な設定は以下。スパムの制御やSMTPアクセス制御は省いたので注意。


myhostname = gateway.ds.miracosta.co.jp
mydomain = miracosta.co.jp ←リレーしたいメールのドメインを指定
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost ←$mydomainは含めない
mynetworks_style = subnet
mynetworks = <ローカルサブネット>, 127.0.0.0/8
relay_domains = miracosta.co.jp ←リレーしたいメールのドメインを指定
relay_recipient_maps = hash:/etc/postfix/relay_recipients
transport_maps = hash:/etc/postfix/transport ←デフォルトのmain.cfにはないので追記

/etc/postfix/transportの末尾にリレーしたいメールのドメイン名とリレー先を指定。


# TRANSPORT(5) TRANSPORT(5)
#
# NAME
# transport - Postfix transport table format
#
# SYNOPSIS
# postmap /etc/postfix/transport
(中略)
#
#
miracosta.co.jp relay:[ex1.ds.miracosta.co.jp] ←追記。リレー先のホスト名はIPでもよい

postmapでハッシュDB作成。


[root@gateway postfix]# postmap /etc/postfix/transport

■Exchange側の設定(Exchange2003を使った)

先ずはExchange側のリレー設定。

1、システム マネージャを起動
2、[サーバー]→<サーバ名>→[プロトコル]→[SMTP]→[規定のSMTP仮想サーバー]のプロパティを表示
3、[アクセス]タブ、中継の制限を設定し、PostfixサーバのIPを許可
4、[配信]タブ、詳細設定でスマートホストに[]を指定。IPは[]で囲むこと

次にメールアドレスの設定。Active Directoryのドメイン名がds.miracosta.co.jpなので、デフォルトのメールアドレスは「ds」が付加されたものになる。受信者ポリシーでアドレスを一括修正。

1、システム マネージャを起動
2、[受信者]→[受信者ポリシー]
3、右側のペインで、[Default Policy] をダブルクリック
4、[電子メール アドレス (ポリシー)] タブで [新規] をクリック
5、[SMTP アドレス] を選択し、[OK] をクリック
6、[アドレス] ボックスに、ドメイン名 (@miracosta.co.jp) を入力。[このアドレスへのメール配信すべてに、この Exchange 組織を使用する] チェック ボックスがオンになっていることを確認
7、[OK] をクリック
8、新しい SMTP ドメイン名のチェック ボックスをオンにし、[OK] をクリック
9、このドメインのユーザーの電子メール アドレス設定について確認するメッセージが表示されたら [はい] をクリック

設定できたら、Outlookで動作確認。