title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
趣味のバイク、雑談なども書いていますよ〜。最近は独立系太陽光発電とアクアリウムの記事多し。
<< 2017/06 >>123456789101112131415161718192021222324252627282930
Powered by BLOM Version 2.31a Memo
小さくも大きくも閉じたりもしません
17/02/18 03:41 / PMailServer2

久しぶり?の進捗情報です。

2.31a では、SSL/TLS 関連の機能追加がメインになっています。

1)MTA for STARTTLS にフォールバック機能を追加しました。

フォールバックは MTA for STARTTLS にて、初期化やネゴジェーションに失敗した際の代替処理のことでして従来は

a) 配信先サーバーへ接続
b) STARTTLS にて TLS通信を開始。
c) b が失敗した場合、そのまま平文で通信を継続。

という処理になっていましたが、これを

(イ) フォールバックしない。
(ロ) 失敗した場合、平文で通信を継続。
(ハ) 失敗した場合、次の再送で平文送信する。

の3パターンから選択ができるようになります。

(イ)は TLS通信を繰り返します。
例えば、送信を行う際は暗号化を必須とする。というようなポリシーで運用する場合に利用します。

(ロ)は従来の通りです。ただネゴジェーションに失敗すると、そのまま回線を切るようなケースがあるようです。
何の為の STARTTLS なのか意味がわかりません。

(ハ)は(ロ)の説明にもありますようにそのまま切断してくるケースの場合、最終的にはエラーになって、結局送信できない。で終わってしまう為の対策です。

1回目の送信は、TLS通信で行いますが、ネゴジェーション等でエラーになった場合(通常のエラー、例えば Server Busy などの場合はフォールバックされません)一旦配信を中断して「次の再送処理の際に平文で送信」を行います。

2回目の再送処理については、基本的に失敗することは無いのですが(ネゴジェーションしませんし)なんらかの理由により失敗した場合は、その次は再度 TLS通信を試みる。つまり交互に行うようになります。

切断して、再送処理では無くすぐに平文通信を試みても良いとは思ったのですが、配信先サーバーに連続して接続を行うと負荷をかけてしまう点や、他のメール配信に影響が出る為、失敗したら並びなおして下さい。という感じです。


2)同じく MTA for STARTTLS にて、特定のホストに対して特定のプロトコルを指定できるようにしました。

フォールバック機能を追加する前に実装したので、余り意味の無い機能になってしまいましたが、配信時の特定のホストへ利用する SSL/TLS 通信を指定することができます。
指定できるのは SSL3 / TLS1.0 / TLS1.1 / TLS1.2 の4種類です。

例えば、普段は TLS1.2 しか利用しませんが、古い機器にメールを送る場合に SSL3.0 で送りたい場合などに使えるかもしれません。(多分そういうシチュエーションは殆ど無いと思いますが)

3)細々とした変更。

証明書のインストールの際に対象のアカウントを確認できるようにしたり。(証明書をダブルクリックでインストールするとアカウントにインストールされるのですが、コンピュータにインストールしたい場合は mmc からインポートでインストールする必要があります。実は一番問い合わせが多い質問だったりします)

ポート番号の変更ができるようになっています。

ポート番号の変更は、相当昔のバージョンからできるのですが(pmail.ini を眺めると設定項目が既にあります)需要は0だったのでサーバーマネージャーには追加していなかったのですが、過去に1回、最近2回目の変更できませんか?という問い合わせが来ましたので公開することにします。


4)IPv4 / IPv6 のルーティング方法を変更しました。

内部処理の変更です。
少し効率良く選ぶようにしました。

5)Webmail のアドレス帳の UI の変更とパフォーマンス改善を行いました。

元々 2.31a での変更予定だったのですが、2.31 の再リリースにより実装されてしまっている。という状態です。

SSL/TLS の処理自体のチェックも行っていますので、リリースは来週か再来週頭くらいになると思います。

[更新日付:2017/02/18 03:41:47]
トラックバックを見る(0)
Log Link [http://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+04f26ab1b68b246e0031ff2d83cc6b70108d7c5e]
TB Link [http://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+04f26ab1b68b246e0031ff2d83cc6b70108d7c5e]

記事へのコメント

名前 : H.Matsuda (2017/02/19 12:40:59)

>noppo 様

逆に STARTTLS に失敗しても TLS通信のみで行うのをデフォルトとしようと考えましたが、従来の設定を引き継ぐ為、従来通りの動作をデフォルト値として扱うようにしました。

どのプロトコルで行ったか?ですが、SSL/TLS の内部処理を変更した際に、ネゴジェーション終了時のバージョンを出力するように変更済みとなっています。

名前 : noppo (2017/02/19 08:25:50)

いつもお世話になっております。

フォールバック機能、有効だと思います。

>(ハ) 失敗した場合、次の再送で平文送信する。
これがデフォルトでもよいと思います。

あと、ログの中にどのバージョンでネゴシエートできたのかが知りえる記述を追加できたら幸いです。

>[MTA ] xxxx/xx/xx xx:xx:xx [000] SSL/TLS のハンドシェイクに失敗しました。Unknown(0x00)

例)
>[MTA ] xxxx/xx/xx xx:xx:xx [000] SSL/TLS のハンドシェイクに成功しました。TLS1.2

ご検討ください。

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.