Fortimail メール配送が重複処理される

メーカー製品

はじめに

以前、Fortimailのファームアップデートを行ったところ、仕様が変わり、スパム判定順序が入れ替わるという事件が発生した。バグじゃなくて仕様とのことなので、修正はできない…と。回避策がなかったため、Fortinet社と協議を行い、判定順序は変えれないが、判定したアクションの強い方を動作するように改修するとのことで落ち着いた。

  • v6.0.4:IPレピュテーションが先判定ー>Fortiguardスキャンが後判定
  • v6.4.3:Fortiguardスキャンが先判定ー>IPレピュテーションが後判定
  • v7以降:Fortiguardスキャンが先判定ー>IPレピュテーションが後判定 + 判定後のアクションで重い処理が優先される。(例:ヘッダ付与より、破棄の方が重い 等)

IPレピュテーションをRejectアクション、Fortiguardスキャンを件名付与してリレーにしてたので、v7で解決できる想定。とりあえずv7がでるまでEOLギリギリのv6.2.5で運用を続けることに。ちなみに判定順序が入れ替わった時のメール流量+判定状況のグラフ(日別)はこんな感じ。3日目にバージョアップして、動作が変わって、迷惑メールが大量流入することになった。

緑色:正常メール 紺色:IPレピュテーション判定メール 紫色:Fortiguardスキャン判定メール

v7.0.2へのアップデート

1年の時を経て、ついにバージョンアップを行うこととなった。バージョンアップしてスパムメールを送信してみた。

### 諸条件
# 10.0.0.2 はFortiguardでBlacklist判定されたメールサーバ
# 10.0.0.1 はバージョンアップしたFortimail
# http://example.spam はスパム判定されるURLを本文貼り付け

$ echo http://example.spam | mailx -S smtp=smtp://10.0.0.1 -s test -r hoge@piteki.com fuga@piteki2.com
smtp-server: 554 5.7.1 This email from IP 10.0.0.2 has been rejected. The email message was detected as spam.
"/root/dead.letter" 0/0
. . . message not sent.

おぉ!スパムURL入れてるのにちゃんとRejectされるようになった!
ユーザーのメールBOXを念のため確認・・・アレ?届いてる。何故?いや、Rejectされてたやん。。。
ヒストリログからクロス検索(AS/AV処理やメールログを連動させて表示させてくれるやつ)するとおもしろいこと(※運用側は1mmも面白くないが)がわかった。

クロス検索ログはこんな感じ

History     省略
MailEvent   Milter: data, reject=554 5.7.1 This email from IP 10.0.0.2 has been rejected. The email message was detected as spam.
MailEvent   to=<fuga@piteki2.com>, delay=00:00:00, pri=31150, stat=This email from IP 10.0.0.2 has been rejected. The email message was detected as spam.
AntiSpam    FortiGuard-AntiSpam identified spam URL: http://example.com
AntiSpam    FortiGuard-AntiSpam identified spam IP: 10.0.0.2, score: 3
MailEvent   to=fuga@piteki2.com, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=0, relay= [192.168.0.1], dsn=2.0.0, stat=Sent (Ok: queued as C257024FF1C5)

を見ると、何故かreject処理されたものと、stat=Sentしたもの2行が表示されてる
もう少し調査すると、セッションIDに違和感を感じた。下記は上記6行のセッションID部分を抜き出したもの。

25809Eex009534-25809Ef0009534
25809Eex009534-25809Ef0009534
25809Eex009534-25809Ef0009534
25809Eex009534-25809Ef0009534
25809Eex009534-25809Ef0009534
25809Eex009534-25809Ef00095340000

リレーしたとなってるログのセッションIDが最後に0000付与されて見慣れない形式になっている。
考えられる状況としては、送信元メールサーバにはrejectを返しているが、実際は受け取っていて+αの処理が継続して行われている状態に見える。いやぁ、、、バグでしょこれ。。。場合によってはVirusもすり抜ける場合があるのでは・・・?コワイコワイ

その後

問い合わせした結果、マルチアクションで仕様どおりの動作とのこと。バグではないらしい。そんなバカな。。。
とりあえず、このままでは運用上問題有りなので解決策が無いかFortinet社にて確認中。

2023/5追記:解決したので、そのページです。

参考URL

antispam settings | CLI Reference
How FortiMail processes email | Administration Guide

おまけ(愚痴)

Fortinet機器の保守は皆どこを使っているのだろうか。うちはS社だけど、いろいろと非常に残念な会社である。(一応社名は伏せておく)

前回ファームアップしたら動作がおかしくなって、自分が行ったデバッグ情報を基に仕様変更してるんじゃないか?と伝えても、それの裏取りをFortinet社にするでもなく、ログを渡せだなんだのと、こちらとしては障害ととらえてもおかしくない内容なのに、ちんたら動かれる。直接Fortinet社に問い合わせしたら仕様変更によるものだとすぐに認めてくれたのでファームダウンして回避に至った。

また、この仕様変更を社内の別の部署に情報連携したところ、その部署もS社とサポート契約をしてるそうで、対策などを取るために問い合わせしたら、「そのような仕様変更はありません」と回答されたらしい。いきさつを公開すると、社内で再確認したのか仕様変更を認め謝罪してきたらしい。ナレッジベースでの回答だとは思うけど、こっちが問い合わせしてFortinet社交えて解決した内容がナレッジに入れらてないのか?と疑うべき回答だった。

他にも、これはS社というより担当営業が悪いのだが、機器更新をS社の機器購入用MLに送信したところ、見積内容が良くなくてなんとかしてほしいと連絡したところ、S社のうちを担当している営業が入り込んできて「確認して再見積もりします!!と言われて、はや6カ月。。。色々とムカついてたということもあって催促も行わず、別の販社を使うことにした。3000万クラスの機器導入なのに、自分の営業成績気にならないのかな?

うちの部署からこのS社に転職した後輩がいてるけど、元気かな?人懐っこいイイ子だったが、仕事能力は…そういう人たちが集まる会社か?

コメント