Pertanyaan Apa yang dibutuhkan Apache "Memerlukan semua yang dikabulkan"?


Saya baru saja memperbarui server Apache saya ke Apache / 2.4.6 yang berjalan di bawah Ubuntu 13.04. Saya dulu punya file vhost yang memiliki hal berikut:

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

Tapi ketika saya berlari bahwa saya mendapat "Forbidden. Anda tidak memiliki izin untuk mengakses /"

Setelah melakukan sedikit googling, saya menemukan bahwa untuk membuat situs saya berfungsi kembali, saya perlu menambahkan baris berikut "Minta semua diberikan" sehingga vhost saya terlihat seperti ini:

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

Saya ingin tahu apakah ini "aman" dan tidak membawa masalah keamanan apa pun. Saya membaca di Apache halaman bahwa ini "meniru fungsi yang sebelumnya disediakan oleh 'Izinkan dari semua' dan 'Tolaklah dari semua' arahan. Penyedia ini dapat mengambil satu dari dua argumen yang 'diberikan' atau 'ditolak'. Contoh berikut akan mengabulkan atau menolak akses ke semua permintaan. "

Tapi itu tidak mengatakan apakah ini adalah masalah keamanan atau mengapa kita harus melakukannya ketika di masa lalu Anda tidak perlu melakukannya.


81
2017-10-29 21:51




Dokumen pemutakhiran menjelaskan perubahan 'Kontrol Akses' secara terperinci. httpd.apache.org/docs/2.4/upgrading.html - John Magnolia


Jawaban:


Konfigurasi kontrol akses berubah dalam 2,4, dan konfigurasi lama tidak kompatibel tanpa beberapa perubahan. Lihat sini.

Jika konfigurasi lama Anda adalah Allow from all (tidak ada alamat IP diblokir dari mengakses layanan), lalu Require all granted adalah equivilent fungsional baru.


81
2017-10-30 02:31



Belum lagi, metode lama sangat membingungkan dan sudah lama terlambat untuk diganti dengan sesuatu yang lebih masuk akal. - Michael Hampton♦
Untuk perubahan besar seperti itu, saya mengharapkan semacam dukungan untuk memigrasikan file konfigurasi secara otomatis atau setidaknya menunjukkan semua titik di mana diperlukan perubahan. - Wolfgang Fahl
Akan menyenangkan untuk melihat demonstrasi kerja Require all denied . - Kraang Prime
Saya tidak berpikir ini setara dengan Allow from all. Anda harus "menggabungkan" Require all granted dengan yang ada lainnya Require aturan. Dalam kasus saya yang sudah ada Require valid-user diabaikan ketika secara buta mengubah konfigurasi seperti itu disarankan di mana-mana. Ini adalah hal terburuk yang bisa terjadi ... - rudimeier
Akan sangat menyenangkan untuk memiliki jawaban yang tepat untuk pertanyaan OP. "Izinkan dari semua yang setara" tidak terlalu memuaskan. - Sharcoux


Saya tahu ini adalah posting lama tetapi saya pikir itu dapat membantu lebih banyak dengan contoh fungsional yang selalu saya gunakan!

Dalam apache 2.2 akan seperti:

    <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>

Dalam Apache 2.4 akan menjadi seperti:

   <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>

Hati-hati  saat menggunakan otentikasi htacess, sintaks baru ini dapat melakukan beberapa hal-hal buruk dan tak terduga, jika itu kasus Anda, silakan baca: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me-to-decide-require-valid-ip-or-require-valid-user dan kamu harus baik-baik saja!


9
2017-12-08 12:02