このパッチは、qgreylist(qmailにgreylistingの機能を付加するツール)に、tarpitting(応答遅延)とブラックリストの機能を付加します。
パッチを適用することによって、greylistingする前に以下のことを実行します。
- ブラックリストに定義されたIPアドレスからの接続を拒否します。
- tarpitting(応答遅延)を行うようになります。(もちろん、ロジックを修正することなく、この機能を有効化または無効化することができます)
このパッチを適用するメリットは以下のとおりです。
- ブラックリスト
- 同一ホストから、2分から1日の間隔(qgreylistのデフォルト設定)で送信してくるスパマーを除外できます。(手動登録)
- tarpitting(応答遅延)
- 同一ホストから、2分から1日の間隔(qgreylistのデフォルト設定)で送信してくるスパマーをSMTP応答遅延で除外できる可能性があります。(blacklist管理の手間が減るかもしれない)
- 再送信できない正当なsmtpサーバーがある場合、応答遅延を待つことができればwhitelistに追加しなくても救済できる(whitelist管理の手間が減るかもしれない)
このパッチにS25Rを実装するパッチ(Qgrey)を組み合わせることによって、qmailでもtaRgreyに似たような動作が実現できます。これにより、副作用の少ない強力なスパム対策が実現できる可能性があります。
qgreylistはインストールおよび設定済みとして説明します。
- ここからパッチをダウンロード
- (S25Rを実装する場合は、先にS25R(Qgrey)のパッチを適用する)
- qgreylistをバックアップ
# cd <qgreylistがあるディレクトリ>
# cp -p qgreylist qgreylist.org
- ディレクトリ作成
# mkdir /var/qmail/blacklist
# chown qmaild /var/qmail/blacklist
- パッチ適用
# patch < ./qgreylist-0.3-tarpit-0.2.patch
- blacklist
- ブラックリストのディレクトリパスです。このディレクトリにIPアドレスをファイル名とするファイルを作成すると、そのアドレスからの接続が拒否されます。(whitelist、greylistと扱い方は同等です)
- tarpittingmode
-
tarpitting(応答遅延)するタイミングまたは無効化を指定します。0-2を入力します。
- tarpitting(応答遅延)しない。
- 知らないホストだけtarpitting(応答遅延)を実施する。
- 全てのホストにtarpitting(応答遅延)を実施する。
- tarpitsec
- tarpitting(応答遅延)する秒数を指定します。
- tarpitwaitaccept
-
tarpitting(応答遅延)を実施した結果、待っていたホストをすぐに次のsmtpdに引き渡すかどうかを指定します。0または1を指定します。
- 続けてgreylistingを実施する
- すぐに次のsmtpdに引き渡す(SMTP接続を許可する)
- このパッチの適用により、100%スパムを除外できることはありません。もちろん、保障はしません。
- このパッチの適用により、いかなる損害等が発生したとしても私は責任を負いません。自己責任でご使用ください。
-
運用してみて、応答遅延が効いているのかどうかわからない。本当に待っているのか、それとも接続側のタイムアウトを割りこみとして拾えてないのか???ホスト数で数えると、greylistに入ってきたホストの9割ぐらいはじいてそうな感じ(再送信してこない)
-
blacklistはipベースよりホスト名ベースで実装したほうがいいかも。正規表現使えるから。となるとS25Rも別のパッチ当てなくてもこのパッチだけで実装できるかも。複数のパッチを当てようとしても当たらないなんてことなくなるし。