milter-greylistでtaRgreyでmilter-greylistにtarpitの機能が取り込まれたことを紹介しました。当時はまだ取り込まれただけでリリースはされていなかったのですが、先日、開発版としてmilter-greylist 4.3.4がリリースされました。
興味のある方が簡単に試せるようにDebian GNU/Linux lenny i386用とUbuntu 8.04 LTS Hardy Heron i386用のパッケージを作成しました。
それでは、milterだけでtaRgreyを実現する方法を説明します。milter-greylist単体で実現すると設定が煩雑になるので、milter managerとmilter-greylistを連携させます。
設定
milter managerのUbuntu用インストールドキュメント通りにインストールされているものとします。Debian用のインストールドキュメントはまだHTMLで公開していないので、下書きを参考にしてください1。
ただし、milter managerは1.3.1(開発版)以降を利用してください。1.3.1のパッケージは以下にあります。
Ubuntu 8.04 LTS Hardy Heron用apt-line:
deb http://milter-manager.sourceforge.net/ubuntu/ hardy universe
deb-src http://milter-manager.sourceforge.net/ubuntu/ hardy universe
Debian GNU/Linux lenny用apt-line:
deb http://milter-manager.sourceforge.net/debian/ lenny main
deb-src http://milter-manager.sourceforge.net/debian/ lenny main
設定は以下のように変更します。
- Postfix: milterとのやりとりのタイムアウト時間を150秒にする
- milter-greylist: 125秒のtarpitに耐えた接続をホワイトリストに入れる
milter managerの設定を変更することがない点に注意してください。milter managerは環境にあわせて適切なデフォルト値を使うので、システム管理の手間を減少することができます。
Postfixは/etc/postfix/main.cfに以下の行を追加してください。
/etc/postfix/main.cf:
milter_command_timeout = 150
設定を反映するために再起動します。
% sudo /etc/init.d/postfix restart
milter-greylistは/etc/milter-greylist/greylist.confを以下のように変更します。
変更前:
racl greylist default
変更後:
racl whitelist tarpit 125s
racl greylist default
125秒のtarpitに耐えたらホワイトリスト、耐えられなかったらgreylistで救済という動作が自然に書けています。
設定を反映するために再起動します。
% sudo /etc/init.d/milter-greylist restart
最後に、milter-managerに設定の変更を検出させるために再起動します。設定の変更は必要ありません。
% sudo /etc/init.d/milter-manager restart
milter-managerの設定内容を確認すると、milter-greylistのタイムアウト時間が135秒となっているのがわかります。
% sudo /usr/sbin/milter-manager -u milter-manager --show-config
...
define_milter("milter-greylist") do |milter|
...
milter.writing_timeout = 135.0
milter.reading_timeout = 135.0
...
end
...
135秒は「デフォルトのタイムアウト時間10秒」と「milter-greylistのtarpit時間125秒」を足し合わせた時間です。これはmilter-managerが自動で検出します。
これで、milterによるtaRgrey環境が完成です。
まとめ
tarpit対応のmilter-greylistがリリース(ただし開発版)されたので、milter managerとmilter-greylistを組み合わせてtaRgreyを実現する方法を紹介しました。
milter managerもmilter-greylistもどちらも開発版を使用しているので、まだ本番環境への投入は早いですが、Debianパッケージがあるので比較的簡単に試せるようになっています。検証など興味のある方は試してみてはいかがでしょうか。問題があった場合は、それを報告し、安定版リリース時には問題が解決されているようにしたいですね。
-
次のリリースで公開する予定 ↩