月: 2005年7月

SATAとPATAの混在環境

最近のマザーボートはSATAとPATA、両方のインターフェースが当り前のように着いてきます。しかし、LinuxでPATA、SATAのHDD両方が接続されている場合は簡単に構成できない場合が多いかも知れません。

Althon64のPCを組む為にASUS A8V Deluxeを購入しました。AthlonXP 2500+に接続していた80GBのHDD(/dev/hda – WindowsXPのみインストールされている)と200GB HDD(/dev/hdb – 各種Linuxのビルド・テスト環境がインストールされている)を
200GB (/dev/hda – 古い80GBのWindowsXPのパーティションのコピーとLinux)と250GB(/dev/sda – 古い200GBの各種Linuxビルド・テスト環境)に移行しました。

WindowXPのパーティションの移動はddコマンドで簡単に移動できます。今のHDDはLBAが当たり前でシリンダ数さえ合っていればddでデバイスからデバイスへコピーするだけで移動できます。CPUとマザーボードが変わりましたがXPからはWindows2000やNT様に苦労する事はありません。

苦労したのはLinuxのシステムイメージの移行です。PATAとSATAの混在環境にしたのですがブートに色々な問題が発生します。Linuxのブートプロセスはある程度知っているので、ほとんどは既に知っている問題だったのですがBIOSの設定とgrubの動作に手惑いました。

ご存知の通りLinuxはHDDの認識にBIOSを使いません。このため最初にgrubを起動したときとブート後のデバイスの順序が異なっていました。BIOSの設定とLinuxが認識するHDDのデバイスの順序が異なっていると混乱してしまいます。BIOSの設定をLinuxの認識順序と合わせる事ができるBIOSであれば、同じにすると問題を回避できると思います。Wikiには多少詳しく(?)記述しています。

分散リファラスパム

来ているところには前からアクセスがあったのだと思いますが、Botnetを利用したと思われるリファラスパム攻撃が急増しています。データベースに載せられたのかもしれませんね。

ソースIPが広範囲に分散しています。IPアドレスがばらばらなのでBotnetを利用していると思われるます。自分のネットワーク帯域ではないのでリファラスパムが有効かどうかも確認していないようです。

スパムメールの半分はBotnetから送られていると言われていますが、Webの帯域の半分はリファラ/コメントスパムのトラフィック、なんて事にならなければ良いのですが…

本当に面倒な世の中になりましたね…

WebCollege (xscreensaver) にご用心

xscreensaverにWebCollegeと言うスクリーンセーバモジュールがあります。Webからランダムにイメージファイルを取得しスクリーンに貼り付けます。このスクリーンセーバがインストールされている場合、

man webcollage

とするとこのスクリーンセーバのマニュアルページが参照できます。xscreensaverのデフォルト設定では「ランダムスクリーンセーバ」設定時にはWebCollageは使われないようになっています。それはこのスクリーンセーバがランダムに取得する画像にかなりの高確率で好ましくない画像が含まれているからです。

デフォルトで使用されないのに何故このような事を書いているか、というと私のデスクトップPCはKDEを利用しているからです。KDEを使っている場合、xscreensaverが提供するスクリーンセーバの仕組みは使わずに独自のスクリーンセーバ選択機構を使用しています。しかも、ランダムモードの場合どのスクリーンセーバを使わないか選択できません。つまりWebCollegeが使われるかも知れません。

このスクリーンセーバはRedHatやDebianでも問題になっています。

とにかく有害なスクリーンセーバを削除したい場合はrootになってから

locate webcollege | xargs rm -f

を実行しましょう。

参考:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139513
http://www.jp.redhat.com/support/errata/RHBA/RHBA-2004-443J.html
http://www.jwz.org/xscreensaver/faq.html#kde
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23311683

XMLRPC for PHPにセキュリティーホール

Secuniaから”Highly Critical”レベルとされるアドバイザリが出ていたのでxmlrpc-epiモジュールのことかと思いましたが、このモジュール利用したPHPスクリプトライブラリの脆弱性でした。

http://sourceforge.net/projects/phpxmlrpc/

利用されている方は出来るだけ早くアップデートした方がよいようです。

allow_url_fopen

追記:
現在のPHPではリモートファイル読み込みを制御するphp.ini設定としてallow_url_fopen(URL等のファイルとして読み込むフラグ)とallow_url_include(URLなどをPHPスクリプトとして読み込むフラグ)があります。php://input(標準入力用のURL。Webアプリの場合、POSTリクエストなどが読み込める)もallow_url_include=Offでは利用できません。このためallow_url_include=Offの場合、リモートスクリプトからの読み込みを防止できます。

基本的には

  • allow_url_includeは常に無効(JSONなどでなくPHPスクリプトとしてリモートデータを読む、などの場合は局所的に有効化)
  • allow_url_fopenは全く必要ないなら無効

とすると良いでしょう。

PHPを使っている方はHTTP/FTP/SSH等のプロトコルでリモートサーバ上のファイルをローカルファイルの様に読み書きできる事をご存知と思います。この機能はphp.ini設定のallow_url_fopenディレクティブで有効/無効を設定できるようになっています。PHP 4.3.4より前のPHPではこの機能のスクリプト中からも無効/有効に設定を変更する事ができました。(INI_ALLの設定項目であった)

驚いたことにPHP 4.3.4からphp.iniからしかこの設定を変更できなくなってしまいました。(INI_SYSTEMの設定項目になった)誰かがセキュリティ強化を目的として変更したのだとは思いますが、セキュリティも強化できず、有用なリモートファイルアクセス機能も使えなくする非常に拙い変更です。

例えば、phpBB(BBSアプリケーション)ではinclude/require文に不適切に処理されたユーザ入力が利用されている為、リモートスクリプトを読み込み実行できてしまう非常に深刻なセキュリティ上の問題がまた最近見つかりました。phpBBはallow_url_fopen機能が無効であっても動作するので

allow_url_fopen = Off

と設定するか必ず読み込まれる設定ファイルで

ini_set(‘allow_url_fopen’, 0);

とすると、phpBBのようなアプリケーションでも比較的安全に運用することができました。

しかし、allow_url_fopenがINI_SYSTEMの設定項目になった為、前者の方法を取ると他のアプリケーションで、場合によっては非常に有用な、allow_url_fopen機能を使えなくなってしまいました。後者の方法は、特定のアプリケーションのみの設定を変更するのに有効ですが、INI_SYSTEM設定項目であるため実際には無効に設定できなくなってしまいました。

セキュリティ上の意味は容易に理解できるであろうと、internals@list.php.net にallow_url_fopenの設定を

デフォルトOFF
INI_ALLへ変更

するように提案して見たところ議論が結構荒れています…
この設定が安全かつ不必要な機能制限が無く、最も良い設定と思うのですが…

# allow_url_fopen_includeのようにinclude/require文用の設定
# を追加するのも良いですが、デフォルトOFF、INI_ALLであるべき
# と思います。

php-rast

Rastとはネットワーク応用通信研究所が開発している全文検索システムです。

本ソフトウェアは,あらかじめ対象となる文書群から検索に必要な情報を格納するデータベースを作成しておき,それに対して検索を行う全文検索システムです.

検索方式は N-gram 方式や分かち書き方式から選べます.また,必要に応じて文字列処理モジュールを差し替えることができます.

なお,本ソフトウェアは IPA の平成16年度オープンソフトウェア活用基盤整備事業の委託を受けて開発を行っています.

このRast用のPHPモジュールを冨田冨田隆三さんが公開されています。

名古屋市立大学の冨田です

以前、全文検索エンジンRast のモジュールを公開したところ、ここでライセンス違反の可能性を指摘されて公開を止めていましたが、Rast-0.2.0 で BSD ライクな緩いライセンスに変更されたようなのでまた公開してみます。

ダウンロードはこちらからどうぞ。
http://a157.debian.co.jp/php_rast/

冨田

サンプルの動作は良い感じです。サンプルコードもざっと見てみましたが使いやすそうです。