2007-09-24

基本認証で、ある特定のサブディレクトリのみ認証の対象外にする方法

AAA というディレクトリで基本認証(ベーシック認証)をしている場合、そのサブディレクトリのAAA/BBBも認証対象となりますが、このBBBというディレクトリは認証の対象外にするには、BBB内の.htaccess に
Satisfy Any
と書くことにより、BBBは認証対象外になります。

このSatisfyディレクティブの機能は、デフォルトはAllで、Allow/Denyによる接続元のアクセス制限、認証によるアクセス制限について、
*All : 双方を満たす場合のみアクセスを許可する場合
* Any : どちらかを満たせばよい場合
という形になります。

今回のケースではAnyにするので、クライアントのIPアドレスがAllowによりアクセス許可になっていれば、ベーシック認証は無視されます。

2007-09-22

limitipconnを使って接続数を制限

昨日書いた OC11-ACANA と組み合わせて使ったもので、limitipconnがあります。
apacheのモジュールですが、Debianのapache2用のこのモジュールのパッケージが無かったので、コンパイルして入れました。

http://dominia.org/djao/limitipconn2.html

からダウンロードし、DSOとしてコンパイルしてインストールし、設定を書くだけです。

動画ファイルの接続数(mimeタイプは video/* )を2コネクションまで制限する設定にし、ExtendedStatus On も追記し、設定完了。簡単です。

ExtendedStatus On
<Location /video>
MaxConnPerIP 1
OnlyIPLimit video
</Location>

実際に同時に3つの動画ファイルをダウンロードしようとすると、3つ目はIE上で待ち状態になり、他のどれかがダウンロードされるまでは、ダウンロードが開始しません。

これで、また余計な帯域を使わないで済みます。

めでたしめでたし。

2007-09-21

パスワードの流出

ここ1ヶ月くらいサーバのトラフィックが急激に増加して、先週あたりから、お客さんから「ダウンロードが遅い!」と言われたり、ホスティング会社からトラフィックが多すぎるのでプランを変更して欲しいと言われました。

どうしようか考えていたところ、うちのサーバを使っている友人が「WEBサイトのパスワードが流出して困っているんだよねー」と言うではないですか。アクセス数を解析してみると、同じユーザアカウントでいろんなところから動画ファイルがダウンロードされていますよーー!というわけで、パスワードが流出していました。。。。。

どうやら過去の履歴もみてみると、かなりの数のアカウントが流出しているみたい。

というわけで、今後のことも考えて何とかしよう、と思いしらべてみましたが、なかなか無いんですね。sshのBrute Force攻撃に対応したもの等はフリーのものが沢山あるのですが。

http://www.pennywize.com というのを発見。ただ、インターフェースが英語なので、友人が「イヤだなぁ」、という始末。。。

という感じで探していたのですが、なんと、OC11にあるじゃないですか。パスワードブロックサービス OC11-ACANA (http://acana.oc11.com/) 。 早速設定してみました。UIも日本語対応ですね。基本的にpennywizeでできることは全てできるみたいだし、Brute Force攻撃に対しては、なにやら、すごい対策がされているらしい(よく読め>自分)

とりあえずフリーバージョンを使っていますが、なかなか使えます。

アカウントごとの一日の転送量や、接続元のIPアドレスが確認できます。極端に転送量の多いユーザIDの転送量をチェックしてみると、中国、韓国、台湾等の地域から同じユーザIDを使ってダウンロードしているじゃないですか!!!!! 本当に移動しながらダウンロードしているとは思えませんね。というわけで、OC11-ACANAのブロック機能でブロックしたりしています。

このOC11-ACANAのレポートを見て判ったのですが、パスワードの不正利用や、Brute Force攻撃がかなり多いですね。
あまりの多さにびっくりしました。WEB系で認証を使っているサイトにはかなりお勧めです。

1日の最大転送量を指定できるので、お客さんがすくないのにトラフィックが増えすぎて困る、ということも無さそう。

自動ブロックもして欲しいので、近いうちに有料版にアップグレードする、と友人は言っていました。