過去の日記: 2002/06

以前の日記らしきもの。

戻る


2002/06/30(Sun) [ セキュリティホール ]

今度は OpenSSH にセキュリティホールが見つかっています。その他にも、他にもいろいろとセキュリティホールが見つかっていますので、セキュリティホールの情報には気をつけた方が良さそうです。

Apache には、既に exploit や worm も出回っているようで、もしかしたら、Windows の Nimda クラスになる可能性があるそうです。

とりあえず、ApacheOpenSSH はバージョンアップをしておいた方がいいと思います。


2002/06/23(Sun) [ Apache にセキュリティホール ]

先日、Webサーバとして広く利用されている Apache にセキュリティホールが見つかったため、その入れ換え作業に追われた管理者の方も多いと思います。まだ、バージョンアップされずに、放置されているサーバも多いので、まだのところは入れ換えを・・・と言いたいところですが、なかなか時間的、組織的、経営的にも難しいと言うところも多いのかもしれません。

さすがに、今回の Apache のセキュリティホールはほぼ全てのバージョンに影響するのでバージョンアップしないと危険な気もしますが・・・。ファイアウォールで防げるものではないですし。

Apache のセキュリティホールについては、セキュリティホール memo6月19日 の部分が非常によくまとまっています。

今回は、 Apache のバージョンを隠して、無駄な情報を相手に与えない設定方法をメモ。

httpd.conf
--
ServerSignature Off
ServerTokens ProductOnly

の両方を加えて Apache を再起動すれば、外部から Apache のバージョンを調べるのは難しくなります。実際に調べたければ、http ヘッダを見れば分かります。

ターミナルで、次の3行を入力します。GET ... の行の次は改行です。上のように設定していれば、 Server 行に Apache のバージョンが表示されません。

$ telnet <対象ホスト> 80
GET / HTTP/1.0

...
Server: Apache
...

デフォルト状態では、以下のようになります(例)。他のモジュールを使用している場合、モジュール名が後に付きます。

Server: Apache/1.3.26 (Unix) PHP/4.2.0

単なるバージョン情報の隠蔽ですので、あまり効果はないかもしれませんが、悪意あるユーザに対して必要以上の情報を与えないようにできます。

どちらにしても、出来る限り最新バージョンか、セキュリティパッチの当たったパッケージなどを使うようにすることをお奨めします。

PHP などでは、PHP マニュアルUser Contributed Notes にもあるように、php.ini を以下のように設定しておくことで、Apache と同じように、無駄な情報を与えないようにすることが可能です。

php.ini
--
expose_php=Off 
display_errors=Off

開発・テスト中は必要ありませんが、実際に稼動させるサーバでは設定しておいた方がいいと思います。


2002/06/16(Sun) [ パスフレーズなしで ssh ログイン ]

今月号の UNIX USER 2002年7月号は、DJB を使ったインターネットサービスについての特集で、非常に勉強になった。DJB のツールでは、 clockspeed と publicfile というものがあったとは知らなかった・・・。

あと、パスフレーズ入力せずに ssh でログインできると何かと便利なので、少し試してみた。一応、そのメモ。

ファイルの同期などで、暗号化した状態でコピーしたり、cron で他のネットワーク上のマシンのバックアップをなどには非常に使えるかもしれない。

まず、ログインする側の準備。Linux で、「test(パスフレーズ無しでログインしたいユーザ)」を作成し、認証鍵の作成。

ログイン元
--
# useradd test
# su test -c 'ssh-keygen -N "" -t dsa'

ここでは DSA 鍵を作成しているが、別に RSA 鍵でも問題ない。 -N オプションでパスフレーズ無しで設定

コマンドが終了すると、~test/.ssh/id_dsa.pub というファイルが作成されるので、ファイルをリモートマシンにそのファイルを送る。

次にログイン先のマシンの設定

ログイン先
--
# useradd test
# mkdir ~test/.ssh
# chown test.test ~test/.ssh
# cp <id_dsa.pub(受け取った認証鍵ファイル)> ~test/.ssh/authorized_keys
# chmod -R og-rx ~test/.ssh

これで、ログイン元から ssh でログイン先にログインできれば成功。

もし、失敗した場合は、パスフレーズを要求される。その場合は、ログイン元、ログイン先の権限が間違っていることが多いので、確認すること。SSHのプロトコルバージョンが違っていても、パスフレーズを要求される。その場合は、SSH のバージョンアップをした方がいいかもしれない。


2002/06/09(Sun) [ Mozilla ]

やっと、Mozilla 1.0 がリリースされました。0.7 くらいから使っていましたが、そのときに比べて、最近の Mozilla は使い勝手が良くなりました。まだ、Javascript や CSS 関係で少し問題がありそうな気もしますが、十分使えるような気がします。Mozilla の DEMO などもあり、なかなか使えそうな機能がいくつか紹介されています。

日本のもじら組から、Mozilla 日本語パック(JLP)や、はじめての Mozilla 1.0 というドキュメントなども出ています。これには、Mozilla に関するインストールから詳細な設定方法まで、非常に多くの役に立つ情報が記載されています。

近いうちに、Mozilla を元にして開発されている Netscape 7 もリリースされることになると思います。

と言うわけで、時間がないのでこれくらいで。


2002/06/02(Sun) [ PHP モジュール ]

周りでは、FIFAワールドカップで盛り上がっているような気がしますが、それほどサッカーに興味がないのと、仕事関係で何かと忙しいのでいつも通りの生活です。テレビでは、チケットが届かなくてかなり苦労している人も多いようでしたが・・・。

このページも、作成から一年くらいになりました(途中で移転していますが)。ほとんど個人的なメモを載せている状態なので、あまり他の人には役に立っていないとは思いますが、自分にとっては、コマンドやツールのインストールのやり直しの時などに、意外と役に立っていたりします。

という訳で、またいつも通りのインストールメモですが。

PHP で PDF ファイルを作成

PDFlib は、Adobe 社が開発した PDF (Portable Document Format)ファイルを作成するためのライブラリです。PDFlib を使用することで、PHP からでも、PDF ファイルを作成することができます。

非商用の場合は特に問題ありませんが、商用利用の場合は商用ライセンスが必要のようです。詳しくは、PDFlib に含まれているドキュメントを参照して下さい。

PDFlib の取得は http://www.pdflib.org/ から行って下さい。また、それぞれのプラットホーム用にコンパイル済のバイナリが置かれていますが、ここでは、ソースからインストールします。

PDFlib のインストール

$ wget http://www.pdflib.org/pdflib/download/pdflib-4.0.2.tar.gz
$ tar zxvf pdflib-4.0.2.tar.gz
$ cd pdflib-4.0.2
$ ./configure
$ make
$ make test

$ cd test
$ ./pdftest

pdftest.pdf が作成されるので、Acrobat Reader や xpdf などで確認。問題なければインストール。

$ su
# make install

インストール後に、以下のように、PHP を再度し直す必要があります。ここでは、php 4.2.1 を使用しています。--with-pdflib 以外のオプションについては、必要に応じて追加、削除して下さい。

$ tar jxvf /usr/local/src/SOURCE/php-4.2.1.tar.bz2
$ cd php-4.2.1
$ ./buildconf
$ ./configure --enable-inline-optimization \
              --with-apxs=/usr/local/apache/bin/apxs \
              --with-pgsql=/usr/local/pgsql \
              --without-mysql \
              --enable-mbstring \
              --enable-mbstr-enc-trans \
              --enable-mbregex \
              --with-pdflib

$ make
$ su
# make install
# /usr/local/apache/bin/apachectl start

インストールに成功して、Apache を再起動すると、PHP の pdf 関数が使用できるようになります。PHP マニュアルpdf 関数を参考にして、PDFファイルが作成できるかテストしてください。

namazu モジュールのインストール

PHP で namazu(日本語全文検索システム) を使用することができます。namazu は、ウェブサイトや、ドキュメントの検索エンジンとして使用できます。

namazu モジュールの入手は、ftp://night.fminn.nagano.nagano.jp/php4/ から可能です。 php4_namazu-2.1.0.tar.gz (2002/06/02時点での最新版)をダウンロードしてください。

以下のように、cvs リポジトリから最新版を入手することも可能です。

$ cvs -d:pserver:cvsread@cvs.php.net:/repository login

パスワードの入力を要求されますので、「phpfi」と入力します。

$ cvs -d:pserver:cvsread@cvs.php.net:/repository co pear/PECL/namazu

と入力すると、ダウンロードが開始されます。

namazu モジュールが置いているディレクトリに移動して、コンパイルします。

$ cd pear/PECL/namazu/
$ phpize
$ ./configure --with-namazu
$ make
# make install
# vi /usr/local/lib/php.ini

namazu モジュールを読みこむように php.ini に追加、修正します。namasu.so がインストールされた場所と php.ini に指定されている場所が同一かどうかをチェックしてください。

/usr/local/lib/php.ini
---------------------------------------------------------------------------
; namazu.so がインストールされた path を指定
extension_dir = /usr/local/lib/php/extensions/no-debug-non-zts-20020429
; 次の行を追加
extension = namazu.so
---------------------------------------------------------------------------

最後に、Apache を再起動すれば、namazu の関数が使用できるようになります。

# /usr/local/apache/bin/apachectl restart

namazu モジュールの使い方は、ソースに含まれているドキュメントを参考にしてください。


戻る