特定のアカウントのみIP制限を行う設定について

特定のアカウントのみIP制限を行う設定について

- 央之 國松 の投稿
返信数: 5

お世話になっております。


現在、Moodle 3.5上の特定のユーザーアカウントのみIP制限することを考えております。

受講者はインターネット上のどこからでもアクセスでき、管理者や教師は特定のIPアドレスからのみアクセスできるような実装です。

そのような実装はMoodle上で可能でしょうか?

可能な場合、どのような実装になりますでしょうか?

ご教示のほど、よろしくお願いいたします。

央之 國松 への返信

Re: 特定のアカウントのみIP制限を行う設定について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

認証プラグインタイプ「手動アカウント」でログインできるユーザに対してのみでしたら、下記Authentication by IPプラグインを使って指定したIPアドレスで特定のユーザのログインを制限することができます。

[oodle Plugins directory: Authentication by IP]
https://moodle.org/plugins/auth_ip

Moodle 3.5.3+ (Build: 20181123) にAuthentication by IPプラグインの動作を確認しましたところ、問題なく動作するようです。

Mitsuhiro Yoshida への返信

Re: 特定のアカウントのみIP制限を行う設定について

- 央之 國松 の投稿

ご返信ありがとうございます。


Authentication by IPプラグインを利用してみたところ、インストールまでは行うことができました。

しかし、下記手順でログインを行うことができませんでした。

その他に必要な設定等はございますでしょうか。


①「サイト管理」→「プラグイン」→「認証」→「IP認証」より、ログインするIPアドレスを指定する。

②テスト用ユーザの認証方法を「IP認証」に設定する。

③ログインページより、テスト用ユーザのIDとパスワードを入力する。

④「不正なログインです、再度ログインしてください。」と表示され、ログインに失敗する。


テスト用ユーザの認証方法を「手動アカウント」にした場合は、IDとパスワードでログインすることができました。


以上です。

よろしくお願いいたします。

央之 國松 への返信

Re: 特定のアカウントのみIP制限を行う設定について

- 央之 國松 の投稿

お世話になっております。


Authentication by IPプラグイン利用時にテスト用ユーザでログインできない問題ですが、下記の方法により自己解決しました。


①下記URLの、「Modify Application 1) ~ 5)」の通りに設定を行う。(今回、AWSのALBを利用していました。)

 https://medium.com/tensult/application-load-balancer-with-ssl-ab39d41d63c5

②一つ前の返信の①~③の通りに設定を行う。


以上です。

ありがとうございました。

央之 國松 への返信

Re: 特定のアカウントのみIP制限を行う設定について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

貴重な情報を頂きまして、ありがとうございます。


AWS (Amazon Web Services) のロードバランサELB (Elastic Load Balancing) を使用している場合、下記設定が必要なのですね。

[AWS Application Load Balancer with SSL – Tensult Blogs – Medium]
https://medium.com/tensult/application-load-balancer-with-ssl-ab39d41d63c5

Modify Application

The steps added below are applicable to any Apache based application. I have considered Moodle as the application here.

1) In the moodle directory create a .htaccess to accommodate http re-write rules.

RewriteEngine On
RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

2) Edit moodle/config.php to replace http with https

$CFG->wwwroot = ‘https://www.yourdomain.com';

3) To have load balancer support add the line below to moodle/config.php

$CFG->sslproxy  = 1

4) Restart the web service.

5) Access the moodle web site from your web browser and test it.

UPDATE: AWS recently added redirection feature to Application Load balancer so now we can directly use ALB to redirect the web request from HTTP to HTTPS.
Mitsuhiro Yoshida への返信

Re: 特定のアカウントのみIP制限を行う設定について

- 央之 國松 の投稿

お世話になっております。


もともとの問題であったIPアドレス制限とは別の話題となってしまいますが、以下のような状況でした。


・インターネットからELBへの通信にはHTTPS、ELBからMoodleサーバへの通信はHTTPで行う

・ELBには、外部DNSから[moodle.test.com]のようなサブドメインのCNAMEを張っている


→上記の状態でインターネットからELBにアクセスした場合、wwwrootの設定によって問題が発生する。

・wwwroot = http://[MoodleサーバのIPアドレス] →Moodleへ接続できるが、ブラウザのアドレスバーにIPアドレスが表示されてしまう。

・wwwroot = https://[MoodleサーバのIPアドレス] →Moodleに接続できない

・wwwroot = http://[moodle.test.com] →Moodleに接続できるが、ELBにHTTPの通信許可設定が必要。(直接HTTPで接続できてしまうため、HTTPSを利用する意味がなくなる)

・wwwroot = https://[moodle.test.com] →リダイレクトループが発生する。


最終的には、URLの通りの設定を行うことで、IPアドレス制限、wwwrootの問題がともに解決いたしました。

以上です。

最大評点: お役立ち度: ★★★★★★★ (1)