最近、非常に多くのspamが届くようになっております。これに対抗してメイルソフトのジャンクメイル・コントロール機能の使用あるいは手動によりspamの分離、削除をおこなってきましたが、増加し続けるspamにこれ以上貴重な時間を割くのに疲れてしまいました。
そこで、zcr.jpでは、メイルサーバに接続してきた相手方メイルサーバのIPアドレスのDNS逆引きを実行し、ホスト(ドメイン)名がLookUpできない場合、メイルサーバへの接続自体を拒否する設定を行いました。
メイルの送受信において、IPアドレスからホスト名の逆引きができなければならないという取り決めは存在しませんが、zcr.jpに到来するspamの半数以上が「逆引きできないIPアドレスのホスト」から送信されているという事実があり、不本意ながら上記設定をおこなわざるを得ないと判断するに至りました。
このため、一部のホストからはzcr.jpにメイルが送れない状況が発生することになりますが、どうかご理解をいただけますようお願い申し上げる次第です。
そういうわけで、まあ、自宅サーバですので、かなりきわどい設定も可能なわけなんですが、現状では仕事場のサーバも同様の設定をせざるを得ないかな・・・などと考えております。
FreeBSDのデフォルトのメイルサーバ・ソフトは sendmailなんですが、このsendmailは、tcpwrapperとリンクできるようになっていて、アプリケイション・レベル(smtp)ではなく、TCPレベルでのアクセス制限が可能となっています。接続時にDNS逆引きを実行するわけですが、sendmailではなく、tcpwrapper がそれをおこなうため、オーバーヘッドは同じ程度かむしろ少ないのではないかと考えています。また、接続拒否(reject)の記録は、maillogに残ります。
設定自体は簡単で、 /etc/hosts.allow ファイルに記述するだけです。
# Sendmail can help protect you against spammers and relay-rapers sendmail : localhost : allow sendmail : UNKNOWN : deny ←この行を追加 sendmail : ALL : allow
同じこと(逆引きできないホストからのメイル受信拒否)をsendmail側の設定でおこなうことも、もちろん可能です。この場合は、詳細なLOGをとることが可能ですが、tcpwrapper側でやった場合は、rejectの事実と相手方のIPアドレスのみの記録となります。
接続拒否するのは、sendmailだけです。Webページへのhttp接続に関しては、なんら制限を設けてはいません。
ここまで制限しても、すり抜けてくるspamはやっぱりあるわけで、spammerとのイタチごっこは永久に続くのではないか・・・なんて・・・・(^^;)