セキュリティ
慎重に翻訳中です。
すべてのウェブアプリケーションソフトウェアは、非常に複雑で、どのアップリケーションにも時々発見されるセキュリティの問題があります。通常、これらの問題は、プログラマが予期することのできない入力の組み合わせに関係しています。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は、可能な限り常に最新のバージョンを使用してください。
最新情報を取得するため、メーリングリストを使用する
- CERT - http://www.us-cert.gov/cas/signup.html
- PHP - http://www.php.net/mailing-lists.php - Announcements listにサインアップ
- MySQL - http://lists.mysql.com - MySQL Announcementsにサインアップ
ファイアウォール
- セキュリティ専門家は、デュアルファイアーウォールを推奨しています。
- ハードウェア/ソフトウェアのコンビネーション
- 利用しないサービスを無効にすることは、ファイアーウォールと同じく効果的です。
- netstat -a コマンドを使用して、開いているネットワークポートを調査してください。
- ファイアウォールは、防御を保障するものではありません。
- 許可されたポート
- 80、443 ( ssl )、9111 ( chat用 )
- Remote admin: ssh 22 または RDP ( Remote Desktop Protocol ) 3389
最悪の事態に備える
- 常にバックアップを取ってください。
- リカバリの手順を前もって練習してください。
- rootkit探知プログラムを定期的に使用してください。
- Linux/MacOSX - http://www.chkrootkit.org/
- Windows - http://www.sysinternals.com/Utilities/RootkitRevealer.html
Moodleセキュリティアラート ( 警報 )
- あなたのサイトをMoodle.orgに登録してください。
- 登録したユーザにはメールアラート ( 警報 ) が送信されます。
- セキュリティアラートはオンラインでも投稿されます。
- ウェブ - http://security.moodle.org/
- RSSフィード - http://security.moodle.org/rss/file.php/1/1/forum/1/rss.xml
そのほかの考慮すべき事項
下記のすべては、あなたが考慮しても良い、セキュリティ全般に対して影響を与える事項です:
- opentogoogleを無効にする、特にK12サイト。
- SSLを使用する、httpslogins=yes。
- ゲストアクセスを無効にする。
- すべてのコースに登録キーを設定する。
- 強固なパスワードを使用する。
- セキュアフォーム設定を使用する。
- MySQLのrootユーザにパスワードを設定する。
- MySQLのネットワークアクセスを無効にする。
Most secure/paranoid file permissions
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:
1. moodledata directory and all of its contents (and subdirs, includes sessions):
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:
owner: root group: apache group 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).
関連情報
- Using Moodle Guide to Securing your Moodle Server forum discussion