質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Q&A

解決済

2回答

2863閲覧

メールをリレーする場合のSMTP認証について

hayash-dev

総合スコア50

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

0グッド

0クリップ

投稿2018/12/06 12:02

編集2018/12/06 12:09

お世話になっております。

以前、別の質問をさせて頂いた者です。

前提・実現したいこと

自社社員が送信するメールを送信元アドレスで規制したい

最近、自社の開発システムでメール送信機能の改造時に、誤送信が起きる問題がありました。
メールのFromには適当なメールアドレス、メールのToには実在の取引先のアドレスでした。

こういった事故を防ぐ為に、メールサーバの設定で再発防止を検討しています。

質問自体は解決できませんでしたが問題は解決したく、検討しておりました。

問題の解決として、メールホスティングサーバに至る前に、postfixをインストールしたUbuntuを建てて経由し、送信メールのFromが自ドメインではない場合には、送信者へ通知とネットワーク管理者へ転送しようと考えています。

現在の社内メール環境を図にしましたところ、設定が可能か判らない問題がありました。

イメージ説明

元々、社員が送信したメールは、SMTP認証機能があるメールロギングサーバに送信し、そこからホスティングメールサーバに転送されています。
メールのロギングは、購入した製品による機能です。

postfixには、ロギングサーバとの認証の為、postfixのmain.cfに、smtpd_relay_restrictionsの設定とテーブルファイルを作成しました。
外部にメールが送信されることは確認できました。

発生している問題1

この時のテーブルファイルには、テスト用に自分のアカウントを1件設定しました。

最終的には全社員分のメールアカウントとパスワードを用意しなければならないでしょうか?
あるいは、社員メーラー→postfixサーバでSMTP認証を行い、認証情報をロギングサーバの認証に使う事はできるのでしょうか?

発生している問題2

送信メールのFromが自ドメインではない場合には、送信者へ通知とネットワーク管理者へ転送しようと考えています。

送信者へはREJECT、転送の場合はREDIRECTだと思いますが、それを同時に設定することは可能でしょうか。

ご存知な方が居られましたら、ご教示頂きたいです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

最終的には全社員分のメールアカウントとパスワードを用意しなければならないでしょうか?

=> マニュアルを読む限り、1アカウントでも全社員分でもどちらでもよさそうです。
http://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html#smtp_sasl_password_maps

あるいは、社員メーラー→postfixサーバでSMTP認証を行い、認証情報をロギングサーバの認証に使う事はできるのでしょうか?

いいえ、そういう機能はないと思います。

送信者へはREJECT、転送の場合はREDIRECTだと思いますが、それを同時に設定することは可能でしょうか。

受け取っていないメール(REJECT)を転送することはできません。

私がその誤送信対策システムを作るのであれば、、、

メールロギングサーバとメールサーバの間に nginx で smtp proxy サーバを用意し、
smtp proxy サーバで from ドメインでの中継の判定や管理者への通知を実装しますかね。

投稿2018/12/06 14:33

scsi

総合スコア2840

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayash-dev

2018/12/07 02:32

scsiさん 前回に続き、御回答ありがとうございます。 scsiさんの想定されたsmtp proxyについて、調べてみます。 scsiさんのやり方ですと、私の考えているやり方と比べ、どのような効果やメリット?があるご教示頂けないでしょうか。 問題解決が最終目標なので、特に自分のやり方にはこだわっておりません。
scsi

2018/12/07 04:02

メリット 複数のサーバでユーザの認証情報を管理しなくてよい。 REJECTするメールについて、管理者への通知も実装できる。 メールロギングサーバを利用しているユーザのSMTPサーバの設定を変更しないでよい。 私なら開発で使用する為のメール配送環境を別途用意し、存在する顧客のアドレスはテストで使用する必要がない/できない設定で運用しますかねー。それが難しいんでしょうけど。。。
hayash-dev

2018/12/07 05:18

御回答ありがとうございます。 > 複数のサーバでユーザの認証情報を管理しなくてよい。 postfixは認証に使った、IDやパスワードを次のメールサーバに引き継げないんですね。 それを引き継ぐのがsmtp proxyの役目と理解しました。 これが出来たら、認証情報は楽になりそうです。
hayash-dev

2018/12/07 07:35

scsiさんの回答コメントで質問するのは不適切かもですが、質問させてください。 契約しているホスティングサーバについて、社内より「いまどきSMTP認証に対応していない」という理由で、SMTP認証有りのホスティングサービスに変更する可能性が出てきてしまいました。 図ではSMTP認証無しのメールサーバですが、ここが認証有りになった場合、メーラーからの認証情報をどのように処理すれば良いのか判りません。 From判定をsmtp proxyで行う前提で結構ですので、サーバの配置について御助言頂けないでしょうか。
scsi

2018/12/08 04:04 編集

ホスティングサーバを使っている以上制限はついてきます。柔軟には対応できません。 ホスティングサーバを乗り換えるのであれば、自社で必要な機能を明確にし、対応して頂ける会社を剪定すればいいかと思います。 メールロギングサーバがあるため、SMTP認証が必要ないホスティング業者を利用していたのではないのですかね?
hayash-dev

2018/12/10 02:51

scsiさん > メールロギングサーバがあるため、SMTP認証が必要ないホスティング業者を利用していたのではないのですかね? 恐らくですが、インフラに予算をかけずにホスティング業者を探し、その後ISMSのセキュリティ強化の目的でロギングサーバを追加したようです。 今回の特定のFromに合致しない(自社ドメインではない)場合には、送信しないフィルター制御が可能なサービスを8月から探していますが、実現できるところはありませんでした。 フィルターサービスは、送信するメールのFromドメインを見て、サービス対象のユーザであるかを判断するらしく、Fromが偽装されるとフィルターを通らないという仕組みが殆どだった為、内製を決意した経緯があります。 今回、postfixをMTAとして構築しようとしていますが、「クライアントメーラー」→「MTA」→「MTA」→「SMTP認証有りメールサーバ」という流れの場合、介在するサーバには全てユーザ認証情報を持たせるのが一般的なんでしょうか。
scsi

2018/12/10 04:46

普通は最初のMTAだけ認証しますね。 最初MTA以降のサーバは認証が通過したメールのみ中継される為、認証を再度する必要がありません。無駄です。
hayash-dev

2018/12/10 05:23

scsiさん > 無駄です。 簡潔な回答ありがとうございました。すっきりしました。
hayash-dev

2019/08/28 09:35

スカジーさん ご無沙汰しております。 スカジーさんに回答して頂いた、以下の内容を実現しようとしています。 > 私がその誤送信対策システムを作るのであれば、、、 > メールロギングサーバとメールサーバの間に nginx で smtp proxy サーバを用意し、 > smtp proxy サーバで from ドメインでの中継の判定や管理者への通知を実装しますかね。 ubuntu18.04.03に nginxの最新版を使う想定です。 上記の「from ドメインでの中継の判定や管理者への通知を実装」について、参考になりそうなURLなどご教示頂けないでしょうか。 nginx自体にまだ馴染みがなく、ドメインの判定方法やrejectの仕方など基本的な事を理解出来ておりません。 恐縮ですが、よろしくお願い致します。
scsi

2019/08/29 05:37 編集

まずはここの11番のphpスクリプトを斜め読みして理解する
scsi

2019/08/29 05:37 編集

下記を参考に From/Toから、中継の判定と管理者への通知をする スクリプトを作成する
hayash-dev

2019/08/29 04:24

ありがとうございます。 2つ目に教えて頂いたURLに、nginxで知りたい情報が多く含まれていました。 nginx.confの構文について以下のページを参照していましたが、 http://mogile.web.fc2.com/nginx/ 環境変数($http_auth_smtp_helo)に値が格納される仕様など、皆さんはどこから仕入れてるんでしょう?
scsi

2019/08/29 05:32

ちなみに二つとも私が書いたものなんですが、オライリー本とか nginx の source を grep したり、感で値入ってるか確認したりとかですかね。
hayash-dev

2019/08/29 08:02

なんとも反応し辛いですが御回答ありがとうございます。 オライリー本を一読してみようと思います。 #qiitaフォローさせて頂きました
guest

0

まったくアプローチは異なりますが、ご参考までに「自社の開発システムでメール送信機能の改造時に、誤送信が起きる問題がありました」の対策の例をご紹介します。

私が上記の対策としてよく行うのは、開発システムで使用する MTA 側で、「指定ドメイン以外のメール送信はすべて無効もしくは指定されたアドレスへ転送」という設定です。
この設定は、Postfix であれば /etc/postfix/transport で簡単な設定を行うだけで済みますので、お手軽に済ませるのであればおすすめです。

hayash-dev さんの検討されている仕掛けの方が1台で完結できるし、他の用途にも応用が利くので同列には比較できませんが、あくまでも開発システムの誤送信という観点だけであれば上記のレベルでも十分であると個人的には思います。

投稿2018/12/07 03:00

ssasaki

総合スコア1167

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayash-dev

2018/12/07 07:02 編集

ssasaki様 御回答ありがとうございます。 transport の設定を見てみました。transport は送信先によって振り分ける仕掛けなんですね。 今回は送信元で振り分けたいので使う事は無さそうです。 メール配信の設計は今回が初めてですので、調べる度にいろいろな概念に触れるので新鮮です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問