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

提供:MoodleDocs
移動先:案内検索
 
(同じ利用者による、間の18版が非表示)
1行目: 1行目:
'''慎重に翻訳中です。'''
すべてのウェブアプリケーションソフトウェアは、非常に複雑で、どのアップリケーションにも時々発見されるセキュリティの問題があります。通常、これらの問題は、プログラマが予期することのできない入力の組み合わせに関係しています。Moodleプロジェクトでは、セキュリティを重要な部分であると認識し、随時セキュリティホールに対応する等、継続した改善作業を行っています。
すべてのウェブアプリケーションソフトウェアは、非常に複雑で、どのアップリケーションにも時々発見されるセキュリティの問題があります。通常、これらの問題は、プログラマが予期することのできない入力の組み合わせに関係しています。Moodleプロジェクトでは、セキュリティを重要な部分であると認識し、随時セキュリティホールに対応する等、継続した改善作業を行っています。


==すべての前に==
==すべての前に==
*この記事には、あなたのインストール済みMoodleに関する重要なセキュリティ対策が記載されています。
*この記事には、あなたのインストール済みMoodleに関する重要なセキュリティ対策が記載されています。
*セキュリティ問題は、直接 http://security.moodle.org に投稿してください - 他の場所でしたら開発者が見落とす可能性がありますし、( アタックを避けるため ) 問題が解決されるまで一般公衆にリリースされないからです。
*セキュリティ問題は、直接 http://security.moodle.org に投稿してください - 他の場所でしたら開発者が見落とす可能性がありますし、(アタックを避けるため) 問題が解決されるまで一般公衆にリリースされないからです。
*同じ理由で、セキュリティ上の弱点 ( exploits ) をbugtrackerやフォーラムに投稿しないでください。
*同じ理由で、セキュリティ上の弱点 (exploits) をbugtrackerやフォーラムに投稿しないでください。


==シンプルなセキュリティ対策==
==シンプルなセキュリティ対策==
17行目: 15行目:
*それぞれのリリースでMoodleを定期的にアップデートしてください。
*それぞれのリリースでMoodleを定期的にアップデートしてください。
:リリース後、公開されるセキュリティホール情報は、クラッカーの注意を引きます。古いバージョンほど、より脆弱性を含む場合があります。
:リリース後、公開されるセキュリティホール情報は、クラッカーの注意を引きます。古いバージョンほど、より脆弱性を含む場合があります。
*PHPのregister globals ( register_globals ) を無効にしてください。
*PHPのregister globals (register_globals) を無効にしてください。
:サードバーティ開発によるMoodle用スクリプトのXSS問題を防ぐ助けになります。
:サードバーティ開発によるMoodle用スクリプトのXSS問題を防ぐ助けになります。
*管理者および教師には強力なパスワードを使用してください。
*管理者および教師には強力なパスワードを使用してください。
:「推測が難しい」パスワードの使用は、アカウントの「brute force」クラッキングを防ぐ、基本的なセキュリティ対策です。
:「推測が難しい」パスワードの使用は、アカウントの「brute force」クラッキングを防ぐ、基本的なセキュリティ対策です。
*信頼できるユーザにのみ教師アカウントを与えてください。プロダクションサーバ ( 実際に運用するサーバ ) で、公開したサンドボックスにフリーの教師アカウントを作成しないでください。
*信頼できるユーザにのみ教師アカウントを与えてください。プロダクションサーバ (実際に運用するサーバ) で、公開したサンドボックスにフリーの教師アカウントを作成しないでください。
:教師アカウントは、非常に自由な権限があり、データを悪用したり盗むことが簡単にできてしまいます。
:教師アカウントは、非常に自由な権限があり、データを悪用したり盗むことが簡単にできてしまいます。
*あなたのシステムを可能な限り分離してください。
*あなたのシステムを可能な限り分離してください。
28行目: 26行目:
==定期的にアップデートを実行する==
==定期的にアップデートを実行する==
*システムを定期的にアップデートしてください。
*システムを定期的にアップデートしてください。
*Windows Update ( Microsoft Update )
*Windows Update (Microsoft Update)
*Linux: up2date、yum、apt-get
*Linux: up2date、yum、apt-get
:cronを使用してスクリプトによる自動アップデートをお考えください。
:cronを使用してスクリプトによる自動アップデートをお考えください。
46行目: 44行目:
*ファイアウォールは、防御を保障するものではありません。
*ファイアウォールは、防御を保障するものではありません。
*許可されたポート
*許可されたポート
:80、443 ( ssl )、9111 ( chat用 )  
:80、443 (ssl)、9111 (chat用)  
:Remote admin: ssh 22 または RDP ( Remote Desktop Protocol ) 3389
:Remote admin: ssh 22 または RDP ( Remote Desktop Protocol ) 3389


==Be prepared for the worst==
==最悪の事態に備える==
*Have backups ready
*常にバックアップを取ってください。
*Practice recovery procedures ahead of time
*リカバリの手順を前もって練習してください。
*Use a rootkit detector on a regular basis
*rootkit探知プログラムを定期的に使用してください。
**Linux/MacOSX - http://www.chkrootkit.org/  
**Linux/MacOSX - http://www.chkrootkit.org/  
**Windows - http://www.sysinternals.com/Utilities/RootkitRevealer.html
**Windows - http://www.sysinternals.com/Utilities/RootkitRevealer.html


==Moodle security alerts==
==Moodleセキュリティアラート (警報)==
*Register your site with Moodle.org
*あなたのサイトをMoodle.orgに登録してください。
:Registered users receive email alerts
:登録したユーザにはメールアラート (警報) が送信されます。
*Security alerts also posted online
*セキュリティアラートはオンラインでも投稿されます。
*Web - http://security.moodle.org/  
*ウェブ - http://security.moodle.org/  
*RSS feed - http://security.moodle.org/rss/file.php/1/1/forum/1/rss.xml
*RSSフィード - http://security.moodle.org/rss/file.php/1/1/forum/1/rss.xml
 
==そのほかの考慮すべき事項==
下記のすべては、あなたが考慮しても良い、セキュリティ全般に対して影響を与える事項です:
*opentogoogleを無効にする、特にK12サイト。
*SSLを使用する、httpslogins=yes。
*ゲストアクセスを無効にする。
*すべてのコースに登録キーを設定する。
*強固なパスワードを使用する。
*セキュアフォーム設定を使用する。
*MySQLのrootユーザにパスワードを設定する。
*MySQLのネットワークアクセスを無効にする。
 
==もっとも安全な/こだわり過ぎのファイルパーミッション==
あなたがMoodleをシールドサーバで稼動させて (例 マシンにユーザログインを許可しない)、rootがMoodleコードおよびMoodleの設定 (config.php) を管理していると仮定すれば、これはもっとも厳重なパーミッションだと考えられます:
 
1. moodledataディレクトリおよびディレクトリ内のすべてのコンテンツ (およびサブディレクトリ、セッションを含む):
オーナー: apache user (apache、httpd、www-data、その他なんでも)
グループ: apache group (apache、httpd、www-data、その他なんでも)
パーミッション: ディレクトリに700、ファイルに600


==Miscellaneous considerations==
2. moodleディレクトリ、ディレクトリ内の全てのコンテンツおよびサブディレクトリ (config.phpを含む):
These are all things you might consider that impact your overall security:
オーナー: root
*Turn off opentogoogle, esp for K12 sites
グループ: root
*Use SSL, httpslogins=yes
パーミッション: ディレクトリに755ファイルに644
*Disable guest access
*Place enrollment keys on all courses
*Use good passwords
*Use the secure forms setting
*Set the mysql root user password
*Turn off mysql network access


==Most secure/paranoid file permissions==
あなたがローカルログインを許可している場合、2.は次のようにしてください:
Assuming you are running this on a sealed server (i.e. no user logins allowed on the machine) and that root takes care of the modifications to both moodle code and moodle config (config.php), then this are the most tight permissions I can think of:
オーナー: root
グループ: apache group
パーミッション: ディレクトリに750ファイルに640


1. moodledata directory and all of its contents (and subdirs, includes sessions):
これらのパーミッションは、こだわり過ぎのファイルパーミッションであると思ってください。より少ない厳密なパーミッションでmoodledataおよびmoodelディレクトリ (およびサブディレクトリ) を十分に安全にすることができます。
owner: apache user (apache, httpd, www-data, whatever)
group: apache group (apache, httpd, www-data, whatever)
perms: 700 on directories, 600 on files


2. moodle directory and all of its contents and subdirs (including config.php):
==ログインしないとユーザプロファイルの写真が表示されないようにするには==
owner: root
現状では、ユーザプロファイルにアップロードした写真へは、ログインせずにアクセスすることが可能です。
group: root
perms: 755 on directories, 644 on files.


If you allow local logins, then 2. should be:
*Moodleを修正しない場合
owner: root
:#「自分の写真を公開されたくない場合、個人的な写真をアップロードしない」旨を使用許諾等に記載する。
group: apache group
:#または、config.phpに <b>$CFG->disableuserimages = true;</b> を追加して、ユーザが個人的な写真をアップロードできないようにする。
perms: 750 on directories, 640 on files


Think of these permissions as the most paranoid ones. You can be secure enough with less tighter permissions, both in moodledata and moodle directories (and subdirectories).
*Moodleを修正する場合
:<b>/user/pix.php</b>を下記のように改造することで、ログインなしのユーザ写真アクセスを禁止する※1。
:※1: ユーザがHTMLフォーマットのメールを受信する設定にしている場合、フォーラム投稿内容のメール通知でプロファイル写真が表示されないという'''デメリット'''があります。
 
----
::<b>//</b>    $nomoodlecookie = true;    <- 「//」でコメントアウトまたは削除
::<br />require_once('../config.php');
::require_once($CFG->libdir.'/filelib.php');
::<br /><b>require_login(); </b>    <- 追加
----


==関連情報==
==関連情報==
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=39404 Guide to Securing your Moodle Server] forum discussion
[[セキュリティFAQ]]
*Using Moodleのフォーラムディスカッション [http://moodle.org/mod/forum/discuss.php?d=39404 Guide to Securing your Moodle Server]
 
[[Category:管理者]]


[[Category:Administrator]]
[[en:Security]]

2009年10月4日 (日) 17:37時点における最新版

すべてのウェブアプリケーションソフトウェアは、非常に複雑で、どのアップリケーションにも時々発見されるセキュリティの問題があります。通常、これらの問題は、プログラマが予期することのできない入力の組み合わせに関係しています。Moodleプロジェクトでは、セキュリティを重要な部分であると認識し、随時セキュリティホールに対応する等、継続した改善作業を行っています。

すべての前に

  • この記事には、あなたのインストール済みMoodleに関する重要なセキュリティ対策が記載されています。
  • セキュリティ問題は、直接 http://security.moodle.org に投稿してください - 他の場所でしたら開発者が見落とす可能性がありますし、(アタックを避けるため) 問題が解決されるまで一般公衆にリリースされないからです。
  • 同じ理由で、セキュリティ上の弱点 (exploits) をbugtrackerやフォーラムに投稿しないでください。

シンプルなセキュリティ対策

  • 最良のセキュリティ対策は、データのバックアップを適切に取ることです! しかし、バックアップデータをリストアできないようでしたら、適切なバックアップと呼ぶことができません。リストア処理をテストしてください!
  • あなたが使用するソフトウェアまたはサービスのみをロードするようにしてください。
  • 定期的にMoodleのアップデートを行ってください。
  • あなたが寒い冬の日に着る服の層にならって、セキュリティ対策を行ってください。

基本的な推奨

  • それぞれのリリースでMoodleを定期的にアップデートしてください。
リリース後、公開されるセキュリティホール情報は、クラッカーの注意を引きます。古いバージョンほど、より脆弱性を含む場合があります。
  • PHPのregister globals (register_globals) を無効にしてください。
サードバーティ開発によるMoodle用スクリプトのXSS問題を防ぐ助けになります。
  • 管理者および教師には強力なパスワードを使用してください。
「推測が難しい」パスワードの使用は、アカウントの「brute force」クラッキングを防ぐ、基本的なセキュリティ対策です。
  • 信頼できるユーザにのみ教師アカウントを与えてください。プロダクションサーバ (実際に運用するサーバ) で、公開したサンドボックスにフリーの教師アカウントを作成しないでください。
教師アカウントは、非常に自由な権限があり、データを悪用したり盗むことが簡単にできてしまいます。
  • あなたのシステムを可能な限り分離してください。
もう1つの基本的なセキュリティテクニックは、異なるシステムで異なるパスワードを使用し、異なるサービスには異なるマシンを使用すること等です。このことは、1つのアカウントまたは1つのサーバが奪取されても、被害が広範囲に及ぶことを防ぎます。

定期的にアップデートを実行する

  • システムを定期的にアップデートしてください。
  • Windows Update (Microsoft Update)
  • Linux: up2date、yum、apt-get
cronを使用してスクリプトによる自動アップデートをお考えください。
  • Mac OSXシステムアップデート
  • php、apache、Moodleは、可能な限り常に最新のバージョンを使用してください。

最新情報を取得するため、メーリングリストを使用する

ファイアウォール

  • セキュリティ専門家は、デュアルファイアーウォールを推奨しています。
ハードウェア/ソフトウェアのコンビネーション
  • 利用しないサービスを無効にすることは、ファイアーウォールと同じく効果的です。
netstat -a コマンドを使用して、開いているネットワークポートを調査してください。
  • ファイアウォールは、防御を保障するものではありません。
  • 許可されたポート
80、443 (ssl)、9111 (chat用)
Remote admin: ssh 22 または RDP ( Remote Desktop Protocol ) 3389

最悪の事態に備える

Moodleセキュリティアラート (警報)

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

そのほかの考慮すべき事項

下記のすべては、あなたが考慮しても良い、セキュリティ全般に対して影響を与える事項です:

  • opentogoogleを無効にする、特にK12サイト。
  • SSLを使用する、httpslogins=yes。
  • ゲストアクセスを無効にする。
  • すべてのコースに登録キーを設定する。
  • 強固なパスワードを使用する。
  • セキュアフォーム設定を使用する。
  • MySQLのrootユーザにパスワードを設定する。
  • MySQLのネットワークアクセスを無効にする。

もっとも安全な/こだわり過ぎのファイルパーミッション

あなたがMoodleをシールドサーバで稼動させて (例 マシンにユーザログインを許可しない)、rootがMoodleコードおよびMoodleの設定 (config.php) を管理していると仮定すれば、これはもっとも厳重なパーミッションだと考えられます:

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

オーナー: apache user (apache、httpd、www-data、その他なんでも)
グループ: apache group (apache、httpd、www-data、その他なんでも)
パーミッション: ディレクトリに700、ファイルに600

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

オーナー: root
グループ: root
パーミッション: ディレクトリに755ファイルに644

あなたがローカルログインを許可している場合、2.は次のようにしてください:

オーナー: root
グループ: apache group
パーミッション: ディレクトリに750ファイルに640

これらのパーミッションは、こだわり過ぎのファイルパーミッションであると思ってください。より少ない厳密なパーミッションでmoodledataおよびmoodelディレクトリ (およびサブディレクトリ) を十分に安全にすることができます。

ログインしないとユーザプロファイルの写真が表示されないようにするには

現状では、ユーザプロファイルにアップロードした写真へは、ログインせずにアクセスすることが可能です。

  • Moodleを修正しない場合
  1. 「自分の写真を公開されたくない場合、個人的な写真をアップロードしない」旨を使用許諾等に記載する。
  2. または、config.phpに $CFG->disableuserimages = true; を追加して、ユーザが個人的な写真をアップロードできないようにする。
  • Moodleを修正する場合
/user/pix.phpを下記のように改造することで、ログインなしのユーザ写真アクセスを禁止する※1。
※1: ユーザがHTMLフォーマットのメールを受信する設定にしている場合、フォーラム投稿内容のメール通知でプロファイル写真が表示されないというデメリットがあります。

// $nomoodlecookie = true; <- 「//」でコメントアウトまたは削除

require_once('../config.php');
require_once($CFG->libdir.'/filelib.php');

require_login(); <- 追加

関連情報

セキュリティFAQ