セキュリティ
慎重に翻訳中です。
すべてのウェブアプリケーションソフトウェアは、非常に複雑で、どのアップリケーションにも時々発見されるセキュリティの問題があります。通常、これらの問題は、プログラマが予期することのできない入力の組み合わせに関係しています。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は、可能な限り常に最新のバージョンを使用してください。
Use mailing lists to stay updated
- CERT - http://www.us-cert.gov/cas/signup.html
- PHP - http://www.php.net/mailing-lists.php - sign up for Announcements list
- MySQL - http://lists.mysql.com - sign up for MySQL Announcements
ファイアウォール
- Security experts recommend a dual firewall
- Differing hardware/software combinations
- Disabling unused services is often as effective as a firewall
- Use netstat -a to review open network ports
- Not a guarantee of protection
- Allow ports
- 80, 443(ssl), and 9111 (for chat),
- Remote admin: ssh 22, or rpd 3389
Be prepared for the worst
- Have backups ready
- Practice recovery procedures ahead of time
- Use a rootkit detector on a regular basis
- Linux/MacOSX - http://www.chkrootkit.org/
- Windows - http://www.sysinternals.com/Utilities/RootkitRevealer.html
Moodle security alerts
- Register your site with Moodle.org
- Registered users receive email alerts
- Security alerts also posted online
- Web - http://security.moodle.org/
- RSS feed - http://security.moodle.org/rss/file.php/1/1/forum/1/rss.xml
Miscellaneous considerations
These are all things you might consider that impact your overall security:
- Turn off opentogoogle, esp for K12 sites
- Use SSL, httpslogins=yes
- 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
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