10月 29

mod_security2 で Core Rule Set に入っている base_rules ディレクトリにあるすべての設定を使ってみると、結構問題がある

せっかく mod_security2 と Core Rule Set をセットアップしたので、slowDoS攻撃以外にも
いろんな攻撃から防衛できるようにしようと欲張りたくのが人情というものです。

(しかし、試した結果、結構難があることがわかりました)

「base_rules」というディレクトリが Core Rule Set に入っています。
base」ってことは日本では「基本」であり「土台」ってことになります。
さぞかし安定していてそのまま使えて便利なのかな?と思ってしまいますね。
むしろ使わないと負けみたいな雰囲気です。

続きを読む »

10月 28

mod_security2 による slow DoS 攻撃対策 (3) Core Rule Set を導入、カスタマイズして、slow DoS 攻撃から身を守る

前回までの作業で、mod_security2 のApacheへの組み込み、および
その設定ファイル集である Core Rule Set の準備が完了しました。

crsでは、目的ごとに、それぞれ設定ファイルが分けて作られています。

たぶん、SQLインジェクション攻撃からWebアプリケーションを守る
modsecurity_crs_41_sql_injection_attacks.conf

たぶん、クロスサイトスクリプティング攻撃からWebアプリケーションを守る
modsecurity_crs_41_xss_attacks.conf

ブルートフォース攻撃から防衛するための
modsecurity_crs_11_brute_force.conf

…みたいな感じで、いろいろな設定ファイルが用意されています。

今回はこれらの中から、
modsecurity_crs_11_slow_dos_protection.conf
だけを使用し、
『slow DoS』攻撃から防衛する設定 だけ を行います。
続きを読む »

10月 20

mod_security2 による slow DoS 攻撃対策 (2) mod_security2 に最新の Core Rule Set を使えるように設定する (使えるようにするだけで、ルールはひとつも入れないからっぽの状態をつくる)

いよいよ mod_security2 の設定をつくり、攻撃から身を守れるようにしていきます。

ただ、難問が待っています。

この mod_security2 って奴、設定項目が膨大で、理解するのに(たぶん)大変苦労する点です。

まあ、マニュアルをみてみればわかるのですが…
http://sourceforge.net/apps/mediawiki/mod-security/index.php?title=Reference_Manual

項目が多すぎてさっぱりわかりません。
Configuration Directives の項目を今見たら、76項目ですか?
使いこなせるようになるには、ちょっとお時間がかかっちゃいそうです。

しかし心配は無用。
cookpadのようなカンジの、mod_security2レシピ集があるんです。

それが modsecurity_crs http://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/
です。(crs = Core Rule Set の略)
本稿執筆段階では 2.2.5 が最新版です。

続きを読む »

10月 04

mod_security2 による slow DoS 攻撃対策 (1) CentOS 5.8 に mod_security2 をインストール だけ する

先日はslowhttptestの威力により、当ブログサーバが陥落しサービス停止に陥りました。
このままではまずいです。そういうわけで…

 

本シリーズでは slowhttptest で試験することのできる4種類の slow DoS 攻撃から
mod_security2 を導入することで防衛することを目標にします。

 

しかし実際セットアップを試してみて、動くことは動きました。
でも、ぶっちゃけ mod_security2 の書き方は難解でした!
真面目に一から書く方法は僕もぜんぜんわかりません。

 

そこで、
本稿ではまず mod_security2 を CentOS 5.8 (x64) の標準的なモジュール構成による
Webサイトに導入 だけ して動作はさせない、というところまでを紹介します。
本稿では いったんすべての mod_security2 の設定は OFF にして、設定の仕方は
次回に回します。

続きを読む »

9月 27

MySQLのデータベースを、データベースごとに別々の物理ディスクに分散配置するには

以前、MySQLデータベースの配置先をまるごと別の領域に移転する方法を紹介しました[ 1, 2, 3 ]。

これをさらに、その中のデータベースごとに、保存先を変えることができたなら。
別々のHDDやSSDを用意して、特定のデータベースだけ移動することで、
負荷分散や、容量不足への対応が可能になります。

たまたま「MySQL symbolic link」で検索したところ、どうもできるらしい!(←これ、ちょっとわかりづらい)ことに気がつきました。
今回、実際やってみたので、レポートします。
続きを読む »

9月 22

MySQLのデータベースサイズをメール通知させる(成功)

昨日は本気を出していなかったので、今日は本気を出します。

 

コマンドラインから、ひとつのデータベースのサイズを出してみます。

[testserver]# mysql -e "SELECT SUM(data_length)/1024/1024 AS total_db_data_in_MB FROM information_schema.tables WHERE table_schema = 'mysql'"
+---------------------+
| total_db_data_in_MB |
+---------------------+
|          0.53464740 |
+---------------------+

ほら、これにて一件落着しましたね。

※ mysql にパスワードを設定している場合は mysql -u アカウント名 –password=パスワード -e “…” となります。

 

…ほぼ

http://d.hatena.ne.jp/mabots/20090804/1249379971

を転載しただけですが…。

 

続きを読む »

9月 21

MySQLのデータベースサイズをメール通知させる(失敗)

MySQLを、ちっこいけど高速なストレージ(SSDとか)に移動して使おうと思ったけど

 

 

データベースを入れているストレージが満タンになってシステム停止しちゃうのが怖い!!

 

 

そこで目標

  • データベース全体のサイズが知りたい
  • 複数のデータベース、それぞれのサイズもないとどのデータベースのせいで一杯かわからないよ
  • みやすくMB単位で。
  • 毎日レポートしてほしい

これをやってみましょう。

 

続きを読む »

9月 20

CentOS 5.8 に DoS攻撃(試験)ツール slowhttptest をインストールする

slowloris に続いて、もっと攻撃パターンの多彩なツール slowhttptest を見つけたので
使い方を書いておきます。

よいこの みんなへ !

slowhttptest は とっても あぶないから
code.zobe.jp や おともだちのサーバに向けて
つかうのは やめましょう!
おとうさん おかあさんと
いっしょに つかってね!

置き場所はこちらです。
http://code.google.com/p/slowhttptest/

見に行くと
slowhttptest
Application Layer DoS attack simulator

と書いてあります。

simulator? いやいやご冗談を。ちゃんとうちのサーバ落ちましたよ。

続きを読む »

9月 19

CentOS 5.8 の yum で RPMForge レポジトリを使えるようにするには

ぐぐると出てきます。

とはいえ、またなんですが、書きます。
環境は CentOS 5.8 x64 の場合になります。

の前に、CentOSのwikiに、そもそも一覧がどちゃっと書いてあります。
http://wiki.centos.org/AdditionalResources/Repositories

そこにこう書いてあります。
Third Party Repositories
WARNING: These repositories are not provided nor supported by CentOS.
(警告: うちの提供してるレポジトリじゃないから、サポートしないよ!)

英文とはいえ、ちゃんとレポジトリごとの説明が書いてあって、goodです。

みていくと「latest upstream versions of PHP, Python, MySQL」…つまり
PHPやMySQLなどのコアコンポーネントを、CentOS標準のバージョンよりも
もっと新しいバージョンのものに置き換えることのできる、そのためのリポジトリがありますね。

他にも Google provides packages for the google-chrome browser, Google Earth, and other applications.
ぐーぐる先生が Chrome や Google Earth を楽にインストールするために建てているリポジトリもあるみたいです。
遊び甲斐がありそうです。

閑話休題。
本稿では RPMForge レポジトリを有効にしてみます。

続きを読む »

9月 18

CentOS 5.8 の yum で epel レポジトリを使えるようにするには

ぐぐると出てきます。

 

 

まあ、念のため書きます。

環境は CentOS 5.8 x64 の場合になります。

 

 

まずはepelレポジトリのサイトに行って、最新版のありかを探します。

EPEL – FedoraProject

2012/09/11現在だと
「How can I use these extra packages? 」
と書いてあるセクションに

If you are running an EL6 version ,please visit here to get the newest ‘epel-release’ package for EL6: The newest version of ‘epel-release’ for EL6
If you are running an EL5 version ,please visit here to get the newest ‘epel-release’ package for EL5: The newest version of ‘epel-release’ for EL5

と書いてあります。

続きを読む »

古い記事へ «