CentOS6.5にSkypeをインストール

CentOSにSkypeを導入してみました。
参考:http://wiki.centos.org/HowTos/Skype

◆Skype on CentOS

$ sudo yum install --enablerepo=epel qtwebkit.i686
$ sudo yum install webkitgtk.i686

64bitの場合は以下の32Bitライブラリが必要なようなのでインストールします。

$ sudo yum install alsa-lib.i686 libXv.i686 libXScrnSaver.i686 \
gtk2-engines.i686 PackageKit-gtk-module.i686 \
libcanberra.i686 libcanberra-gtk2.i686

SkypeのHPから最新のSkypeをダウンロードします。
http://www.skype.com/ja/download-skype/skype-for-computer/

ページのプルダウンから”Dynamic”を選択します

skype-4.3.0.37.tar.bz2

Skype本体の展開と配置をします

$ sudo mv ~/Downloads/skype-4.3.0.37.tar.bz2 /usr/local/src/
$ cd /usr/local/src/
$ sudo tar xjvf skype-4.3.0.37.tar.bz2 -C /usr/local
$ sudo ln -s /usr/local/skype-4.3.0.37/ /usr/local/skype

$ sudo ln -s /usr/local/skype /usr/share/skype
$ sudo ln -s /usr/local/skype/skype /usr/local/bin/skype

起動したら怒られたので、、
skype: error while loading shared libraries: libQtDBus.so.4: cannot open shared object file: No such file or directory

libQtDBus.so.4 を提供しているパッケージを探します。

$ yum provides libQtDBus.so.4
:
1:qt-4.6.2-28.el6_5.i686 : Qt toolkit

qt-4.6.2-28.el6_5.i686 をインストールします

$ sudo yum install qt-4.6.2-28.el6_5.i686

Skypeの起動でOK
$ skype

DoSHelper導入効果 (プロキシ踏み台対策)

DoSHelperを導入してから、約1ヶ月たちました。
サーバリソースにも変化は見られず、coreも吐かすに安定稼働しています。

導入してみてわかったこと。

◆踏み台対策
 アクセスログに以下のようなログが出力されてました。
 メソッド(GET)の後ろに、”http://”から始まるドメイン名が記載されてます。

XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:09 +0900] "GET http://www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:10 +0900] "GET http://www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:11 +0900] "GET http://www.qunar.comhttphttp/www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:12 +0900] "GET http://www.qunar.comhttphttphttp/www.qunar.comhttphttp/www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:12 +0900] "GET http://www.qunar.comhttphttphttphttp/www.qunar.comhttphttphttp/www.qunar.comhttphttp/www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:13 +0900] "GET http://www.qunar.comhttphttphttphttphttp/www.qunar.comhttphttphttphttp/www.qunar.comhttphttphttp/www.qunar.comhttphttp/www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:14 +0900] "GET http://www.qunar.comhttphttphttphttphttphttp/www.qunar.comhttphttphttphttphttp/www.qunar.comhttphttphttphttp/www.qunar.comhttphttphttp/www.qunar.comhttphttp/www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:15 +0900] "GET http://www.qunar.comhttphttphttphttphttphttphttp/www.qunar.comhttphttphttphttphttphttp/www.qunar.comhttphttphttphttphttp/www.qunar.comhttphttphttphttp/www.qunar.comhttphttphttp/www.qunar.comhttphttp/www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
XXX.XXX.XXX.XXX - - [18/Sep/2014:11:52:16 +0900] "GET http://www.qunar.comhttphttphttphttphttphttphttphttp/www.qunar.comhttphttphttphttphttphttphttp/www.qunar.comhttphttphttphttphttphttp/www.qunar.comhttphttphttphttphttp/www.qunar.comhttphttphttphttp/www.qunar.comhttphttphttp/www.qunar.comhttphttp/www.qunar.comhttp/www.qunar.com/ HTTP/1.1" 503 323 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"

どうやら、mod_proxyの設定不足をついてこのドメイン(cocopoo.com)をプロキシとし、
他のサイトにアクセスしようとしているっぽい。

中国、英国、仏蘭西圏のIPが多かったです。

設定ミスなければ複数リトライが発生するようで、同IPからの集中アクセスとみなして
DoSHelperが遮断してくれてました。

うれしい誤算です。

おもしろいことにレスポンスコード503で返却すると、その後のアクセスがビタっと止まるんですね。
レスポンスコードが異常なら、停止するツールを利用しているようでした。

doshelper

お盆のお休みを利用し、DoS攻撃を防ぐツールを開発しています。

Dos攻撃は、いまさら説明は不要ですね。
サイトにリクエストを大量に送りつけ、サーバやネットワークのリソースを使い果たしてサービス停止に追い込む。とても原始的な攻撃です。 F5 アタックによる2chのサービス停止事件

DoS攻撃の防御は、以下のフリーツールが有名です。
 ・mod_dosdetector
 ・mod_evasive

しかし、、、
これらツールは、ウェブサーバ単体の”時間あたりのアクセス数”を”しきい値”としているため、流行りの仮想化環境(クラウド)では若干メンドウな運用が発生します。

例えば、アクセス上昇が見込まれるので、ウェブサーバを一時的に追加したい。

このようなケースでラウンドロビン構成をとっている場合、サーバ追加後の全ウェブサーバの台数で割った値を”しきい値”として設定し、終了とともにサーバ削減後の値に戻さなくてはなりません。

トレンドがたびたび変わるサービスでは、この”見直し作業”がめんどかったりします
もし設定を忘れると、簡単にサービスが停止してしまいます。

なので、、、
ウェブサーバの増減に関わらず、同じ”しきい値”を参照できないか?を考えてみました。

しきい値共有にはKVSで有名な”Redis“を採用し、各ウェブサーバからはこのKVSを参照する方式でDoS制御させてみます。

# このサイトで実験しています。
# F5押下で一定数のアクセス数を越えると 503エラー を返却するようにしています。

多々あるKVSのなかでなぜRedis?については、データの永続性、高速な読み書き、Redis-Sentinelによる冗長化、yumによる簡単導入、が採用に至った理由です。

運用試験の結果は、、、こうご期待を