March 01, 2007

mod_auth_mysqlをインストールしてみる

興味本位でmod_auth_mysqlを会社のテストサーバーにインストールしてみたので、手順の説明。

テスト環境:
OS:RHLinux9
Apache:v2.0.53
Mysql:v4.0.23

まずはソースをココからダウンロード

SourceForge : mod_auth_mysql

以下手順
ソースを解凍し、ディレクトリに移動

#tar zxvf mod_auth_mysql-2.8.1.tar.gz
#cd  mod_auth_mysql-2.8.1
#ls -l
-rw-r--r--    1 root     root         3356 12月 15  2004 BUILD
-rw-r--r--    1 root     root         3565 12月 15  2004 CHANGES
-rw-r--r--    1 root     root        13630 12月 11  2004 CONFIGURE
-rw-r--r--    1 root     root          434 12月  8  2004 README
-rw-r--r--    1 root     root        37995 12月 15  2004 mod_auth_mysql.c

とりあえずBUILDの中身を見てコンパイル方法をチェックしExampleの指示通りに実行

#apxs -c -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c
(-L/usr/lib/mysqlと -I/usr/include/mysql オプションはサーバーの環境に合わせてパスを変更してください)

コンパイルが終わるとファイルがいくつか出来ています

#ls -l
-rw-r--r--    1 root     root         3356 12月 15  2004 BUILD
-rw-r--r--    1 root     root         3565 12月 15  2004 CHANGES
-rw-r--r--    1 root     root        13630 12月 11  2004 CONFIGURE
-rw-r--r--    1 root     root          434 12月  8  2004 README
-rw-r--r--    1 root     root        37995 12月 15  2004 mod_auth_mysql.c
-rw-r--r--    1 root     root          927  3月  1 11:45 mod_auth_mysql.la
-rw-r--r--    1 root     root          333  3月  1 11:45 mod_auth_mysql.lo
-rw-r--r--    1 root     root        87064  3月  1 11:45 mod_auth_mysql.o
-rw-r--r--    1 root     root            0  3月  1 11:45 mod_auth_mysql.slo

Apache2系ではmod_auth_mysql.laを使うらしいので、BUILDの指示通りapxsを実行

#apxs -i mod_auth_mysql.la

実行が完了すると/usr/local/apache2(Apacheインストールディレクトリ)下のmodulesディレクトリ下にmod_auth_mysql.soが出来ます。

#ls -l /usr/local/apache2/modules
-rw-r--r--    1 root     root         8440  3月 28  2005 httpd.exp
-rwxr-xr-x    1 root     root      7083747  3月 28  2005 libphp4.so
-rwxr-xr-x    1 root     root        74199  3月  1 11:47 mod_auth_mysql.so

これまた指示通りhttpd.confにLoadModuleの設定する

#vi httpd.conf
LoadModule mysql_auth_module modules/mod_auth_mysql.so
#
#Apacheを再起動して組み込み完了
#apachectl restart
#

あとはMySQLに認証用のDBとテーブルを作成

データベース名: webauth
テーブル名: user_pwd
create table user_pwd (
  name varchr(30) not null,
  pass varchar(30),
  primary key (name)
);

最後に.htaccessをこんな感じで作成

AuthName "mod_auth_mysql Page"
AuthType Basic
require valid-user
AuthMySQLHost localhost
AuthMySQLDB webauth
AuthMySQLUser mysql
AuthMySQLPassword fugafuga
AuthMySQLUserTable user_pwd
AuthMySQLNameField name
AuthMySQLPasswordField pass
AuthMySQLCryptedPasswords Off

で.htaccessを設置したディレクトリにブラウザでアクセスして、ベーシック認証画面が表示されDBに登録したユーザー名とパスワードでログインが出ればインストール成功です。

参考サイト:
MySQLを使ったデータベース認証
http://tsuttayo.sytes.net/apache/access/db/

投稿者 nitoka : 12:26 PM | コメント (0) | トラックバック

October 27, 2006

FreeBSDでアカウントの属するグループを変更する

仕事で調べたので忘れないようにメモ。
そんなの知らなかったの?って笑われてしまいそうですが、知りませんでした。
なんせ、imanagerとかPleskばっかり使ってサーバーの管理してたもので。。。

コマンド:
pw usermod -n user-hoge -G wheel,ftp,www

これで変更可能です。もっと詳しくは「man pw」を見てみればわかりますが。

投稿者 nitoka : 02:32 PM | コメント (0) | トラックバック

October 18, 2006

Apacheでサーバー情報を非表示にする

FirefoxのLiveHTTPHeadersプラグインなんかをいれると、HTTPヘッダー情報が見れるのですが、その中に「Server」という項目があり、サーバーの情報(ApacheのバージョンやPHPのバージョンなど)が表示されています。

こいつを表示させておくと、クラッカーにクラッキングするための情報を教えているようなものなので、以下の設定で余計な情報は非表示にしたほうがいいようです。

ServerTokens Prod

以下は、マニュアルからの抜粋。

ServerTokens Prod[uctOnly]
サーバは (例えば): Server: Apache といったように送ります。
ServerTokens Major
Server sends (e.g.): Server: Apache/2
ServerTokens Minor
Server sends (e.g.): Server: Apache/2.0
ServerTokens Min[imal]
サーバは (例えば): Server: Apache/2.0.41 といったように送ります。
ServerTokens OS
サーバは (例えば): Server: Apache/2.0.41 (Unix) といったように送ります。
ServerTokens Full (もしくは未指定)
サーバは (例えば): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2 といったように送ります。

投稿者 nitoka : 01:57 PM | コメント (0) | トラックバック

October 04, 2005

Apache log rotate

某クライアントの要望でApacheのアクセスログを日ごとに分割して欲しいと要望があり、過去そんな設定をしたことがなかったので、Googleで調べてみた。

Apache2 系は組み込みのlogrotateの機能が充実していて、日ごとのログに分割できるみたいなのだが、Apache1.3系ではカスタマイズがあまりできないらしい。

だが、cronologをサーバーにインストールすればApache2系のようにな感じでLogファイルのカスタマイズができるらしい。

投稿者 nitoka : 12:57 AM | コメント (0) | トラックバック