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. 監視とトラブルシューティング: ログを確認し、問題が発生した場合は適切に対応します。
関連記事: