Greylisting(グレイリスティング)

メールサーバー | IT用語集

この用語をシェア

Greylistingとは

Greylisting(グレイリスティング)は、初回接続のメールを一時的に拒否(450エラー)するスパム対策手法です。正規のメールサーバーはRFC準拠で再送信を行いますが、多くのスパムボットは再送信機能を持たないため、この特性を利用してスパムを効果的にフィルタリングします。

Greylistingの動作原理

トリプレット管理

Greylistingは、以下の3つの要素(トリプレット)を記録します:

  • 送信元IPアドレス
  • 送信者メールアドレス
  • 受信者メールアドレス

処理フロー

1. 初回接続(未知のトリプレット)
   → 450 Temporary failure(一時拒否)
   → トリプレット記録 + タイムスタンプ

2. 再送信(5分後など)
   → トリプレット確認
   → 遅延時間が条件を満たす場合、受信許可
   → ホワイトリストに追加

3. 以降の接続(ホワイトリスト登録済み)
   → 即座に受信

典型的な設定パラメータ

  • 最小遅延時間: 5分(スパムボットは待機しない)
  • 最大遅延時間: 4時間(それ以降の再送は拒否)
  • ホワイトリスト保持期間: 30日(定期送信者の記録)

メリットとデメリット

メリット

  • 高効果: スパムの50-90%をブロック
  • 低負荷: 軽量な処理(CPU負荷が小さい)
  • 誤検知ゼロ: 正規メールは必ず到達(遅延するのみ)
  • コンテンツ分析不要: トリプレットのみで判定

デメリット

  • 初回配送の遅延: 5-15分の遅延が発生
  • 一部サービスとの非互換: 再送機能を持たないサーバーとの問題
  • 緊急メールの遅延: 重要な初回メールも遅延

自社メールサーバー運用への応用

Postgrey(Postfix用)

# main.cf
smtpd_recipient_restrictions = 
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination,
  check_policy_service inet:127.0.0.1:10023

# Postgrey起動
postgrey --inet=127.0.0.1:10023 --delay=300

Rspamdでの設定

Rspamdには、Greylisting機能が統合されています:

# /etc/rspamd/local.d/greylist.conf
enabled = true;
timeout = 300s;  # 5分
expire = 30d;    # 30日間保持

Docker Mailserverでの有効化

services:
  mailserver:
    environment:
      - ENABLE_RSPAMD=1
      - RSPAMD_GREYLISTING=1

ホワイトリスト設定

特定の送信者(銀行、クラウドサービスなど)は、Greylistingをスキップするようホワイトリスト登録を推奨します。

他のスパム対策との組み合わせ

Greylistingは、以下の対策と組み合わせることで効果を最大化します:

関連ブログ記事

まとめ

Greylistingは、シンプルかつ効果的なスパム対策手法です。初回配送の遅延というデメリットはありますが、高いスパムブロック率低い誤検知率により、多くのメールサーバーで採用されています。重要な送信者をホワイトリスト登録することで、デメリットを最小化できます。

この用語についてもっと詳しく

Greylistingに関するご質問や、メールサーバー構築のご相談など、お気軽にお問い合わせください。