ログ解析スクリプトAWStats 6.0ドキュメント
セキュリティに関するTips
多くのAWStatsのユーザーは, 複数のWebサイトを管理しています. Webのホスティングを行っている事業者がその代表例でしょう. このようなケースで要望が高いのが, ユーザーxxx(www.xxx.comを持っている)がユーザーyyy(www.yyy.comを持っている)の統計を閲覧できないようにすることです.
この要望を実現するためには, いくつもの手段があります. 以下にその例を示します
:
1) 非常に厳密なセキュリティポリシーを適用する場合
ポリシー
:
あなたは別々のユーザーが所持する複数のドメインを管理しており, それぞれのユーザーについて統計を作成したいと考えています. また, あなたはユーザーに対して'リアルタイムの'統計を提供する必要はないと考えています.
この選択肢は, 巨大なサイトを持つ少数の重要なユーザーを抱えているWebホスティング事業者にとっては, 最適な選択肢になるでしょう.
メリット
:
非常に高いセキュリティを保つことができる.
デメリット
:
統計が静的になり, 動的な更新/閲覧を行うことができない.
実現手段
:
各ドメインの全ての統計ページを
-output -staticlinks
オプションを利用して静的なHTMLとして生成します.
AWStatsはCGIを利用せず, 静的に生成されたページは保護された
領域
におかれ, 認められたユーザーのみが閲覧(もしくはメールで送付)することができるようになります.
ユーザーが統計サーバーにコマンドラインでアクセスすることができる(telnet)場合, AWStatsのデータベースファイルに正しい権限を設定する必要があります. ドメイン1の全てのAWStatsのデータベースファイル(更新処理で作成)について,
ユーザー1
(あるいは管理者)に読み取り/書き込み権限を与え, それ以外のユーザーには読み取り権限も書き込み権限も与えないように設定します.
続いて, 設定ファイルで
SaveDatabaseFilesWithPermissionsForEveryone
のパラメーターが0に設定されていることを確認します.
ドメイン1のAWStatsのデータベースファイルが読み取り保護されている場合, 認められたユーザーのみがドメイン1の統計を参照することができます.
ドメイン1のAWStatsのデータベースファイルが書き込み保護されている場合, 認められたユーザーのみがドメイン1の統計を更新することができます.
2) ある程度のセキュリティポリシーを適用する場合
ポリシー
:
あなたは複数のユーザーが利用する複数のドメインを管理しています. あなたはそれぞれのドメインについて, 誰が統計を動的に更新/閲覧できるかを特定したいと考えています.
これは非常によくある要望です.
メリット
:
動的な統計が利用できる. 管理を行いやすい.
デメリット
:
AWStatsのデータベースファイルは, 匿名Webサーバーユーザー権限で読むことができる必要があります. このため, 経験豊かなユーザーがAWStatsのデータベースファイルが格納されているサーバーにアクセス(telnet)できる場合, AllowAccessFromWebToAuthenticatedUsersOnlyパラメーターを無視するように改造したAWStatsをインストール/実行できてしまう可能性があります.
実現手段
:
awstats.plは, アクセスするためにユーザー名/パスワードの入力が必要となるような保護された
領域
におく必要があります.
awstats.plを保護された領域に置く際にApacheに追加する必要があるディレクティブの例:
<Files "awstats.pl">
AuthUserFile /path/to/.passwd
AuthGroupFile /path/to/.group
AuthName "Restricted Area For Customers"
AuthType Basic
require valid-user
</Files>
これらのディレクティブを.htaccessファイルに記述する場合, .htaccessファイルの利用を許可するために, Apacheの設定ファイルの
AllowOverride
ディレクティブに
All
が設定されていることを確認する必要もあります.
Apache以外のサーバで保護された領域を作成する方法を知りたい場合には, そのWebサーバのマニュアルを参照してください.
続いて, 保護したい全てのドメインの設定ファイルで
AllowAccessFromWebToAuthenticatedUsersOnly
を1に設定します.
必要があれば, 認証されたユーザーの一覧を
AllowAccessFromWebToFollowingAuthenticatedUsers
パラメーターに追加します.
必要があれば, 閲覧を許可するIPアドレスの範囲を,
AllowAccessFromWebToFollowingIPAddresses
パラメーターに追加します.
AllowToUpdateStatsFromBrowser
に1を設定してブラウザからの更新を許可しないのであれば,
SaveDatabaseFilesWithPermissionsForEveryon
パラメーターに0を設定してもいいでしょう. しかし, すべての履歴ファイルについて, Webサーバのユーザに対する読み取り/書き込み権限を与える必要があるため, この設定は推奨されません(AWStatsスクリプトに認証されたユーザに対するsetuidをするならば別ですが, セットアップが非常に難しくなります).
ErrorMessages
と
DebugMessages
も, セキュリティに関するパラメータです.
その他の
Tips: 環境変数に
AWSTATS_FORCE_CONFIG
を設定しておくと, AWStatsは
awstats.myconfigvalueformydomain.conf
という名前の設定ファイルを常に利用します. この環境変数をWebサーバの環境に付加するには, 以下の行をApacheのhttpd.confの
<VirtualHost>
ディレクティブグループに(他のディレクティブと共に)設定します.
SetEnv AWSTATS_FORCE_CONFIG configvalueforthisdomain
たとえ何者かが'
http://mydomain/cgi-bin/awstats.pl?config=otherdomain
'というURLを利用して共生的に利用する設定ファイルを指定しようとしても, AWStatsは
awstats.configvalueforthisdomain.conf
という名前の設定ファイルを利用し, どの統計を利用するかの選択を行います. この機能は, それぞれのAWStatsの設定ファイルに認証されたユーザのリストを記述する代わりに,
AllowAccessFromWebToFollowingAuthenticatedUsers
="__REMOTE_USER__"を設定しているユーザーにとっては有用でしょう.
3) セキュリティポリシーがない場合
ポリシー
:
あなたは1つ以上のホストやユーザーを管理していますが, 特にユーザーを意識して統計に対して権限を設定・管理する必要はないと考えています.
メリット
:
セットアップが非常に容易(不要)になる. 動的な統計を利用できる.
デメリット
:
設定ファイルの命名規則とURLの文法を知っているユーザーに対して, 特定の統計を閲覧することを禁止する手段がない.
実現手段
:
特に何もする必要はありません(
AllowAccessFromWebToFollowingIPAddresses
パラメーターを利用すれば, 簡単に最小限のセキュリティを持たせることはできます).
すべてのオプションやパラメータ, すべてのWebサーバのオプションやパラメータ, OSのセキュリティ機能を組み合わせることにより, AWStatsの利用の仕方には実にさまざまなケースが想定されます. 自分で必要な手段を選択して利用してください...