VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

Piwikへのアクセスを特定のIPアドレスに制限する

Piwikの管理画面へのアクセスは管理ユーザーのパスワード認証で制限していますが、Piwikをよりセキュアにするために、Piwikのファイルに対し、特定のIPアドレスのみアクセスできるように設定します。

例えば、Piwikのすべてのファイルに対するアクセスは自端末のIPアドレスのみ許可し、外部からのアクセスは、piwik.phpとpiwik.jsのファイルのみ許可するといった設定をすることができます。
 
監視対象のWebサイト上のJavaScriptから送信されるトラッキング情報は、上記2つのファイルのみに関係しているようなので、上記2つのみ外部からアクセスできるようにすれば良いようです。
 
※目次をクリックすると目次の下部にコンテンツが表示されます。

Apacheの.htaccessに設定する場合
Piwikのルートディレクトリに.htaccessファイルを作成し、下記設定をします。
<Files "*">
  Order deny,allow
  Deny from all
  Allow from 許可するIPアドレス
  Allow from このWebサーバーのIPアドレス
  Allow from 127.0.0.1
  Allow from ::1
</Files>

<Files ~ "^piwik\.(js|php)|robots\.txt$">
  Allow from all
  Satisfy
</Files>

※Piwikのルートディレクトリで.htaccessファイル内の設定を適用するために、Apache設定ファイル本体に”AllowOverride Limit”を設定したところ、Piwik管理画面のリンクのアイコン表示が変わってしまいました。原因はよく分かりません。私は、次の2)の方法で設定しました。

Apache本体の設定ファイルに設定する場合
Piwikのルートディレクトリが”/var/www/html/piwik”の場合
 
下記のPiwikルートディレクトリのDirectoryディレクティブ内に
<Directory “/var/www/html/piwik”>
:
</Directory>
  
.htaccessの場合と同様に下記設定を追加しました。
<Files "*">
  Order deny,allow
  Deny from all
  Allow from 許可するIPアドレス
  Allow from このWebサーバーのIPアドレス
  Allow from 127.0.0.1
  Allow from ::1
</Files>

<Files ~ "^piwik\.(js|php)|robots\.txt$">
  Allow from all
  Satisfy
</Files>

 
※1
<Files>ディレクティブでファイルの前に’~’を指定すると、正規表現でファイルを指定できます。
 
※2
上記設定例では、piwik.js、piwik.phpに加え、robots.txtのファイルに対してのみアクセスを許可するように設定しています。
 
※3
下記設定は、アーカイブ処理を行う際に(Piwikで定期的にアーカイブ処理を行いレスポンス応答向上)自サーバ内からPiwikに対してHTTPアクセスするようで、その送信元アドレスが自サーバーのグローバルIPアドレスになっていたため、この設定がないとアクセス拒否のエラーになってしまいます。
 
Allow from このWebサーバーのIPアドレス

モバイルバージョンを終了