[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:27873] postfix with SMTP-Auth part1



こじま@Athlon64x2 で遊び中,です.

最近,使っている ISP が OP25B を始めたので,手元の postfix を
SMTP-Auth 化し,パッケージは FTP サイトに上げておいたのですが,設定につ
いて多少詳しくまとめたのでこちらに流しておきます.

次のバージョンでは POP before SMTP から SMTP-Auth に変更する予定なので,
このドキュメントでちゃんと設定できるか確認いただければ幸いです.

# ちとサイズが大きいようなので,2 分割して流します.

-------------
[Plamo-4.2x での SMTP Auth の設定方法]

昨今の SPAM の蔓延(流れているメールの9割近くがSPAMらしい)に対抗するため
に,多くの ISP は Outbound Port 25 Blocking という設定を開始しました.

この設定は,認証が不要な SMTP 25 番ポートへの接続をISP のレベルで制限
し,認証(SMTP-Auth)が必要な587番のポートあるいは ISP が提供しているメー
ルサーバに限定するものです.

本文書は Plamo Linux 4.2x の環境で SMTP-Auth の設定を行う方法を解説する
ものです.

○SMTP-AuthとOutbound Port 25 Blocking

最近では,インターネットに流れているメールの9割近くが何らかのSPAMである
という分析があります.このような状況になった原因の一つが 25 番ポートを
用いた SMTP(Send Mail Transfer Protocol)接続です.

SMTPはインターネットの黎明期に開発された,性善説に基づいた設計のプロト
コルのためユーザ認証の機能は組み込まれていません.そのため悪意を持った
ユーザが他人のメールアドレスを詐称したり大量のSPAMメールを送信したりす
ることを防ぐことが困難です.

# オープンリレーやORDB,POP before SMTP等の話は複雑になるので省略

メールに関するプロトコルの中でもPOPやIMAPといったメールサーバからメール
を取り込むためのプロトコルにはユーザ認証の仕組みが用意され,ユーザのメー
ラ(MUA)ではユーザ名やパスワードの設定が必要になっています.一方,SMTPの
場合は自ホストのユーザから送信されたメールを受けつけるだけでなく,任意
のメールサーバ宛にメールを転送したり,任意のメールサーバから届く自ホス
トのユーザ宛のメールを受信したりする必要があるため,プロトコルの中にユー
ザ認証の仕組みを組み込むことが困難でした.

そのため,最近のメールサーバでは自ホストのユーザから送信されたメールを
受け付けるポート(submissionポート:デフォルトでは587番ポート)と他のメー
ルサーバとメールをやりとりするポート(SMTPポート:25番ポート)を分離し,前
者ではSMTP-Authと呼ばれるユーザ認証機能を持ったプロトコルを用いてメール
送信者の確認を行い,後者は従来のSMTPプロトコルを用いてメールサーバ間の
メール転送を行うような設定が主流になっています.

メールの送信時にsubmissionポートを利用してユーザ認証を行えば送信者を偽
装したSPAMメールを防ぐことができます.しかし,最近のSPAM業者はコンピュー
タウィルスやマルウェア等を用いてインターネットに接続されたPCを乗っ取り,
乗っとったPCから直接外部のメールサーバのSMTPポートへSPAM メールを送信す
るような手法を取ることが知られています.このような方法でSMTPポートへ送
信されたメールはsubmissionポートを認証する方法では防ぐことができません.
これらのSPAMメールを排除するには乗っとられたPCが利用しているネットワー
ク(契約したインターネット接続業者(ISP)が提供しているネットワーク)のレベ
ルで意図しないSMTPポートへの接続を禁止する必要があります.そのために
ISP事業者が採用しているのがOutbound Port 25 Blocking(OP25B) という仕組
みです

OP25BではISPのネットワーク内から直接外部のメールサーバのSMTPポートへ送
られるメール(を構成するパケット)をブロックし,外部のSMTPポートにはISP内
のあらかじめ決められたメールサーバからしか接続できないようにしています.
そのため,メールを送信するには一度ISP内のメールサーバでSMTP-Auth を用い
てユーザ認証を受ける必要があります.もっとも,OP25Bでは25番以外のポート
へ送信されるパケット(例えばSMTP-Authが利用する587番のポートへのパケット)
はブロックされませんので,ISPの外部で自前でSMTP-Authを用いたメールサー
バを用意しそれを直接利用することも不可能ではありません.

MewやSylpheedといったメーラー(MUA)ではずいぶん前からSMTP-Authに必要な機
能な内蔵しており,Mew ならば ~/.mew.el にISPが用意したメールサーバとア
カウントを登録するだけで利用可能になります.一方,PostfixのようなMTAソ
フトウェアでは,SMTP-Authの機能は外部のライブラリを利用することになって
いるため,Cyrus-SASLやDovecotといった認証用ライブラリと組み合わせて使う
必要があります.Plamo-4.21がデフォルトでインストールするメールサーバ
(postfix-2.2.10-i386-P1.tgz)ではこの機能は有効になっていないので,今回,
Cyrus-SASL(cyrus_sasl-2.1.22-i386-P1.tgz)と組み合わせて使うためのパッケー
ジ(postfix-2.3.4-i386-P1.tgz)を作成しました.

○Cyrus-SASLとは

SASL(Simple Authentification and Securiy Layer)とは,RFC2222で定義され
ている認証用メカニズムです.このメカニズムを実装したソフトウェアの代表
例がCyrus-SASLで,カーネギーメロン大学の学内メール環境を構築する
Project Cyrus (http://cyrusimap.web.cmu.edu)で開発されたソフトウェアで
す.本来 Project CyrusはIMAP4を中心としたメールシステムになっています
が,SASL認証の部分のみを独立して提供したものがCyrus-SASLパッケージです.
PostfixはCyrus-SASL以外にもDovecot SASLを利用することも可能です.

○パッケージのインストール

今回用意した cyrus_sasl-2.1.22-i386-P1.tgzとpostfix-2.3.4-i386-P1.tgz
を用いてSMTP-Authに対応したサーバを設定する方法を解説します.

1) 古いバージョンのpostfixがインストールされていたら,それらをアンイン
   ストールしておきます.また POP-before-SMTP用の dracd もアンインストー
   ルします.以下には記述していませんが,Postfixの設定ファイルは忘れず
   バックアップしておいてください.

# postfix stop  (Postfixの停止)
# removepkg postfix (パッケージのアンインストール)
# /etc/rc.d/init.d/dracd stop  (Dracの停止)
# removepkg dracd

2) Cyrus-SASLと新しいバージョンのPostfixをインストールします

# installpkg cyrus_sasl-2.1.22-i386-P1.tgz
# installpkg postfix-2.3.4-i386-P1.tgz

postfixパッケージをインストールすると/etc/servicesに Submission ポート
に関する設定が追加されるので確認しておいてください.

submission      587/tcp
submission      587/udp

postfixパッケージをインストールすると/etc/aliasesファイルが更新されるの
で,インストール後 newaliases コマンドで aliases データベースを更新して
おきます.alias 設定をしている場合は,必要な設定を戻してから
newaliases コマンドを実行してください.

----
こじま

Follow-Ups
[plamo:27874] postfix with SMTP-Auth part2, KOJIMA Mitsuhiro

[検索ページ] [メール一覧]
Plamo ML 公開システム