雑文発散

«前の日記(2014-10-21) 最新 次の日記(2014-10-23)» 編集
過去の日記

2014-10-22 [長年日記]

[Fluentd][Elasticsearch] DDD (DoS Driven Development) を始めよう

第三tDiary.Net への DoS が発生した時に「どこからだ?」と探すのに、grep とか awk とか sort とか使って、次のように IP アドレスを特定している。

% cat tdiary_access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10

これでアクセスが多い IP アドレスの上位10個が表示される。例えばこんな感じ。まぁ、いちおう IP アドレスの詳細は隠しておこう。

% cat access.log | awk '{print $1}' | sort | uniq -c | sort -n | tail -10
   7968 107.x.x.x
   9960 74.x.x.x
  15081 104.x.x.x
  15082 104.x.x.x
  15109 104.x.x.x
  15200 104.x.x.x
  15902 74.x.x.x
  17336 68.x.x.x
  17712 68.x.x.x
  17866 68.x.x.x

現在ほとんど更新されていない日記へのアクセスも多くて、それらの合計が15,000件をオーバーしているとか、明らかに異常な状態ではある。ちなみにこの例のログは weekly ローテーションの設定をしていて、まだローテーション前の状態(つまり、まだ、今週の合計値ではない)。

で、今は上記の方法で IP アドレスを特定し、iptables の REJECT に設定して BAN しているのだけど、そろそろそういう時代じゃないよな、という思いが募ってきた。

世の中では Fluentd + Elasticsearch + Kibana によるログ監視が流行ってたりするようだし、ちょっとその構成を作って、DoS アクセス元の特定をブラウザベースで行える環境を作ってみよう。

DoS から始まる開発、DoS Driven Development の始まりである。

つづきの日記へ