.adsl などという存在しないTLDを振っているサイトからのアクセスがここ1年ほど急増していました。ふつうなら「妙にアクセス数が増えているサイトは確認でき次第ブロックする」という事をサイト管理者はしているのでしょうが、こいつは .htaccessファイルでは対処できません。
お引き取り願いたいホストからのアクセスを遮断する場合にもっとも簡単な方法はhttpdのベースディレクトリの.htaccessファイルの<RequireNone>ディレクティブに Require (not) host ホスト名を記述する事だと思います(Apache 2.4以降)。
<RequireAll>
Require all granted <-- 全てのアクセスを一旦許可 Require not host ホスト名 <-- 特定のhostを不許可 Require not ip IPアドレス/マスク <-- 特定のIPアドレスを不許可 </RequireAll>
ふつうはこのhttpdレベルで防いでくれます(弊害もありますが)。
ところがここに
Require not host hn.kd.ny.adsl
と記述したとすると、httpdがアクセスチェックを行い「hn.kd.ny.adslなんてホストはねーぞ」とエラーログを吐きまくります。全てのアクセスごとに。。。
そこで伝家の宝刀ipfilterの登場です。
が、「hn.kd.ny.adsl」のIPアドレスがわかりません。
.adslなんていうTLDは存在しないのでwhoisが聴きに行く先すらないのです!
ちょっとググってみたら案の定先人がいて知恵を披露してくれていました。
Special Tnx !
ヺレサイト
hn.kd.ny.adslとの戦い
このCIDRアドレスをipfilterに記述します。
そして6時間経過。。。。
なんと言うことでしょう!毎日毎日、さらに毎日クロールしていやがったhn.kd.ny.adslからのアクセスがなくなったではありませんか!
そして更に半年が経過。。。。日々.adslのアクセスをチェックしていますがアクセスは防げているようです。現状では。