Sendmailで、日本以外からの接続に対して GreetPause(タールピット)を適用する。

  1. sendmailの設定とaccessファイル
  2. accessファイル

1. sendmailの設定とaccessファイル

SendmailのデフォルトのGreetPauseを数10秒に設定して、日本に割り当てられたIPアドレスをaccessファイルで1秒程度に設定します。
デフォルトを1秒程度に設定して、日本以外に割り当てられたIPアドレスをaccessファイルで数10秒に設定しようとすると、accessファイルに記述するIPアドレスが膨大になってしまいます。
日本に割り当てられたIPアドレスに対しても、稀にSMTPのプロトコル違反で最初のメッセージを待たずにコマンドを送信してくるホストもあるので、0秒にせずに1秒程度を設定します。

SendmailのデフォルトのGreetPauseは、sendmail.mcで遅延時間をミリ秒単位で設定します。
例えば、30秒の遅延時間にするには、以下のように設定します。

FEATURE(`greet_pause', `30000')

accessファイルは、設定の変更の頻度や設定の種類によって、いくつかのファイルに分割しておき、それらを統合して最終的なaccessファイルを生成するようにすると管理しやすくなります。
どのような分割でも自由ですが、意図したとおりの順番でファイルを統合できるように、ファイル名の途中を番号にしておきます。

ファイル名想定変更頻度設定内容
access-00-localnet.txt自ドメインの中継許可
access-40-reject.txt接続拒否のホストやIPアドレス
access-80-greetpause-JP-IPv4.txt日本に割り当てられたIPv4アドレス
access-80-greetpause-JP-IPv6.txt日本に割り当てられたIPv6アドレス
access-81-greetpause-1sec.txt日本以外でもGreetPauseを日本と同様の設定にするドメインやIPアドレス

分割したaccessファイル ( access-*.txt ) は、以下のように統合してaccessファイルを生成し、makemapコマンドでaccess.dbを生成します。

cat access-*.txt > access
makemap hash access.db < access

2. accessファイル
access-00-localnet.txt

ループバック・アドレスや自ネットワークの受信許可です。


access-40-reject.txt

設定しておいたほうが良い受信拒否リストです。
受信拒否、中継拒否のリストは、必要に応じてそれぞれのサイトでメインテナンスして下さい。
access-40-reject.txt

access-80-greetpause-JP-IPv4.txt

日本に割り当てられたIPv4アドレスに対してGreetPauseを1秒にするファイルは、約4万3千行あります。(2022年6月)
access-80-greetpause-JP-IPv4.txt

Sendmailのaccessファイルは、CIDRで設定できないため、バイト境界(クラスA、クラスB、クラスC)での設定になります。
IPv4のアドレス枯渇といっても、若干の新規割り当てやアドレス移転により、日本への割り当ては変わりますので、1年に1回程度は、地域インターネット・レジストリの情報より更新することが望まれます。

access-80-greetpause-JP-IPv6.txt

日本に割り当てられたIPv6アドレスに対してGreetPauseを1秒にするファイルは、約225万行あります(2022年11月)。
ファイル・サイズが大きいためZIP圧縮してあります。ダウンロード後、解凍してご利用下さい。
access-80-greetpause-JP-IPv6.zip

Sendmailのaccessファイルは、プリフィックス長を指定できないため、16ビット境界(IPv6表記のコロンの区切り)での設定になります。
地域インターネット・レジストリ ( RIR ) から日本への割り当てが千行以下でも、プリフィックス長が16、32、48、64以外は、16ビット境界で指定するために展開・増幅するため200万行以上になります。
日本への割り当ては変わりますので、1年に1回程度は、地域インターネット・レジストリの情報より更新することが望まれます。

access-81-greetpause-1sec.txt

日本以外でもGreetPauseを日本と同様に1秒にする設定にするドメインやIPアドレスを設定します。
必要に応じてそれぞれのサイトでメインテナンスして下さい。
access-81-greetpause-1sec.txt


改訂履歴
2022/11/29 IPv6のGreetPauseのファイルを追加
2020/12/30 公開。