とりあえずこんな風にiptablesを設定してみたのですが、その後何気なくhttpsdのログを見ていると、
242.23.174.59.broad.wh.hb.dynamic.163data.com.cn – – [20/May/2013:10:22:32 +0900] ・・・ “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)”
242.23.174.59.broad.wh.hb.dynamic.163data.com.cn – – [20/May/2013:10:22:37 +0900] ・・・”Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)”
242.23.174.59.broad.wh.hb.dynamic.163data.com.cn – – [20/May/2013:10:22:41 +0900] ・・・ “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)”
118.170.174.59.broad.wh.hb.dynamic.163data.com.cn – – [20/May/2013:10:23:47 +0900] ・・・ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319)”
って、なんでだ〜!? 立て続けにアクセスされているじゃないかっ!
ということで調べてみたら、なるほどiptablesというのは(フィルタリングの)ルールが上から処理されていくのですね。
つまり、TCP80番ポートへのアクセスを先にACCEPTしてしまうと、それ以後にTCP80番ポートへのアクセスをDROPしてもダメなようです。
今回の例では、私はTCP80番ポートへのアクセスをanyでACCEPTする記述が先にあり、その後に
#####
# ACCESS DENY(web)
#####
iptables -A INPUT -p tcp -s 59.174.0.0/15 -d $myhost –dport 80 -j DROP
iptables -A INPUT -p tcp -s 58.48.0.0/13 -d $myhost –dport 80 -j DROP
を入れていたので、このルールが適用される事はなくなってしまっていたようです(先にTCP80番ポートへのアクセスのACCEPTが適用されているから)。
ということは、このルールをTCP80番ポートへのアクセスをACCEPTする前に記述すれば良さそう。
それでは早速順番を入れ替えて、再度しばらく様子を見てみることにします。
ひとまずこれで実験してみますが、もしかしたらデスティネーションポートなどを特定せずに、当該アドレスからの一切のアクセスを拒否するルールを先頭に書いた方が後で見やすくなるのかもしれませんねぇ。