2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

Postfixで実現するSubmission over SMTP-AUTH!

Submission over SMTP-AUTH 、 またの名をMSA(MessageSubmissionAuthorized)と言う。
最近では、ウェルノウン25番ポートの利用が怪しくなってきた。つまり、SPAMメールもそうだが、ウィルスなどは独自にSMTPエンジンを持っていて、自発的にメールが送信できてしまう。だから、ウィルスに感染すると知らないうちに、PCのアドレス帳から個人のメールアドレスをゲットして自己のSMTPエンジンを使ってウィルスメールをまき散らす。SPAMメールも同じことだウィルスではないが、プログラムを使って自前のメールサーバ(DDNSなどを使う)やインターネット上の無償のメールアカウント(hotmail、yahoo)などから、ネット上で拾ったメールアカウント宛へ片っ端からDMを送る。このような背景により、2005年頃から Outbound Port 25 Blocking(OP25B) なんて言葉がでてきている。つまり、ウェルノウンポートである25番を使わないで代替えポート(587番ポート)を使ってSPAMやウィルスをブロックしてしまうと言う動きだ。以下が代替えポートを使った対策案である。以下、図1にその概要を示す。

図1

■ SMTP over SSL
これは、読んで字のごとく、SMTPセッションを全てSSL化する通信。これは、ポート465番(25番代替えポート)を使ってMUAとMTA間でSSL暗号化通信するもので有るため両者が、これに対応してなければならない。

■ SMTP over TLS(Transport Layer Security)
これは、やはりSMTPパケットを全てSSL化する通信。これは、ポート25番を使ってSSL通信を行う。主にISP間の配送で使うようだ。

■ Submission over SMTP-AUTH
これは、Submission(25番代替えポート587番)で SMTP-AUTH を実現する機能。このページで説明するネタ。

■ Submission over TLS
これは、Submission(25番代替えポート587番)で前述したSMTP over TLSを実現する。

注 : PostfixでSubmissionを実現するには、Postfixバージョン2.0.xx以降の物でなければならない。

以降、Submission over SMTP-AUTHの設定について説明する。テスト環境は以下である。

OS : DebianLinux3.1 Sarge
ii postfix 2.1.5-9 A high-performance mail transport agent
ii postfix-tls 2.1.5-9 TLS and SASL support for Postfix
ii libsasl2 2.1.19-1.5sarg Authentication abstraction library
ii libsasl2-modul 2.1.19-1.5sarg Pluggable Authentication Modules for SASL
ii libsasl2-modul 2.1.19-1.5sarg Pluggable Authentication Modules for SASL
ii sasl2-bin 2.1.19-1.5sarg Programs for manipulating the SASL users dat


1.Postfix+SMTP-AUTH2のセットアップ
これは、 ここ を参照してセットアップすること。


2.Submission設定作業

1) 587番ポートを有効にする
ns:/# vi /etc/services

省略
# Submission Service
submission 587/tcp
submission 587/udp
省略

2) Postfix側の設定

ns:/# vi /etc/postfix/master.cf
省略
587 inet n – n – – smtpd           ←本来Postfixの場合、 「submission n - n - - smtpd」となるのが普通だが、Debian Postfix2.1.5では、この記述でないとポートが開かなかった。
  -o smtpd_sasl_auth_enable=yes
smtp-amavis unix – – n – 2 smtp
  -o smtp_data_done_timeout=1200
  -o disable_dns_lookups=yes
127.0.0.1:10025 inet n – n – – smtpd
  -o content_filter=
  -o local_recipient_maps=
  -o relay_recipient_maps=
  -o smtpd_restriction_classes=
  -o smtpd_client_restrictions=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o mynetworks=127.0.0.0/8
  -o strict_rfc821_envelopes=yes
  -o smtp_error_sleep_time=0
  -o smtp_soft_error_limit=1001
  -o smtp_hard_error_limit=1000

設定後、
ns:/# postfix reload

注:-oの前のスペースに意味があるので注意すること。


3.ポートがLISTEN状態かを確認する
587番ポートがLISTEN状態かを確認してみる。

ns:/# netstat -antl | grep 587
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp6 0 0 :::587 :::* LISTEN


4.587番ポートがSMTP-AUTHされてるかを確認する
587番ポートがSMTP-AUTHするかをtelnetで確認する。

ns:/# telnet localhost 587
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 ns.e-linux.net ESMTP Postfix
EHLO localhost
250-ns.e-linux.net
250-PIPELINING
250-SIZE 51200000
250-ETRN
250-AUTH NTLM DIGEST-MD5 CRAM-MD5
250-AUTH=NTLM DIGEST-MD5 CRAM-MD5

250 8BITMIME
quit
221 Bye
Connection closed by foreign host.

赤字は、入力文字。青字のように表示されれば、OK!
以上で、設定完了。MUAのSMTPポートを587番に設定して実際にメール送信してみよう。さらに、ユーザ及びパスワード認証をしない場合Rejectされるかも同時に確認してみよう。

以上

コメント