- 追加された行はこの色です。
- 削除された行はこの色です。
* 業務でpukiwikiを使うときの設定メモ [#l243f9fe]
- ページ: [[BugTrack2]]
- 投稿者: [[pai]]
- 優先順位: 低
- 状態: 提案
- カテゴリー: その他
- 投稿日: 2007-09-07 (金) 19:57:31
- バージョン:
** メッセージ [#h085c114]
会社でpukiwikiを使う場合に、注意する点をまとめてみました。[[BugTrack2]]にふさわしくなければ対応をお願いします。
--------
#contents
** HTTPサーバでのアクセス制御 [#x11971d0]
アクセス元を特定のアドレスに制限したり、basic認証などにより閲覧を制限したりするのは、セキュリティ上有効です。特にIPアドレスによるフィルタリングは偽装が困難なので、いくつかある関連会社のゲートウェイのアドレスからのみアクセスできるようにするような対策は有効でしょう。
サーチエンジンで「.htaccess」を検索すると、多数のサイトが見つかります。ここではapacheのドキュメントを紹介するにとどめます。
- http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
- http://httpd.apache.org/docs/2.2/howto/auth.html
また、PCを会社でセットアップして配布しているような場合には、クライアント証明書をあらかじめPCにインストールしておき認証に使う方法も有効です。
** HTTPサーバでのログ [#l59ba467]
pukiwikiの履歴(バックアップ機能)にあるタイムスタンプとHTTPサーバのアクセスログを照合することで、ある更新がどのIPアドレスからおこなわれたかを調べることができます。
また、webalizerなどでログを解析すると、活発さや異常をグラフィカルに見ることができます。
** HTTPサーバでのユーザー [#dcc63fb4]
pukiwikiはPHPスクリプトであり、一般的にはapacheなどHTTPサーバの権限でファイルの読み書きをおこないます。しかし複数の人でHTTPサーバを共用している場合、関係ない人でもPHPスクリプトを書けばwikiのファイルにアクセスできてしまいます(これはサーバ上のファイルのアクセス権の問題であり、前述のパスワード認証とは別の問題です)。
これを避けるには、以下のような方法を組み合わせるのが有効です(HTTPサーバがapacheの場合)。残念ながら筆者の手元ではまだうまくいっていませんので、もっとよい方法をご存知の方がいれば更新をお願いします。
- pukiwikiをアクセスするためのユーザー(以下、実行ユーザー)を作る
- 実行ユーザーのホームディレクトリ(public_htmlなど)にpukiwikiを置く
-- データファイルは実行ユーザーのみが読み書き可能とする
-- PHPファイルはインストールしたユーザーが書き込み可能、実行ユーザーは読み込みのみ可能とする
- index.phpをCGIとして実行するように設定する
-- index.phpの先頭に、以下の行を追加する(phpのパスに変更すること)
#! /usr/bin/php
-- index.phpを、実行ユーザーが実行可能とする
-- .htaccessなどを利用して、.phpをCGIとして実行するように設定する
- apacheのsuexec機構を有効にする
- apacheの設定で、wikiへのパス名が実行ユーザーのホームディレクトリのpukiwikiに置換されるようにする
** バックアップ機能 [#gb8189d3]
すべての変更履歴を残したい場合は、pukiwiki.ini.phpの設定を変更する必要があります。
/////////////////////////////////////////////////
// Backup related settings
// Enable backup
$do_backup = 1;
// When a page had been removed, remove its backup too?
$del_backup = 0;
// Bacukp interval and generation
$cycle = 3; // Wait N hours between backup (0 = no wait)
$maxage = 120; // Stock latest N backups
↓
$cycle = 0; // Wait N hours between backup (0 = no wait)
$maxage = 300; // Stock latest N backups
** タイムスタンプ変更の強制 [#w9f3c58f]
更新が明示されるようにするには「タイムスタンプを更新しない」オプションを無効化する必要があります。
/////////////////////////////////////////////////
// Allow to use 'Do not change timestamp' checkbox
// (0:Disable, 1:For everyone, 2:Only for the administrator)
$notimeupdate = 1;
↓
$notimeupdate = 0;
** Referer [#v9b8de19]
外部リンクをクリックしたときにRefererが流出しないようにするには、以下を参照してください。
- [[BugTrack2/247]]
** 暗号化 [#aa1b0e15]
SSLを強制したい場合は、pukiwiki.ini.phpの先頭(<?phpのあと)に以下を追加してください。URLは適宜変更してください(未テストです)。
SSLを強制したい場合は、pukiwiki.ini.phpの先頭(<?phpの次の行)に以下を追加してください。URLは適宜変更してください(未テストです)。
if (SERVER_PORT != 443) {header("Location: https://nohost.nodomain/wiki/");die();}
SERVER_PORTは、init.phpで定数化されています。
** システムのバックアップ [#kcf21e5b]
wikiのベースディレクトリ全体を圧縮してCD-Rなどに焼いてしまうのが簡単だと思います。wiki/以下だけだと、履歴や添付ファイルなどが残りません。
サーバ設定などがwiki上に書いてある場合は、サーバ障害時に見れなくならないよう、wgetなどでHTML版を作り、一緒にCD-Rなどに焼いておくとよいと思います。
- http://blog.crm.co.jp/2006/08/wiki.html Wikiのバックアップ
** その他 [#u07548d8]
使わない機能があれば切っておきます。
/////////////////////////////////////////////////
// Enable Freeze / Unfreeze feature
$function_freeze = 1;
↓
$function_freeze = 0;
// PKWK_SAFE_MODE - Prohibits some unsafe(but compatible) functions
if (! defined('PKWK_SAFE_MODE'))
define('PKWK_SAFE_MODE', 0);
↓
define('PKWK_SAFE_MODE', 1);
** コメント [#c128bdd8]
- 叩き台ですので、どんどん書き加えてください。 -- [[pai]] &new{2007-09-07 (金) 20:35:37};
- いま見付けたのですが「ちょっと便利に」の方が適切だったかも知れません -- [[pai]] &new{2007-09-08 (土) 15:24:49};
- readme やヘルプをよりよくするため、という意図だと思うので(個人的には)かまわないと思います。&br;類似品として負荷対策ネタは[[BugTrack/763]]にまとめがありますけど、この手の((セキュリティや安全対策のネタ))まとめページってもうありましたっけ? -- &new{2007-09-08 (土) 16:39:43};
#comment