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-localdomain.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-localdomain.txt
localhost           RELAY
127.0.0.1           RELAY
IPv6:::1            RELAY
example.jp          RELAY   ・・・ 自ドメインは、中継許可
192.0.2             RELAY   ・・・ 自ネットワークは、中継許可
IPv6:2001:db8       RELAY   ・・・ 自ネットワークは、中継許可

GreetPause:localhost            0
GreetPause:127.0.0.1            0
GreetPause:IPv6:::1             0
GreetPause:example.jp           0   ・・・ 自ドメインは、遅延なし
GreetPause:192.0.2              0   ・・・ 自ネットワークは、遅延なし
GreetPause:IPv6:2001:db8        0   ・・・ 自ネットワークは、遅延なし
access-40-reject.txt

受信拒否、中継拒否のリストは、必要に応じてそれぞれのサイトでメインテナンスして下さい。
設定しておいたほうが良いブラックリストは、以下にあります。
http://www.xurb.jp/sendmail-access-file/access-40-reject.txt

access-80-greetpause-JP-IPv4.txt

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

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

access-80-greetpause-JP-IPv6.txt

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

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

access-81-greetpause-1sec.txt

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


アクセス・カウント:

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