セキュリティの推奨事項

すべてのWebアプリケーションソフトウェアは非常に複雑で、すべてのアプリケーションには時々見られるセキュリティ上の問題があり、通常はプログラマーが予想していなかった入力の組み合わせが関係しています。 Moodleプロジェクトはセキュリティを重視しており、Moodleが発見したときにそのようなホールを埋めるために継続的にMoodleを改善しています。


前書き

  • このページにはあなたのMoodleインストールのための重要なセキュリティ対策が含まれています。
  • セキュリティ問題をMoodleトラッカーに報告し(そしてセキュリティ問題としてマークしてください)、開発者がそれを見て、登録されたMoodleサイトに修正をできるだけ早く知らせることができるようにしてください。
  • (まだアップグレードしていないMoodle管理者を保護するために)実際のエクスプロイトをフォーラムやWeb上の他の場所に投稿しないでください。

簡単なセキュリティ対策

  • 最良のセキュリティ戦略は優れたバックアップです。あなたはそれをリストアすることができない限りしかし、あなたは良いバックアップを持っていません。リストア手順をテストしてください。
  • 使用するソフトウェアまたはサービスのみをロードする
  • 定期的なアップデートを実行する
  • 寒い冬の日に身に着けている服の層の後にあなたのセキュリティをモデル化する

基本的な推奨事項

リリースごとに定期的にMoodleを更新する
公開されたセキュリティホールはリリース後にクラッカーの注意を引く。バージョンが古いほど、含まれる可能性が高い脆弱性が多くなります。
httpsを使用して(ログインページだけでなく)すべてのページを保護する
httpsのみですべてのページにアクセスできるようにすることで、あなたのMoodleインスタンスとあなたのユーザからのすべてのトラフィックを保護してください。これにより、ログイン時のパスワードが保護されるだけでなく、WLANプロバイダーなどの第三者からすべてのユーザーデータが傍受されたり操作されたりすることがないように、ユーザーのプライバシーが保護されます。無料のhttps証明書はhttps://letsencrypt.org/から入手できます 。さらに、あなたのmoodle設定でhttpslogin = yesを設定してログイン認証情報を送信するための追加の保護層を追加してください。
グローバル登録を無効にする必要があります
これはサードパーティのスクリプトで起こりうるXSS問題を防ぐのに役立ちます。
管理者と教師用の強力なパスワードを使用する
「難しい」パスワードを選択することは、「ブルートフォース」アカウントのクラッキングから保護するための基本的なセキュリティ対策です。
信頼できるユーザーにのみ教師アカウントを与えます。運用サーバー上に無料の教師アカウントを持つパブリックサンドボックスを作成しないでください。
教師アカウントは、より自由な権限を持ち、データが悪用されたり盗まれたりする可能性がある状況を簡単に作り出すことができます。
システムをできるだけ分離する
もう1つの基本的なセキュリティ技術は、システムごとに異なるパスワードを使用する、サービスごとに異なるマシンを使用するなどです。これにより、1つのアカウントまたは1つのサーバーが侵害された場合でも被害が広がるのを防ぐことができます。

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

  • 自動更新システムを使用する
  • Windowsアップデート
  • Linux:up2date、yum、apt-get
cronでスケジュールされたスクリプトを使って更新を自動化することを検討してください
  • Mac OSXアップデートシステム
  • php、apache、およびmoodleを最新の状態に保つ

メーリングリストを使って最新情報を入手する

ファイアウォール

  • セキュリティの専門家がデュアルファイアウォールを推奨
ハードウェアとソフトウェアの組み合わせの違い
  • 未使用のサービスを無効にすることは、ファイアウォールと同じくらい効果的です。
開いているネットワークポートを確認するには、netstat -aを使用してください。
  • 保護を保証するものではありません
  • ポートを許可
80、443(ssl)、および9111(チャット用)
リモート管理者:ssh 22、またはrdp 3389

パスワードポリシー

パスワードポリシーは、 設定>サイト管理>セキュリティ> サイトポリシー設定できます。

パスワードの複雑さを強制するかどうかを決定するチェックボックス、パスワードの最小長、最小桁数、最小小文字数、最小大文字数、および最小数を設定するオプションがあります。英数字以外の文字

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

初期パスワードの変更をユーザーに要求するとともにパスワードを複雑にすることは、ユーザーが "正しいパスワード"を選択し、実際に使用していることを確認するのに役立ちます。

しかし、チェックをあまりにも面倒にすることは、彼らがそれを書き留めることになるので、現実的です。

最悪の事態に備えて

Moodleセキュリティ警告

  • あなたのサイトをMoodle.orgに登録してください
登録ユーザーはEメールアラートを受け取ります

その他の考慮事項

これらはあなたがあなたの全体的なセキュリティに影響を与えると考えるかもしれないすべてのものです:

  • セキュリティ保護されたフォーム設定を使用する
  • 常にmysqlのrootユーザーパスワードを設定する
  • MySQLのネットワークアクセスを無効にする
  • SSLを使用、httpslogins = yes
  • 良いパスワードを使用してください- [設定]> [サイトの管理>セキュリティ>でパスワードポリシーを設定するサイトポリシー
  • opentogoogle設定を有効にしないでください( [設定]> [サイト管理]> [セキュリティ]> [ サイトポリシー] )。
  • ゲストアクセスを無効にする
  • すべてのコースに登録キーを配置するか、すべてのコースにCourse Enrollable = Noを設定します。
  • [管理]> [サイトの管理]> [プラグイン]> [登録]> [自己登録]で登録キーのヒントが無効になっていることを確認します(これはデフォルトです)


最も安全/偏執的なファイルアクセス許可

MS Windows許可システムはまったく異なるため、以下の情報はLinux / Unixベースのインストールにのみ適用されます

サーバーの設定に応じて、2つの異なるシナリオがあります。

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

以下のセクションでは、Webサービスのユーザーアカウントとグループを使用して権限を設定する必要があるので、それらを知っておく必要があります。これはサーバーごとにかなり異なりますが、この機能がサーバーで無効になっていない場合は、 http//your.moodle.site/admin/phpinfo.php (adminとしてログイン)にアクセスしてから、 「apache」テーブル内の「User / Group」という行を探します。たとえば、ユーザーアカウントには「www-data」、グループには「www-data」もあります。

専用サーバーでMoodleを起動する

あなたがMoodleを封印されたサーバ上で実行している(つまり、マシン上でユーザログインが許可されていない)とそのルートがmoodleコードとmoodle設定(config.php)の両方に対する変更を担当していると仮定します。の:

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

所有者:apacheユーザー(apache、httpd、www-data、その他何でも。上記参照)
group:apacheグループ(apache、httpd、www-data、その他何でも。上記参照)
権限:ディレクトリに700、ファイルに600

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

所有者:ルート
グループ:ルート
権限:ディレクトリに755、ファイルに644。

一般ユーザーにローカルログインを許可する場合は、次のようにします。

所有者:ルート
group:apacheグループ(apache、httpd、www-data、その他何でも。上記参照)
権限:ディレクトリに750、ファイルに640。

これらの許可を最も妄想的なものと考えてください。あなたは、moodledataディレクトリとmoodleディレクトリ(およびサブディレクトリ)の両方で、より厳格なアクセス許可で十分な安全性を確保できます。

共有ホスティング環境でMoodleを実行する

共有ホスティング環境でMoodleを実行している場合、上記の権限はおそらく間違っています。ディレクトリのアクセス許可として700(ファイルの場合は600)を設定した場合は、おそらくWebサービスのユーザーアカウントによるディレクトリおよびファイルへのアクセスが拒否されていることになります。

あなたができるだけあなたの許可を厳しくしたいならば、あなたは知る必要があるでしょう:

  1. Webサービスが実行されているユーザーアカウントとグループ(上記参照)。
  2. moodledataとmoodleディレクトリの両方のディレクトリ/ファイルの所有者(これは通常あなたのクライアントユーザアカウントです)、そしてディレクトリ/ファイルのグループ。通常、この情報はホスティングコントロールパネルのファイルマネージャから入手できます。 moodleフォルダに移動して任意のディレクトリまたはファイルを選択し、そのファイルの権限、所有者、およびグループを表示/変更してみてください。通常は現在の権限、所有者、およびグループが表示されます。 moodledataディレクトリについても同じことをしてください。

それから、以下のシナリオに応じて、あなたはあなたのmoodledataディレクトリに対して異なるセットのパーミッション(より安全なものから安全性の低いものへとリストされる)を使うべきです:

  1. Webサービスアカウントとディレクトリ/ファイルの所有者が同じ場合は、ディレクトリに700、ファイルに600を使用する必要があります。
  2. Webサービスグループとディレクトリ/ファイルのグループが同じ場合は、ディレクトリに770、ファイルに660を使用する必要があります。
  3. 上記のいずれにも該当しない場合は、ディレクトリに777、ファイルに666を使用する必要があります。これは安全性は低くなりますが、これが唯一の選択肢です。 707と606はより安全ですが、あなたの特定の設定に応じて、動作するかもしれないし動作しないかもしれません。

実際には、moodledataに上記で指定された許可を設定する必要があります。内部のすべてのディレクトリとファイルはWebサービス自体によって作成され、正しい許可を持つことになるからです。

moodleディレクトリに関しては、Webサービスのユーザアカウントがファイルを読むことができ、ディレクトリを読んで実行することができる限り、それで十分なはずです。どのファイルまたはサブディレクトリについても、Webサービスアカウント/グループに書き込み権限を付与する必要はありません。唯一の欠点は、Moodleがそれを作成することができないので、あなたがインストールプロセスの間に手動でconfig.phpを作成する必要があるということです。しかし、それは大きな問題ではないはずです。

関連情報

Moodleフォーラムディスカッションを使用する: