先日の第2回静岡ITpro勉強会で聞いて,効果を確認してみる気になったtarpitting(応答の遅延)を試してみることにする.
このドメイン(rosy-kitten.org)のメイル・サーバでは,greylisting1とDNSBL2を使って迷惑メイル対策を行っている. しかしながら,5xxを返した場合3だけでなく,greylistingで450を返した場合にも,すぐにセカンダリ・サーバ4に送信を試みるspammerもかなり存在する. そこで,動的IPアドレスっぽいホストから接続された場合だけ,DNSBLによる拒絶やgreylistingによる再送要求の前にtarpittingを行ってみる5. この方法なら,FreeBSDのports collectionのPostfixとpostgreyをそのまま使用できる6.
必要な設定は以下の通り.
- “RCPT TO"が送られてくる前に,smtpd_client_restrictionなどの制限を適用する7.
smtpd_delay_reject = no
- DNSBLを引く前に,check_client_fqdn_tarpitに書かれた条件にマッチするクライアントへの返答を遅延する.
smtpd_client_restrictions =
permit_mynetworks
check_client_access regexp:/usr/local/etc/postfix/check_client_fqdn_tarpit
reject_rbl_client bl.spamcop.net
reject_rbl_client all.rbl.jp
(snip)
check_client_fqdn_tarpitの内容は以下の通り.
/^unknown$/ sleep 90
/^[^.]*[0-9][^0-9.]+[0-9].*\./ sleep 90
/^[^.]*[0-9]{5}/ sleep 90
/^([^.]+\.)?[0-9][^.]*\.[^.]+\..+\.[a-z]/ sleep 90
/^[^.]*[0-9]\.[^.]*[0-9]-[0-9]/ sleep 90
/^[^.]*[0-9]\.[^.]*[0-9]\.[^.]+\..+\./ sleep 90
/^(dhcp|dialup|ppp|[achrsvx]?dsl)[^.]*[0-9]/ sleep 90
- Greylistingなどは"RCPT TO"が送られてきてから適用する.
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_policy_service inet:127.0.0.1:10023
というわけで,しばらくこれで様子を見てみることにする…