Apacheの「すべて許可」は実際に何をしますか?


95

Ubuntu 13.04で実行されているApache / 2.4.6にApacheサーバーを更新しました。以前は、次のようなvhostファイルがありました。

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
</Directory>

しかし、私が走ったとき、「禁止されています。アクセスする権限がありません/」

少しグーグルを行った後、サイトを再び機能させるには、vhostが次のようになるように、次の行「Require all granted」を追加する必要があることがわかりました。

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
    Require all granted
</Directory>

これが「安全」であり、セキュリティ上の問題を引き起こさないかどうかを知りたい。Apacheのページで、「これは「すべてから許可」および「すべてから拒否」ディレクティブによって以前に提供されていた機能を模倣しています。このプロバイダーは、「許可」または「拒否」の2つの引数のいずれかを取ることができます。例では、すべてのリクエストへのアクセスを許可または拒否します。」

しかし、これがなんらかのセキュリティ問題であるかどうか、または過去にあなたが必要としなかったのになぜ私たちが今それをしなければならないのかについては述べていませんでした。


1
アップグレードドキュメントでは、「アクセス制御」の変更について詳しく説明しています。httpd.apache.org/docs/2.4/upgrading.html
ジョンマグノリア

回答:


87

2.4でアクセス制御の構成が変更され、古い構成はいくつかの変更なしでは互換性がありません。こちらをご覧ください

古い設定がAllow from all(IPアドレスがサービスへのアクセスをブロックされていない)の場合Require all granted、新しい機能は同等です。


4
言うまでもなく、古い方法はひどく紛らわしく、より賢明なものに置き換えるのに長い間遅れていました。
マイケルハンプトン

4
このような大きな変更については、構成ファイルを自動的に移行するか、少なくとも変更が必要なすべてのポイントを表示する何らかのサポートを期待しています。
ヴォルフガングファル

1
の実用的なデモンストレーションを見るといいでしょうRequire all denied
クラングプライム

5
これはに等しいとは思わないAllow from allRequire all granted他の既存のRequireルールと「マージ」する必要があります。私の場合、Require valid-userどこでも推奨されているように設定を盲目的に変換するとき、既存のものは無視されました。これは起こりうる最悪の事態でした
...-rudimeier

1
OPの質問に適切な答えがあればいいでしょう。「すべての同等物から許可」はあまり満足できません。
シャルクー

15

私はそれが古い投稿であることを知っていますが、私がいつも使っている機能的な例でもっと助けられると思います!

Apache 2.2では次のようになります。

    <Location />
       Order deny, allow
       allow from all
    </Location>
    <Location /adm>
        Order deny, allow
        deny from all
        allow from myniceip
    </Location>
    <Location /disabled>
        Order deny, allow
        deny from all
    </Location>

Apache 2.4では次のようになります。

   <Location />
       require all granted
    </Location>
   #Note that you dont need to use require all denied
   #to require only a group of ips.. 
    <Location /adm>
        require ip myniceip
    </Location>
    <Location /disabled>
        Require all denied
    </Location>

慎重になり htacess認証を使用する場合、この新しい構文はいくつか行うことができます悪いと予想外の事をそれはあなたのケースであれば読んでください、: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me- to-decide-require-valid-ip-or-require-valid-userとあなたは大丈夫です!


私にとっては、require all grantedHTTP認証が機能しないので、情報に感謝します。
authentictech

@authentictechすべての許可が必要なだけでなく、それを破ることができます。RequireAllまたはRequireAnyを適切に使用しないと、この新しい構文で予想される認証が完全に破られる可能性があります。お読みください:unix.stackexchange.com/questions/413309/...を。フィードバックありがとうございます。
ルチアーノアンドレスマティーニ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.