Piwikディレクトリのパーミッションをセキュアに

Piwikインストール時の記事に記載しているように、一部のディレクトリにWebサーバーが書込みする必要があるためPiwikディレクトリとファイルの所有者をWebサーバ実行ユーザである”apache”としていました。

その後、WordPressの設定を見直している際にセキュリティ的に問題がある事が分かり(WordPressディレクトリのパーミッションをセキュアに参照)、PiwikもWordPressと同様にディレクトリの所有者を一般ユーザーに変更するなどパーミッション設定を変更しました。
 

(1)パーミッション設定の方針


 
①Piwikのディレクトリ、ファイル所有者は、ファイル転送用に作った一般ユーザーアカウントにする。
 
②Piwikのディレクトリ、ファイルのパーミッションは、所有者のみ(ファイル転送用ユーザーアカウント)書込み権限を付与する。
 
③一部の必要なディレクトリ、ファイルのみWebサーバー実行ユーザーアカウントに対して書込み権限を付与する。
 
④Piwikのディレクトリ、ファイルの所有グループをWebサーバー実行ユーザーのグループにする。
 
これによって、③の場合には所有グループに対して書込み権限を付与することによって対応する。すべてのユーザーに対して書込み権限を付与する必要はなくなる。
 

(2)設定変更手順


 
1)Piwikディレクトリ内の所有者、所有グループを変更
 
所有者をファイル転送用の一般ユーザーアカウントの”ftpuse”、所有グループを”apache”に変更します。
 
chown -R ftpuse:apache /var/www/html/piwik
 
2)Piwikディレクトリ、ファイルのパーミッション設定を変更
 
所有者のみ書込み権限を付与します。
 
chmod -R 0750 /var/www/html/piwik
 
3)必要なディレクトリ、ファイルのみに所有グループに書込み権限付与
 
①下記ディレクトリ内に対し書込み権限付与
 
chmod -R 0770 /var/www/html/piwik/tmp
chmod -R 0770 /var/www/html/piwik/tmp/templates_c
chmod -R 0770 /var/www/html/piwik/tmp/cache
chmod -R 0770 /var/www/html/piwik/tmp/assets
chmod -R 0770 /var/www/html/piwik/tmp/tcpdf
 
②.htaccessファイルに書込み権限付与
 
.htaccessファイルが自動で生成されていたので、このファイルに対してWebサーバーが自動で書込みを行っているように見受けられましたので書込み権限を付与します。
 
find /var/www/html/piwik/ -name .htaccess -exec chmod 660 {} \;
 
③Piwik設定ファイルに書込み権限付与
 
Piwik管理画面から設定変更する場合には、Webサーバー実行プロセスが書込みを行うため、書込み権限を付与します。
 
chmod 0660 /var/www/html/piwik/config/config.ini.php
 
4)アーカイブスクリプト実行用のCron設定変更
 
『Piwikで定期的にアーカイブ処理を行いレスポンス応答向上』の記事でアーカイブスクリプトをCronで定期実行の設定をしました。
 
実行ユーザーを”apache”から”ftpuse”に変更し、ログの出力先をPiwikディレクトリ内に変更しました。
 
# vi /etc/crontab
 
(変更前)
5 * * * * apache /usr/bin/php /doc_root/piwik/misc/cron/archive.php — url=http://example.org/piwik/ > /var/log/httpd/piwik-archive.log
 
(変更後)
5 * * * * ftpuse /usr/bin/php /doc_root/piwik/misc/cron/archive.php — url=http://example.org/piwik/ > /var/www/html/piwik/piwik-archive.log
 
上記変更によって、通常のアクセス解析は問題なく出来ているようです。ただ、Piwikのバージョンアップはまだ行っていないので問題なく実施できるかは未確認です。
 
セキュリティを優先して、何か問題が起きたら原因を確認し、必要なファイル、ディレクトリのみ書込み権限を付与する形で進めていこうと思っています。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です