「セキュリティ推奨」の版間の差分

提供:MoodleDocs
移動先:案内検索
(done.)
 
(同じ利用者による、間の43版が非表示)
1行目: 1行目:
{{セキュリティ}}
{{セキュリティ}}


作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]] ([[利用者・トーク:Mitsuhiro Yoshida|トーク]])
すべてのウェブアプリケーションは非常に複雑なものであり、すべてのアプリケーションには時々発見されるセキュリティ問題が存在します。通常、それはプログラマが予期しない入力の組み合わせに起因します。Moodleプロジェクトはセキュリティを深刻に捉えています。そして、私たちが発見したセキュリティホールを閉じるよう、継続的にMoodleを改良しています。


すべてのウェブアプリケーションは非常に複雑なものであり、すべてのアプリケーションには時々発見されるセキュリティ問題が存在します。通常、それはプログラマーが予期しない入力の組み合わせに起因します。Moodleプロジェクトはセキュリティを深刻に捉えています。そして、私たちが発見したセキュリティホールを閉じるよう、継続的にMoodleを改良しています。
==イントロダクション (Introduction)==


==イントロダクション (Introduction)==
*このページでは、あなたのMoodleインストレーションに関する重要なセキュリティ対策も含みます。
*このページにはあなたのMoodleインストレーションに関する重要なセキュリティ対策を含みます。
*開発者が確認することができ、登録Moodleサイトに早急に対応されるよう知らせるため、あなたはセキュリティ問題を[http://tracker.moodle.org/secure/CreateIssue!default.jspa  Moodle tracker]に報告 (およびセキュリティ問題であるとマーク) する必要があります。  
*開発者が確認することができて、登録Moodleサイトに早急に対応されるよう知らせるため、あなたはセキュリティ問題を[http://tracker.moodle.org/secure/CreateIssue!default.jspa  Moodle tracker]に報告 (およびセキュリティ問題であるとマーク) する必要があります。  
*まだアップグレードされていないMoodle管理者を保護するため、あなたは実際のセキュリティ上の弱点をウェブ上のフォーラムまたは他の場所に投稿すべきではありません。
*まだアップグレードされていないMoodle管理者を保護するため、あなたは実際のセキュリティ上の弱点をウェブ上のフォーラムまたは他の場所に投稿すべきではありません。


==簡易セキュリティ対策 (Simple security measures)==
==簡易セキュリティ対策 (Simple security measures)==
*最善のセキュリティ戦略は適切なバックアップです! しかし、リストアできない限り、あなたは良いバックアップをしているとは言えません! あなたのリストア手順を確認してください!  
*最善のセキュリティ戦略は適切なバックアップです! しかし、リストアできない限り、あなたは良いバックアップをしているとは言えません! あなたのリストア手順を確認してください!  
*あなたが使用するソフトウェアおよびサービスのみをロードしてください。
*あなたが使用するソフトウェアおよびサービスのみをロードしてください。
17行目: 17行目:


==基本推奨 (Basic recommendations)==
==基本推奨 (Basic recommendations)==
*それぞれのバージョンのリリース時、定期的にMoodleをアップデートする
 
*それぞれのバージョンのリリース時、定期的にMoodleをアップデートしてください。
:公開されたセキュリティホールはリリース後にクラッカーの注意を引くことになります。古いバージョンほど、脆弱性を含んでいる可能性があります。
:公開されたセキュリティホールはリリース後にクラッカーの注意を引くことになります。古いバージョンほど、脆弱性を含んでいる可能性があります。
*「register_globals」を無効にしてください!
*「register_globals」を無効にしてください!
:これはサードパーティスクリプトのXSS (cross site scripting - クロスサイトスクリプティング ) 問題を防ぐための助けとなります。
:これはサードパーティスクリプトのXSS (cross site scripting - クロスサイトスクリプティング ) 問題を防ぐための助けとなります。
*管理者および教師に強いパスワードを使用する
*管理者および教師に強いパスワードを使用してください。
:「難しい」パスワードを選択することは「強引な (brute force) 」アカウントのクラッキングに対する基本的なセキュリティの実践です。
:「難しい」パスワードを選択することは「強引な (brute force) 」アカウントのクラッキングに対する基本的なセキュリティの実践です。
*信頼できるユーザにのみ教師アカウントを与える。実運用サーバ上にフリーの教師アカウントが利用できる公開サンドボックスの作成を避けるため。
*信頼できるユーザにのみ教師アカウントを与えてください。実運用サーバ上にフリーの教師アカウントが利用できる公開サンドボックスの作成を避けるためです。
:教師アカウントには極めて自由なパーミッションがあるため、データを悪用および盗用できる状況を簡単に作ることができます。
:教師アカウントには極めて自由なパーミッションがあるため、データを悪用および盗用できる状況を簡単に作ることができてしまいます。
*あなたのシステムを可能な限り分ける
 
*あなたのシステムを可能な限り分けてください。
:もうひとつの基本的なセキュリティテクニックは異なるシステムで異なるパスワードを使用すること、異なるサービスごとに異なるマシンを使用すること等です。これにより、1つのアカウントが不正使用または1つのサーバに侵入にされたとしても、ダメージが広範囲に広がることを防ぎます。
:もうひとつの基本的なセキュリティテクニックは異なるシステムで異なるパスワードを使用すること、異なるサービスごとに異なるマシンを使用すること等です。これにより、1つのアカウントが不正使用または1つのサーバに侵入にされたとしても、ダメージが広範囲に広がることを防ぎます。


==通常更新を実行する (Run regular updates)==
==通常更新を実行する (Run regular updates)==
*自動更新システムを使用する
*自動更新システムを使用します。
*Windowsアップデート
*Windowsアップデート
*Linux: up2date, yum, apt-get
*Linux: up2date, yum, apt-get
:cronのスケジュールスクリプトによる自動更新を考慮する
:cronのスケジュールスクリプトによる自動更新を考慮してください。
*Mac OSX更新システム
*Mac OSX更新システム
*php、apacheおよびmoodleを最新版にする
*php、apacheおよびmoodleを最新版にします。


==最新状態にするため、メーリングリストを使用する (Use mailing lists to stay updated)==
==最新状態にするため、メーリングリストを使用する (Use mailing lists to stay updated)==
*CERT - http://www.us-cert.gov/cas/signup.html
*CERT - http://www.us-cert.gov/cas/signup.html
*PHP - http://www.php.net/mailing-lists.php - アナウンスメントリストにサインアップする
*PHP - http://www.php.net/mailing-lists.php - アナウンスメントリストにサインアップします。
*MySQL - http://lists.mysql.com - MySQLアナウンスメントにサインアップする
*MySQL - http://lists.mysql.com - MySQLアナウンスメントにサインアップします。


==ファイアウォール (Firewalls)==
==ファイアウォール (Firewalls)==
*セキュリティ専門家は2重のファイアーウォールを推奨しています。
*セキュリティ専門家は2重のファイアーウォールを推奨しています。
:ハードウェア/ソフトウェアの組み合わせを別にします。
:ハードウェア/ソフトウェアの組み合わせを別にします。
49行目: 52行目:
*許可されるポート
*許可されるポート
:80, 443(ssl), 9111 (チャット用)  
:80, 443(ssl), 9111 (チャット用)  
リモート管理: ssh 22, または rdp 3389
リモート管理: ssh 22またはrdp 3389


==パスワードポリシー (Password policy)==
==パスワードポリシー (Password policy)==
64行目: 67行目:


==最悪の事態に備える (Be prepared for the worst)==
==最悪の事態に備える (Be prepared for the worst)==
*バックアップを準備してください。
*バックアップを準備してください。
*事前にリカバリ処理を練習してください。
*事前にリカバリ処理を練習してください。
71行目: 75行目:


==Moodleセキュリティ警告 (Moodle security alerts) ==
==Moodleセキュリティ警告 (Moodle security alerts) ==
*あなたのサイトをmoodle.orgに登録します。
 
*あなたのサイトをmoodle.orgに登録してください。
:登録ユーザにはメールアラートが送信されます。
:登録ユーザにはメールアラートが送信されます。
*セキュリティアラートは下記オンラインでも投稿されます:  
*セキュリティアラートは下記オンラインにも掲載されます:  
*ウェブ - http://moodle.org/security
*ウェブ - http://moodle.org/security
*RSSフィード - http://moodle.org/rss/file.php/1/1/forum/996/rss.xml
*RSSフィード - http://moodle.org/rss/file.php/1/1/forum/996/rss.xml


==様々な検討事項 (Miscellaneous considerations)==
==様々な検討事項 (Miscellaneous considerations)==
以下、あなたのセキュリティ全体に関して影響のある考慮すべき内容です:
以下、あなたのセキュリティ全体に関して影響のある考慮すべき内容です:
*セキュアフォーム設定を使用してください。
*セキュアフォーム設定を使用してください。
91行目: 97行目:
==最も安全なファイルパーミッション (Most secure/paranoid file permissions)==
==最も安全なファイルパーミッション (Most secure/paranoid file permissions)==


'''注意''': <u>MS Windowsのパーミッションシステムとは全く異なるため、以下の情報はLinux/Unixベースのインストーレーションのみに適用されます。</u>
'''注意''': <u>MS Windowsのパーミッションシステムとは全く異なるため、以下の情報はLinux/Unixベースのインストーレーションのみに適用してください。</u>


あなたのサーバのセットアップに応じて、以下2つの異なるシナリオがあります:
あなたのサーバのセットアップに応じて、以下2つの異なるシナリオがあります:
97行目: 103行目:
# あなたは共有ホスティング環境でMoodleを運用しています。
# あなたは共有ホスティング環境でMoodleを運用しています。


以下のセクションでは、あなたにパーミッションを設定するためにウェブサービスユーザアカウントおよびグループが必要であることに留意してください。これはサーバによって異なりますが、この機能が無効にうされていない場合、あなたは管理者としてログインした上で http://your.moodle.site/admin/phpinfo.php にアクセスして、「apache」テーブル内にある「User/Group」の行を探してください。例えば、私はユーザアカウントに「www-data」、グループアカウントにも「www-data」を見つけることができました。
以下のセクションでは、あなたにパーミッションを設定するためにウェブサービスユーザアカウントおよびグループが必要であることに留意してください。これはサーバによって異なりますが、この機能が無効にされていない場合、あなたは管理者としてログインした上で http://your.moodle.site/admin/phpinfo.php にアクセスして、「apache」テーブル内にある「User/Group」の行を探してください。例えば、私はユーザアカウントに「www-data」、グループアカウントにも「www-data」を見つけることができました。


=== 専用サーバでMoodleを運用する (Running Moodle on a dedicated server) ===
=== 専用サーバでMoodleを運用する (Running Moodle on a dedicated server) ===
あなたが密閉されたサーバでMoodleを運用している、そしてMoodleコードおよびMoodle設定 (config.php) の両方を管理者 (root) が管理していると仮定します。以下、私が考える最も厳重なパーミッションです:
あなたは密閉されたサーバでMoodleを運用しています。そして、MoodleコードおよびMoodle設定 (config.php) の両方を管理者 (root) が管理していると仮定します。以下、私が考える最も厳重なパーミッションです:


1. moodledataディレクトリおよびすべてのコンテンツ (およびsessionsを含むサブディレクトリ):
1. moodledataディレクトリおよびすべてのコンテンツ (およびsessionsを含むサブディレクトリ):
117行目: 123行目:
  permissions: 750 on directories, 640 on files.
  permissions: 750 on directories, 640 on files.


これらのパーミッションは考えすぎのパーミッションであることをご理解ください。moodledataおよびmoodleディレクトリ (およびサブディレクトリ) のパーミッションの厳しさを緩くしたとしても、あなたは十分セキュアであることができます。
これらのパーミッションは考え過ぎのパーミッションであることをご理解ください。moodledataおよびmoodleディレクトリ (およびサブディレクトリ) のパーミッションの厳しさを緩くしたとしても、あなたは十分セキュアであることができます。


=== 共有ホスティング環境でMoodleを運用する (Running Moodle on a shared hosting environment) ===
=== 共有ホスティング環境でMoodleを運用する (Running Moodle on a shared hosting environment) ===
あなたが教養ホスティング環境でMoodleを運用している場合、恐らく、上記のパーミッションは正しくありません。ディレクトリに700 (およびファイルに600) のパーミッションを設定した場合、恐らく、あなたのディレクトリおよびファイルにウェブサービスユーザアカウントがアクセスできないようになります。
あなたが共有ホスティング環境でMoodleを運用している場合、恐らく、上記のパーミッションは正しくありません。ディレクトリに700 (およびファイルに600) のパーミッションを設定した場合、恐らく、あなたのディレクトリおよびファイルにウェブサービスユーザアカウントがアクセスできないようになります。


可能な限りパーミッションを厳しくしたい場合、あなたは以下の内容を把握する必要があります:
可能な限りパーミッションを厳しくしたい場合、あなたは以下の内容を把握する必要があります:


# ユーザアカウントおよびグループの下でウェブサービスが動作している (上記をご覧ください)。
# ユーザアカウントおよびグループの下でウェブサービスが動作している (上記をご覧ください)。
# moodledataおよびmoodleディレクトリ両方のオーナー (通常、あなたのクライアントユーザアカウント) およびグループ。通常、あなたはこれらの情報をホスティングのコントロールパネルのマネージャから取得することができます。moodleフォルダに移動して、ディレクトリまたはファイルを選択した後、そのファイルのパーミッション、オーナーおよびグループを確認または変更してみてください。通常、これは現在のパーミッション、オーナーおよびグループを表示します。同じことをmoodledataディレクトリに対しても実施してください。
# moodledataおよびmoodleディレクトリ両方のオーナー (通常、あなたのクライアントユーザアカウント) およびグループ。通常、あなたはこれらの情報をホスティングのコントロールパネルのマネージャから取得することができます。moodleフォルダに移動して、ディレクトリまたはファイルを選択した後、そのファイルのパーミッション、オーナーおよびグループを確認または変更してください。通常、これは現在のパーミッション、オーナーおよびグループを表示します。同じことをmoodledataディレクトリに対しても実施してください。


そして、下記シナリオに応じて、あなたのmoodledataディレクトリに対して、異なるパーミッションを設定することができます (安全性の高いものから低いものへと一覧表示されています):
そして、下記シナリオに応じて、あなたのmoodledataディレクトリに対して、異なるパーミッションを設定することができます (安全性の高いものから低いものへと一覧表示されています):


# if the web service account and the owner of the directories/files is the same, you should use 700 for directories and 600 for files.
# ウェブサービスアカウントおよびディレクトリ/ファイルのオーナーが同一である場合、あなたはディレクトリのパーミッションを700、ファイルのパーミッションを600にすべきです。
# if the web service group and the group of the directories/files is the same, you should use 770 for directories and 660 for the files.
# ウェブサービスグループおよびディレクトリ/ファイルのグループが同一である場合、あなたはディレクトリのパーミッションを770、ファイルのパーミッションを660にすべきです。
# if none of the above, you will need to use 777 for directories and 666 for files, which is less secure but it is your only option. 707 and 606 would be more secure, but it might or might not work, depending on your particular setup.
# 上記のどれにも当てはまらない場合、あなたはディレクトリのパーミッションを777、ファイルのパーミッションを666にする必要があります。これは安全性が低くなりますが、あなたが選択し得る唯一のオプションです。707および606はさらに安全になりますが、動作の可否はあなたの設定に依存します。


In fact, you just need to set moodledata the permissions specified above, as all the directories and files inside are created by the web service itself, and will have the right permissions.
ウェブサービス自体によって、ディレクトリおよびファイルが作成され、適切なパーミッションが適用されるため、実際のところ、あなたが必要なことは上記で指定されたパーミッションをmoodledataに設定するのみです。


Regarding the moodle directory, as long as the web service user account can read the files plus read and execute the directories, that should be enough. There is no need to grant write permission to the web service account/group on any of the files or subdirectories. The only drawback is that you will need to create the config.php by hand during the installation process, as Moodle will not be able to create it. But that should not be a big problem.
Moodleディレクトリに関して、ウェブサービスユーザアカウントがファイルを読むこと、ディレクトリを読むことおよび実行することができる限り、これで十分です。ファイルまたはサブディレクトリに対して、ウェブサービスアカウント/グループに書き込み権を与える必要はありません。唯一の難点はインストール処理中、Moodleがconfig.phpを作成できないため、あなたがconfig.phpを手動で作成する必要がある点です。しかし、これは大きな問題ではありません。


==関連情報==
==関連情報==
142行目: 148行目:
Using Moodleフォーラムディスカッション
Using Moodleフォーラムディスカッション
*[http://moodle.org/mod/forum/discuss.php?d=39404 あなたのMoodleサーバを安全にするためのガイド (Guide to Securing your Moodle Server) - 英語]
*[http://moodle.org/mod/forum/discuss.php?d=39404 あなたのMoodleサーバを安全にするためのガイド (Guide to Securing your Moodle Server) - 英語]
*[http://moodle.org/mod/forum/discuss.php?d=93561 How to secure Moodle website from hacking] including recommendations on emergency recovery
*[http://moodle.org/mod/forum/discuss.php?d=93561Moodle サイトをハッキングから安全にする方法 (How to secure Moodle website from hacking)] 推奨緊急リカバリ方法を含む - 英語


[[en:Security_recommendations]]
[[en:Security_recommendations]]

2015年2月19日 (木) 03:44時点における最新版


すべてのウェブアプリケーションは非常に複雑なものであり、すべてのアプリケーションには時々発見されるセキュリティ問題が存在します。通常、それはプログラマが予期しない入力の組み合わせに起因します。Moodleプロジェクトはセキュリティを深刻に捉えています。そして、私たちが発見したセキュリティホールを閉じるよう、継続的にMoodleを改良しています。

イントロダクション (Introduction)

  • このページでは、あなたのMoodleインストレーションに関する重要なセキュリティ対策も含みます。
  • 開発者が確認することができ、登録Moodleサイトに早急に対応されるよう知らせるため、あなたはセキュリティ問題をMoodle trackerに報告 (およびセキュリティ問題であるとマーク) する必要があります。
  • まだアップグレードされていないMoodle管理者を保護するため、あなたは実際のセキュリティ上の弱点をウェブ上のフォーラムまたは他の場所に投稿すべきではありません。

簡易セキュリティ対策 (Simple security measures)

  • 最善のセキュリティ戦略は適切なバックアップです! しかし、リストアできない限り、あなたは良いバックアップをしているとは言えません! あなたのリストア手順を確認してください!
  • あなたが使用するソフトウェアおよびサービスのみをロードしてください。
  • 定期的な更新を実行してください。
  • 寒い冬の日の重ね着の考えをもとにして、あなたのセキュリティモデルを作成してください。

基本推奨 (Basic recommendations)

  • それぞれのバージョンのリリース時、定期的にMoodleをアップデートしてください。
公開されたセキュリティホールはリリース後にクラッカーの注意を引くことになります。古いバージョンほど、脆弱性を含んでいる可能性があります。
  • 「register_globals」を無効にしてください!
これはサードパーティスクリプトのXSS (cross site scripting - クロスサイトスクリプティング ) 問題を防ぐための助けとなります。
  • 管理者および教師に強いパスワードを使用してください。
「難しい」パスワードを選択することは「強引な (brute force) 」アカウントのクラッキングに対する基本的なセキュリティの実践です。
  • 信頼できるユーザにのみ教師アカウントを与えてください。実運用サーバ上にフリーの教師アカウントが利用できる公開サンドボックスの作成を避けるためです。
教師アカウントには極めて自由なパーミッションがあるため、データを悪用および盗用できる状況を簡単に作ることができてしまいます。
  • あなたのシステムを可能な限り分けてください。
もうひとつの基本的なセキュリティテクニックは異なるシステムで異なるパスワードを使用すること、異なるサービスごとに異なるマシンを使用すること等です。これにより、1つのアカウントが不正使用または1つのサーバに侵入にされたとしても、ダメージが広範囲に広がることを防ぎます。

通常更新を実行する (Run regular updates)

  • 自動更新システムを使用します。
  • Windowsアップデート
  • Linux: up2date, yum, apt-get
cronのスケジュールスクリプトによる自動更新を考慮してください。
  • Mac OSX更新システム
  • php、apacheおよびmoodleを最新版にします。

最新状態にするため、メーリングリストを使用する (Use mailing lists to stay updated)

ファイアウォール (Firewalls)

  • セキュリティ専門家は2重のファイアーウォールを推奨しています。
ハードウェア/ソフトウェアの組み合わせを別にします。
  • 多くの場合、未使用のサービスを無効にすることはファイアーウォールと同じく効果的です。
開いているネットワークポートを確認するには、netstat -a コマンドを使用してください。
  • セキュリティ保護の保証があるわけではありません。
  • 許可されるポート
80, 443(ssl), 9111 (チャット用)

リモート管理: ssh 22またはrdp 3389

パスワードポリシー (Password policy)

パスワードポリシーは「設定 > サイト管理 > セキュリティ > サイトポリシー」で設定することができます。

パスワードの複雑さを強制するチェックボックスがあります。オプションは次のとおりです: パスワード長、数字、小文字、大文字、非英数字、連続した同一文字

これらの条件に合致しないパスワードをユーザが入力した場合、入力されたパスワードに関する問題を示したエラーメッセージが表示されます。

初期パスワードの変更とともに複雑なパスワードの使用を強制することにより、ユーザが「良いパスワード」を選択する役に立ちます。

しかし、チェックを面倒にすることにより、結果としてユーザがパスワードを書きとめることになりますので、現実的になる必要もあります。

最悪の事態に備える (Be prepared for the worst)

Moodleセキュリティ警告 (Moodle security alerts)

  • あなたのサイトをmoodle.orgに登録してください。
登録ユーザにはメールアラートが送信されます。

様々な検討事項 (Miscellaneous considerations)

以下、あなたのセキュリティ全体に関して影響のある考慮すべき内容です:

  • セキュアフォーム設定を使用してください。
  • 常にMySQLのrootパスワードを設定してください。
  • MySQLネットワークアクセスを無効にしてください。
  • SSLを使用してください (httpslogins=yes)。
  • 良いパスワードを使用してください - 「設定 > サイト管理 > セキュリティ > サイトポリシー」のパスワードポリシーを設定してください。
  • 「設定 > サイト管理 > セキュリティ > サイトポリシー」の「opentogoogle」設定を有効にしないでください。
  • ゲストアクセスを無効にしてください。
  • すべてのコースに登録キーを設定するか、すべてのコースにおいて「コース登録可能 = No」に設定してください。
  • 「管理 > サイト管理 > プラグイン > 受講登録 > 自己登録」で登録キーヒント (「ヒントを表示する」) が無効にされていることを確認してください。

最も安全なファイルパーミッション (Most secure/paranoid file permissions)

注意: MS Windowsのパーミッションシステムとは全く異なるため、以下の情報はLinux/Unixベースのインストーレーションのみに適用してください。

あなたのサーバのセットアップに応じて、以下2つの異なるシナリオがあります:

  1. あなたは独自の専用サーバでMoodleを運用しています。
  2. あなたは共有ホスティング環境でMoodleを運用しています。

以下のセクションでは、あなたにパーミッションを設定するためにウェブサービスユーザアカウントおよびグループが必要であることに留意してください。これはサーバによって異なりますが、この機能が無効にされていない場合、あなたは管理者としてログインした上で http://your.moodle.site/admin/phpinfo.php にアクセスして、「apache」テーブル内にある「User/Group」の行を探してください。例えば、私はユーザアカウントに「www-data」、グループアカウントにも「www-data」を見つけることができました。

専用サーバでMoodleを運用する (Running Moodle on a dedicated server)

あなたは密閉されたサーバでMoodleを運用しています。そして、MoodleコードおよびMoodle設定 (config.php) の両方を管理者 (root) が管理していると仮定します。以下、私が考える最も厳重なパーミッションです:

1. moodledataディレクトリおよびすべてのコンテンツ (およびsessionsを含むサブディレクトリ):

owner: apache user (apache, httpd, www-data, whatever; see above)
group: apache group (apache, httpd, www-data, whatever; see above)
permissions: 700 on directories, 600 on files

2. moodleディレクトリおよびすべてのコンテンツ (およびconfig.phpを含むサブディレクトリ):

owner: root
group: root
permissions: 755 on directories, 644 on files.

あなたが通常ユーザとしてログインできる場合、2. は下記のようになります:

owner: root
group: apache group (apache, httpd, www-data, whatever; see above)
permissions: 750 on directories, 640 on files.

これらのパーミッションは考え過ぎのパーミッションであることをご理解ください。moodledataおよびmoodleディレクトリ (およびサブディレクトリ) のパーミッションの厳しさを緩くしたとしても、あなたは十分セキュアであることができます。

共有ホスティング環境でMoodleを運用する (Running Moodle on a shared hosting environment)

あなたが共有ホスティング環境でMoodleを運用している場合、恐らく、上記のパーミッションは正しくありません。ディレクトリに700 (およびファイルに600) のパーミッションを設定した場合、恐らく、あなたのディレクトリおよびファイルにウェブサービスユーザアカウントがアクセスできないようになります。

可能な限りパーミッションを厳しくしたい場合、あなたは以下の内容を把握する必要があります:

  1. ユーザアカウントおよびグループの下でウェブサービスが動作している (上記をご覧ください)。
  2. moodledataおよびmoodleディレクトリ両方のオーナー (通常、あなたのクライアントユーザアカウント) およびグループ。通常、あなたはこれらの情報をホスティングのコントロールパネルのマネージャから取得することができます。moodleフォルダに移動して、ディレクトリまたはファイルを選択した後、そのファイルのパーミッション、オーナーおよびグループを確認または変更してください。通常、これは現在のパーミッション、オーナーおよびグループを表示します。同じことをmoodledataディレクトリに対しても実施してください。

そして、下記シナリオに応じて、あなたのmoodledataディレクトリに対して、異なるパーミッションを設定することができます (安全性の高いものから低いものへと一覧表示されています):

  1. ウェブサービスアカウントおよびディレクトリ/ファイルのオーナーが同一である場合、あなたはディレクトリのパーミッションを700、ファイルのパーミッションを600にすべきです。
  2. ウェブサービスグループおよびディレクトリ/ファイルのグループが同一である場合、あなたはディレクトリのパーミッションを770、ファイルのパーミッションを660にすべきです。
  3. 上記のどれにも当てはまらない場合、あなたはディレクトリのパーミッションを777、ファイルのパーミッションを666にする必要があります。これは安全性が低くなりますが、あなたが選択し得る唯一のオプションです。707および606はさらに安全になりますが、動作の可否はあなたの設定に依存します。

ウェブサービス自体によって、ディレクトリおよびファイルが作成され、適切なパーミッションが適用されるため、実際のところ、あなたが必要なことは上記で指定されたパーミッションをmoodledataに設定するのみです。

Moodleディレクトリに関して、ウェブサービスユーザアカウントがファイルを読むこと、ディレクトリを読むことおよび実行することができる限り、これで十分です。ファイルまたはサブディレクトリに対して、ウェブサービスアカウント/グループに書き込み権を与える必要はありません。唯一の難点はインストール処理中、Moodleがconfig.phpを作成できないため、あなたがconfig.phpを手動で作成する必要がある点です。しかし、これは大きな問題ではありません。

関連情報

Using Moodleフォーラムディスカッション