« Mac OS X Server:Postfixとメールクライアントの接続問題 | トップページ | SEO:ブログ記事を検索結果から消さないために »

Mac OS X Server:PostfixでOP25B対応

【OP25Bとは】
Outbound Port 25 Blockingの略です。ISP(インターネットサービスプロバイダ)各社が,自ドメインの利用者がユーザ回線を使ってインターネットへスパムメールを送信するのを阻止するために導入しているもので,プロバイダのユーザ回線からインターネットへ出て行く外向きのTCP25番ポートへの接続を塞いでしまう,というものです。

【OP25Bの影響】
OP25BはSMTPに使う25番ポートを塞ぐので,POPIMAPには全く影響ありません。
OP25Bはユーザ回線に対して実施されるもので,固定IPの回線には影響ありません。
OP25Bは内から外へ出て行く25番ポートへの接続を阻止するので,外から内へ入ってくる接続には影響しません(外から内へ入ってくる25番ポートへの接続を阻止するのは「IP25B」)。
使用しているISPがOP25Bを導入したとき,ユーザへの影響には以下の3つのケースがあります。

  1. メールクライアントからプロバイダが提供する送信用SMTPサーバを使ってメール送信する場合,ISPのメールサーバはインターネットに出て行く手前にいるため接続はOP25Bに阻止されずにこれまでどおり25番ポートを使えることが多く(プロバイダによる),この場合は特に影響ありません。
  2. メールクライアントからインターネットの向こう側にいる送信用SMTPサーバを使ってメール送信しようとした場合(独自メールサーバのアカウントからメールを送る場合など),メールクライアントとSMTPサーバの接続がOP25Bで阻止されます。
  3. ユーザプログラム(ボット含む)や独自メールサーバがユーザ回線を使ってメールを転送する場合,OP25Bで阻止されます。独自メールサーバからメールを転送するには固定IPが必須になります。
上記のうち,OP25Bは3.でのメール送信阻止を狙ったものです。それに対して2.は関係ないのに巻き添えを食らっており,対策が必要です。

【メールクライアントのための対策:サブミッションポート】
メールクライアントのための独自メールサーバの対策として,メールクライアントが25番ポートで接続してくることができないので,メールクライアントに対して25番以外のポートから接続できるように設定する必要があります。
そのための代替ポートとして「RFC2476」にて「サブミッションポート(TCP587番ポート)」が定められています。
サブミッションポートはメールクライアントからSMTPサーバに接続するときに使い,SMTPサーバどうしのメール転送は従来どおり25番ポートを使います。また,サブミッションポートへの接続にはSASL認証(SMTP Auth)を課すことで,「単にポート番号が変わっただけ,587番ポートからスパム送り放題」とならないようにします。

※サブミッションポート以外の対応策として,SMTPサーバをSSL化し,SSL用のポートを使用する,という手もあります。

【Mac OS X Serverで稼動するPostfixでサブミッションポートを利用する手順】
1)SASL認証を有効にする
Mac OS X ServerにプリインストールされているPostfixでは,SASL認証のためのモジュールが最初から組み込まれています。SASL認証を有効にするには,まず「サーバ管理」ツールにて「コンピュータとサービス」で「メール」を選び,「設定」→「詳細」→「セキュリティ」でセキュリティパネルを表示します。ここで「認証」→「SMTP」列のいずれかのチェックボックスをONにして「保存」ボタンを押すとSASL認証がONになります。

※SASL認証のユーザ名とパスワードは,Mac OS X Serverではワークグループマネージャに登録したユーザ名とパスワードになります。すなわちメール受信用のユーザ名とパスワードと同一になります。

2)サブミッションポート(TCP587番ポート)を有効にする
「/etc/postfix/master.cf」ファイルを編集します。事前にバックアップを取った上で「sudo vi」などでファイルを開き、

#submission inet n - n - - smtpd
# -o smtpd_etrn_restrictions=reject
この2行について,最初の「#」(コメントアウト)を削除します。(注:「-o」の前のスペースを削除してはいけません。)
ここでmaster.cfを保存して終了し,コマンドラインで「sudo postfix check」と入力してエラーチェックを行います。問題なければ「サーバ管理」でメールサービスをリスタートするか,コマンドライン上で「sudo postfix reload」コマンドを実行すると,サブミッションポートが有効になります。このときサブミッションポートに適用されるパラメータ値は,main.cfで定義された25番ポートのパラメータ値と同じです。

3)サブミッションポートのパラメータ設定
サブミッションポートで適用されるパラメータ値は「/etc/postfix/main.cf」で定義した25番ポート用の値がデフォルトとして適用されます。
サブミッションポートで適用されるパラメータ値を25番ポートとは別の値にしたい場合は,master.cfのsubmissionセクションの末尾に「-o」+「パラメータ=値」で設定したいパラメータ値を追記することで,サブミッションポートのパラメータ値が上書きされます。このとき「-o」+「パラメータ=値」の記述で気をつけなければならないのは,
  • 「-o」の前後にスペースが必要。行頭のスペースは前の行からの継続を意味する。
  • スペースで区切って解釈されるため,「パラメータ=値」は途中でスペースを入れない。
の2点です。
設定例1:
submission inet n - n - - smtpd
 -o smtpd_etrn_restrictions=reject
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject
 -o smtpd_helo_restrictions=permit
 -o smtpd_sender_restrictions=reject_non_fqdn_sender,permit
 -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,permit_sasl_authenticated,reject
※追記:最後の行に「smtpd_recipient_restrictions」の行を追加しました。このタイミングで「permit_sasl_authenticated」の判定を行うためです。

「パラメータ=値」の途中でスペースを入れることができませんが,「check_sender_access tyep:table」などのように間にスペースを入れなければならないパラメータ値もあります。このような値を指定する場合は,main.cfでユーザ定義のパラメータ値を定義して,master.cfでこれを指定することができます。具体的には,main.cfにて「name = パラメータ値」とパラメータ値に名前を付け,master.cfでこの名前を「${name}」と呼び出すと,これがパラメータ値に展開されます。

設定例2:
main.cfの設定:ユーザ定義パラメータ「check_sender_mydomain」の定義
check_sender_mydomain = check_sender_access hash:/etc/postfix/permit_mydomain

master.cfの設定:ユーザ定義パラメータ「check_sender_mydomain」の利用
submission inet n - n - - smtpd
 …
 -o smtpd_sender_restrictions=reject_non_fqdn_sender,${check_sender_mydomain},reject
main.cf及びmaster.cfを編集保存したら,ターミナル上で「sudo postfix check」を実行してエラーがないか確認し,「sudo postfix reload」を実行して修正内容を実行環境に反映します。

以上でPostfixの設定は完了です。設定完了後LAN内からメールを送信してみてうまくいったら,外部と接続するルータなどでもサブミッションポートへの接続を許可する設定にして,今度は外部からメール送信できるか確認します。

※ところで「permit_mydomain」て何?という方はこちら


■関連情報
ISPによるOP25B 実施状況((財)日本データ通信協会・迷惑メール相談センター)
各ISPによるOP25Bの解説ページインデックスOP25B連絡会
Postfix 2.1日本語ドキュメント:[基本設定][設定パラメータ][master.cfファイルフォーマット]
Appleサポート:Mac OS X Server 10.4送信メールを設定する
Apple Server 製品ドキュメント:メールサービスの管理[PDF]

■関連書籍をAmazonで検索:[Postfix][Mac OS X Server]
無停電電源装置:APC Smart-UPS750 計画停電対策に

にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ ネットワーク・SEへ 人気ブログランキングへ ←この記事が役に立ったという方はクリックお願いします。


|

« Mac OS X Server:Postfixとメールクライアントの接続問題 | トップページ | SEO:ブログ記事を検索結果から消さないために »

Mac OS X Server」カテゴリの記事

Postfix」カテゴリの記事

サーバ管理」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/505963/42620153

この記事へのトラックバック一覧です: Mac OS X Server:PostfixでOP25B対応:

» Op25b Bookmarks [Post Saver - Website voting and saving system]
Bookmarked your page with keywords op25b! [続きを読む]

受信: 2009年8月31日 (月) 05時17分

« Mac OS X Server:Postfixとメールクライアントの接続問題 | トップページ | SEO:ブログ記事を検索結果から消さないために »