スパム対策 · 1 min read · Oct 24, 2025

グレイリスティング - Debian と Ubuntu の Postgrey と Postfix でスパムと戦う

グレイリスティングを聞いたことがありますか?

スパムが受信トレイに届くのを防ぐ方法は数多くありますが、最も一般的なのはおそらく SpamAssassin です。グレイリスティングは、SA のようなスパムフィルタリングソフトウェアの代わりにはなりませんが、スパムに対する強力な最初の障害として機能し、システムに入るスパムの量を減らします。これは、Postfix の他のすべてのスパム対策機能への追加と見なすべきです。

受信トレイのスパムの量を減らすという明らかな利点に加えて、ウイルススキャナーや SpamAssassin の作業量も減らします。スパムフィルタリングとウイルススキャンは CPU 集中型の作業であり、スパムを入口で止めることで、ハードウェアの要件を減らし、結果的にコストを節約できる可能性があります。

グレイリスティングは簡単に言うと、誰かがあなたのメールサーバーにメールを配信しようとすると、単に「後で戻ってきてください」と応答することを意味します。これはすべての RFC 準拠のメールサーバーが行うことであり、再度戻ってきたときにメールが受け入れられます。ほとんどのスパマーやスパムソフトウェアは準拠しておらず、再試行するのに十分な忍耐を持っていません。これがどれほど効果的であるかに驚くことでしょう。とにかく、以下のリンクをたどって本当に学んでください。常に賛否があるので、運用サーバーに導入する前に宿題をしてください。

Greylisting.org
Wikipedia のグレイリスティング

グレイリスティングの実装は複数あり、ほとんどのサーバーで実行できます。Debian で Postfix を MTA として実行し、Postgrey を使用する方法を示します。このガイドの手順は、Debian 3.1 (sarge) から 8 (jessie) までのすべての Debian バージョンで機能します。

Postgrey のインストール

動作する Postfix のインストールがあると仮定します。

apt-get を使用して Postgrey をインストールすると、要件は自動的に処理されます。ただし、ソースからインストールする場合は手動で確認する必要があります。

Postgrey の要件は次のとおりです:

  • Perl >= 5.6.0
  • Net::Server (Perl モジュール)
  • IO::Multiplex (Perl モジュール)
  • BerkeleyDB (Perl モジュール)
  • Berkeley DB >= 4.1 (ライブラリ)

apt で Postgrey パッケージをインストールすることをお勧めします。

まず、次のコマンドで Postgrey パッケージをインストールします:

apt-get -y install postgrey

これにより、あなたのマシンに Postgrey サーバーがインストールされます。いくつかの設定を変更したいかもしれません。グレイリスティングの最も厄介な点は、メールの配信に遅延を課すことです。デフォルトの 5 分の遅延が少し長すぎると感じる場合は、1 分に設定できます。これは /etc/default/postgrey を編集することで変更できます。デフォルトを次のように変更します:

POSTGREY_OPTS="--inet=127.0.0.1:10023"

を:

POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=60"

ただし、すべてが期待通りに動作することを確認した後にデフォルトを変更することをお勧めします。遅延を短くすると、グレイリスティングの効率が低下することにも注意が必要です。遅延を 1 時間に増やすと、スパムには厳しくなりますが、ユーザーの忍耐にも厳しくなります。:)

次に、次のコマンドで Postgrey ポリシーサーバーを起動します:

service postgrey start

Postgrey ポリシーサービスは、ポート 10023 で稼働しているはずです。

次に、Postfix を Postgrey を使用するように構成しましょう。

Postfix の構成

Postfix の設定ファイルは /etc/postfix にあります。/etc/postfix/main.cf を編集し、smtpd_recipient_restrictions に check_policy_service inet:127.0.0.1:10023 を追加します。次のようになります:

smtpd_recipient_restrictions = permit_sasl_authenticated,
           permit_mynetworks,
           reject_unauth_destination,
           check_policy_service inet:127.0.0.1:10023

あとは、次のコマンドで Postfix の設定をリロードするだけです:

postfix reload

シンプルで素晴らしい。リラックスしてスパムのない状態を楽しんでください :)

//Erk

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。