2026年11月12日

2026年11月12日

GreylistingでスパムをフィルタリングするPostgrey設定

はじめに

Greylistingは、送信元のホストがメールを再試行するまで一時的に拒否することでスパムメールのフィルタリングを行う技術です。PostgreyはこのGreylisting手法を実現するためのユーティリティであり、SpamAssassinやDKIMなどの他のメールフィルタと連携して効果的なスパム対策を行うことができます。

症状・背景

  • サーバーに多くの不審なメールが到着し、これらを手動で処理するのが困難な場合
  • メールサーバーの帯域利用率や負荷が高まり、パフォーマンス低下を引き起こす場合
  • 信頼性のある送信元からのメールも正常に受信されないケースがある場合

手順・設定方法

ステップ1: Postgreyのインストールと初期設定

# CentOSでのインストール例
sudo yum install epel-release -y
sudo yum install postgrey -y

# Debian/Ubuntuでのインストール例
sudo apt-get update
sudo apt-get install postgrey -y

# Postgreyの起動と自動起動を有効化
sudo systemctl start postgrey
sudo systemctl enable postgrey

# Postgreyの設定ファイルを開く
sudo nano /etc/postfix/postgrey.conf

ステップ2: 主要オプション/設定

# メールサーバーとPostgreyとの通信を許可するホストリストを追加
domain_name='example.com'
echo "$domain_name" | sudo tee -a /etc/postgrey/whitelist_client_domains

# 送信元のIPアドレスも白リストに追加可能
ip_address='192.0.2.1'
echo "$ip_address" | sudo tee -a /etc/postgrey/whitelist_sender

# 時間制限を設定(秒単位)
sudo nano /etc/postgrey/greylist_times.conf

ステップ3: 应用/組み合わせ

# SpamAssassinとの連携
sudo nano /etc/postfix/master.cf
postgrey unix - n n - 0 pipe flags Rhu user=postgrey argv=/usr/bin/perl /usr/share/postgrey/postgrey.pl --pid-file=/var/run/postgrey.pid --socket-group=postgrey --socket-mode=660

# 配置ファイルを読み込み
sudo postmap /etc/postfix/greylist_times.conf

ステップ4: 実践/トラブルシュート/監視

# Postgreyのログを確認
tail -f /var/log/maillog | grep postgrey

# エラーが発生した場合のトラブルシューティング
sudo systemctl restart postgrey

注意事項

  • 設定ファイルへの変更は、Postfixの再起動が必要なため注意が必要です。
  • 白リストを適切に設定し、信頼できる送信元のみが正常にメールを送信できるようにすることが重要です。
  • Greylistingは初期設定では非常に厳格になり、一部のメールが誤ってフィルタリングされる可能性があります。

まとめ

1. Postgreyのインストール: Postgreyを使用するための基本的な設定を行います。

2. 白リストの設定: 信頼性のある送信元を許可することで正常なメールの受信を確保します。

3. SpamAssassinとの連携: 追加のスパムフィルタリングを行うためにPostgreyとSpamAssassinを組み合わせます。

4. 監視とトラブルシューティング: ログを確認し、問題が発生した場合は適切に対応します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ
▲