質問するログイン新規登録

質問編集履歴

5

タイトルの修正

2016/10/17 02:39

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Apache2.2で有効だったACLがApache2.4では有効化されない
1
+ Apache2.2で有効だったACLがApache2.4で無視され
body CHANGED
File without changes

4

タイトル修正

2016/10/17 02:39

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- あいApache2.2で有効だったACLがApache2.4では有効化されない
1
+ Apache2.2で有効だったACLがApache2.4では有効化されない
body CHANGED
File without changes

3

タイトルの改善

2016/10/17 02:21

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Apache2.4にてRequireよりもRewriteRule優先され
1
+ あいApache2.2で有効だったACLApache2.4では有効化されない
body CHANGED
File without changes

2

誤記修正

2016/10/17 02:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,9 @@
1
1
  ###前提・実現したいこと
2
- 最終的にやりたいことは「特定のIPからのアクセスだけ403にせずリライトする」ですが、事象解説のため簡略した例で説明させていただきます。
2
+ 最終的にやりたいことは「特定のIPからのアクセスだけ403にせずリライトする」ですが、事象解説のため簡略例で説明させていただきます。
3
3
 
4
- 例として httpd.conf に後述の Deny(for Apa2.2) または Require(for Apa2.4)設定を記載してアクセスをACLで全て拒否しているとします。
4
+ httpd.conf に対して、後述の Deny(for Apa2.2) または Require(for Apa2.4)設定を記載して、上位ディレクトリレベルで全てのアクセスをACLで拒否しています。
5
- この状態でApache2.4にRewriteRule設定を入れも、ACLでの全拒否状態維持されることを期待しています。
5
+ この状態でRewriteRule設定を入れた場合でも、ACLが有効化されたままで403エラーとなることを実現たいと考えています。
6
6
 
7
- 後述のConf設定の場合、ApacheのDirectory仕様ではディレクトリの階層が上のほうから処理されるため、ACLが有効化されて403エラーになるはずです。
8
-
9
7
  ###発生している問題・エラーメッセージ
10
8
  <結果>
11
9
  ブラウザからアクセスした結果、
@@ -17,6 +15,7 @@
17
15
  ・Apache2.4では、本来deniedとなるはずのアクセスが許可されてしまい、
18
16
  リライトが機能してgoogleへ302リダイレクトされてしまいます。
19
17
  ・つまり2.2とは逆で、ACL設定よりもRewriteRuleの設定が優先されているように見えます。
18
+ ・ApacheのDirectory仕様ではディレクトリの階層が上のほうから処理されるため、本来であればACL設定が効いて403エラーとなるはずです。
20
19
 
21
20
  ###該当のソースコード
22
21
  ```

1

一部不明瞭な記述があったため、見直しました。

2016/10/14 09:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,23 +1,22 @@
1
- ※最終的にやりたいことは「特定のIPからのアクセスだけ403にせずリライトする」ですが、
2
- 事象説明のため、わかりやすい例として内容を大幅に簡素化して記載しています
3
-
4
1
  ###前提・実現したいこと
5
- 例として httpd.conf に後述の設定を記載してアクセスを全て拒否しています。
6
- Apache2.4RewriteRule設定を入れろ、Requireによるアクセス制御(ACL設定)効かない事象が発生ました。
2
+ 最終的やりとは「特定のIPからのアクセスだけ403にせずリライトする」です事象解説のため、簡略した例で説明させていただきます
7
3
 
4
+ 例として httpd.conf に後述の Deny(for Apa2.2) または Require(for Apa2.4)設定を記載してアクセスをACLで全て拒否しているとします。
5
+ この状態でApache2.4にRewriteRule設定を入れても、ACLでの全拒否状態が維持されることを期待しています。
6
+
7
+ 後述のConf設定の場合、ApacheのDirectory仕様ではディレクトリの階層が上のほうから処理されるため、ACLが有効化されて403エラーになるはずです。
8
+
8
9
  ###発生している問題・エラーメッセージ
9
- <想定される動作>
10
- Apacheの仕様ではディレクトリの階層が上のほうから処理されるため
11
- ACLが有効化されて403エラーになるはずです。
12
-
13
10
  <結果>
11
+ ブラウザからアクセスした結果、
14
12
  ・Apache2.2では403エラー(正常にACLが効いている)
15
- ・Apache2.4では302でリダイレクト(ACLが効いていない)
13
+ ・Apache2.4では302でリダイレクトでgoogleに飛ばされる(ACLが効いていない)
14
+ となりました。
16
15
 
17
16
  <問題点>
18
17
  ・Apache2.4では、本来deniedとなるはずのアクセスが許可されてしまい、
19
18
  リライトが機能してgoogleへ302リダイレクトされてしまいます。
20
- ・つまりACLの記述よりもRewriteRuleの読み込みが優先されているように見えます。
19
+ ・つまり2.2とは逆で、ACL設定よりもRewriteRuleの設定が優先されているように見えます。
21
20
 
22
21
  ###該当のソースコード
23
22
  ```
@@ -52,6 +51,10 @@
52
51
  ・Apache2.4からアクセス制御の認証仕様が変更されたため、
53
52
  Orderを書くのではなくRequireになりましたが、その関係では? と疑っていますが
54
53
  Web上にも同様の知見がなく、1日中Confをいろいろ変更して試してみたのですが解決していない状況です。
54
+ ・<Location />
55
+ Require all denied
56
+ </Location>
57
+ でも結果は同じでした(2.2は403で、2.4は302)。
55
58
  ・RHバンドル版ではなくソースコンパイル版のApacheですので、RH社への問い合わせができず、自己解決するしかない状況です。
56
59
  お力添えいただけますと幸甚です。
57
60