送信者なりすまし防止

ユーザーアカウントが侵害されると、攻撃者はすぐにあなたのメールサーバーをスパム送信機へ変えようとします。強力なパスワード、2FA、送信量制限、厳格な MTA 設定があっても、有効なログイン資格情報を支配した攻撃者は依然として被害を引き起こせます。BlueOnyx はここにもう 1 層の保護を追加します。認証済みユーザーと、そのユーザーが使用を許可された送信者 ID の対応付けを強制します。

簡単に言えば、認証済みユーザーは自分に属するアドレスだけを使ってメール送信できます。エイリアスのなりすましや、他アカウントへの成り済ましは不可能になります。他が「ユーザーがなりすまさないこと」を期待する一方で、BlueOnyx はそれを防ぎます。

仕組み

この機能は、認証済み SMTP セッションで使用される送信元アドレスが、そのユーザーに本当に許可されているかを検証する Postfix の強制レイヤーを追加します。

補助スクリプトが /etc/postfix/sender_canonical を自動生成し、実際のアカウントデータに基づいて内容を埋めます。

  • サーバー管理者とそのエイリアス (存在する場合)
  • 各 Vsite の全ユーザーと、それぞれのメールエイリアス
  • すべての Vsite Email Server Alias
  • /web を所有する siteAdmin は、同じ Vsite ドメイン内の任意ユーザーとして送信可能。これにより PHP スクリプト、Web アプリケーション、Webmail が引き続き機能します
  • 停止中の Vsite やユーザー、またはメール無効のものは完全に除外されます
  • Vsite 単位で制限を緩和し、選択されたユーザーに対して、送信者アドレスのドメインが Vsite 名またはその Email Server Alias に関連付けられている限り、任意アドレスでの送信を許可できます

認証済みユーザーが許可一覧にないアドレスで送信しようとすると、SMTP エンベロープ段階で拒否されます:

mstauber@beast:~$ swaks --auth-user hacked_user --auth-password '[HIDDEN]' --from billing@paypal.com --to ms@blueonyx.it --server 5212r.blueonyx.it</code><br /><code>=== Trying 5212r.blueonyx.it:25...</code><br /><code>=== Connected to 5212r.blueonyx.it.</code><br /><code><- 220 5212r.blueonyx.it ESMTP Postfix</code><br /><code> -> EHLO beast.smd.net</code><br /><code><- 250-5212r.blueonyx.it</code><br /><code><- 250-PIPELINING</code><br /><code><- 250-SIZE 102400000</code><br /><code><- 250-ETRN</code><br /><code><- 250-STARTTLS</code><br /><code><- 250-AUTH PLAIN LOGIN</code><br /><code><- 250-ENHANCEDSTATUSCODES</code><br /><code><- 250-8BITMIME</code><br /><code><- 250 DSN</code><br /><code> -> AUTH LOGIN</code><br /><code><- 334 [HIDDEN]</code><br /><code> -> [HIDDEN]</code><br /><code><- 334 [HIDDEN]</code><br /><code> -> [HIDDEN]</code><br /><code><- 235 2.7.0 Authentication successful</code><br /><code> -> MAIL FROM:<billing@paypal.com></code><br /><code><- 250 2.1.0 Ok</code><br /><code> -> RCPT TO:<ms@blueonyx.it></code><br /><code><** 553 5.7.1 <billing@paypal.com>: Sender address rejected: not owned by user 'hacked_user'</code><br /><code> -> QUIT</code><br /><code><- 221 2.0.0 Bye</code><br /><code>=== Connection closed with remote host.

これにより、攻撃者が正規認証済みでありながら、フィルター回避や他者への成り済ましのために送信者 ID を偽装するという広範な悪用を防げます。

保護されるもの

この強制は、SASL 認証を用いるすべての SMTP トランザクションに適用されます。つまり、外部クライアントから送信されるほぼすべてのメールと、多くの認証済みアプリケーションからのメールが対象です。

カバーできないもの

サーバー上で /usr/sbin/sendmail を直接呼び出して送信されるメール (cron ジョブやシステムスクリプトなど) は認証を経由しないため、同じ検証対象にはできません。これらを軽減するには送信内容を強制する outbound milter が必要ですが、一般的な BlueOnyx 機能 (メーリングリストなど) との互換性問題を招き、影響が大きすぎます。

Vsite 単位およびユーザー単位の設定:

MTA が Postfix であり、Email Server Settings で「Prevent Sender Identity Spoofing」が有効な場合、すべての Vsite の認証済みユーザーは、自分に明示的に割り当てられていない送信元アドレスを使ってメール送信できません。唯一の例外は「/web を所有する siteAdmin」で、その場合は送信元アドレスのドメイン部が Vsite の FQDN および/または Vsite の Email Server Alias のいずれかに一致する限り、任意のメールアドレスで送信できます。

Vsite の Email 設定で「Allow Sender Identity Spoofing」が有効な場合、選択したユーザーにも同じ権限を付与できます。

これは管理者レベルの権限であり、siteAdmin 自身が切り替えることはできません。サーバー管理者が Vsite ごとに有効/無効を設定する必要があります。

この機能が有効な場合、選択したユーザーには「Basic Settings」で「Allow Sender Identity Spoofing」権限を与えられます。

このスイッチは、その Vsite で機能が有効になっていれば siteAdmin でも切り替え可能です。

「Allow Sender Identity Spoofing」が有効な Vsite は、Vsite 一覧で簡単に識別できます。

この場合「Email」アイコンは「Email (+)」へ変わり、その Vsite で「Allow Sender Identity Spoofing」が有効であることを示します。同様に、この権限を与えられた個別ユーザーも「Email」アイコンが「Email (+)」へ変わります。

導入時の詳細

予期しない動作変更を避けるため、この機能は YUM/DNF 経由で更新を受けたシステムではデフォルトで無効になっています。

ただし、新規インストールで Web ベースセットアップがまだ完了していない環境では、初日から保護を提供するためにデフォルトで有効 になっています。

「ネットワークサービス」/「Email」にある新しい「Prevent Sender Identity Spoofing」スイッチで、管理者はこの保護を有効/無効にできます。有効時、BlueOnyx は送信者 ID の対応付けを自動的に維持します。

この更新により、悪用防止の水準が大きく引き上げられ、侵害されたアカウントの影響が抑えられ、サーバーがスパム送信源として悪用される可能性も低下します。他の解決策が希望やポリシー文書、善意に依存している間に、BlueOnyx は実際に強制力のある保護を提供します。これこそ、プラットフォームが本当にセキュリティ責任を担うときのハードニングです。

この機能が役に立つことを願っています。