web-dev-qa-db-ja.com

ユーザーがPostfixで別のユーザーのようにメールを送信しないようにするにはどうすればよいですか?

CentOS7でメールサーバーを実行しています。すべてのプログラムとシステムが最新です。私のメール転送エージェントはPostfixであり、DovecotSASLを使用してユーザーを認証します。

Postfixの構成では、信頼できるネットワークはlocalhostのみです。したがって、メッセージを送信するには、すべてのホストがDovecotSASLで認証する必要があります。

問題

たとえば、悪意のあるユーザーがアカウントにアクセスできるかどうか。彼はアナやボブなどのようにメッセージを送信できます。どうすればそれを防ぐことができますか?

目標

つまり、認証されたユーザーが送信者ヘッダーで同じである場合にのみ、メッセージを送信する必要があります。そのためのツールはありますか?

3
cl4rk

おそらく、reject_sender_login_mismatch構成でsmtpd_sender_restrictionsパラメーターを使用したいので、次のようになります。

smtpd_sender_restrictions =
    permit_mynetworks,
    reject_sender_login_mismatch,
    permit_sasl_authenticated,
    ...

これにより、mynetworksが電子メールを送信できるようになりますが、SASL認証済みクライアントを許可する前に、送信者のログインが一致していないかどうかがチェックされます。

Postfixドキュメント によると:

reject_sender_login_mismatch:$ smtpd_sender_login_mapsがMAILFROMアドレスの所有者を指定しているが、クライアントがそのMAIL FROMアドレスとして(SASL)ログインしていない場合、要求を拒否しますオーナー;または、クライアントが(SASL)ログインしているが、クライアントのログイン名が$ smtpd_sender_login_mapsによるMAILFROMアドレスを所有していない場合。

これは、各電子メールアドレスを使用できるユーザー用の新しいマップを作成することを意味します。したがって、[email protected]というアドレスがある場合は、マップを追加する必要があります。

[email protected]      [email protected]

[email protected]が認証されると、そのアカウントから電子メールを送信できるようにするため。

これにより、IDを作成することもできるため、アカウントに複数の許可された送信者を含めることができます。

[email protected]      [email protected]

これにより、[email protected]として識別されたすべての人が、[email protected]IDでメッセージを送信できるようになります。

2
nKn