Apache .conf файлы Утилита "Требовать все"? - PullRequest
0 голосов
/ 22 февраля 2020

Я работаю с Apache .conf файлами в Fedora 30.

В /etc/httpd/conf/httpd.conf есть:

<Directory />
    AllowOverride none
    Require all denied
</Directory>

Есть также :

DocumentRoot "/var/www/html" 

Это означает, что «localhost» начинается с этого «/ var / www/html» репертуара.

Вопрос 1: Для чего используется «Требовать все отказано» для Директории "/" тогда как Document Root находится на более низком уровне (поэтому сервер не будет обслуживать файлы в репертуарах более высокого уровня)?

В конце httpd.conf есть:

IncludeOptional conf.d/*.conf

Итак, я создаю personal.conf в "/etc/httpd/conf.d"; внутри я устанавливаю:

<Directory "/var/www">
    AllowOverride None
    Require all denied
</Directory>

я перезагружаю Apache (перезапуск systemctl httpd.service), но localhost / index. html (он же "Document Root" / index. html or " /var/www/html"/index.html) по-прежнему доступен.

Действует так, как если бы эта Директива в httpd.conf была приоритетной:

<Directory "/var/www/html">
    Require all granted
</Directory>

Вопрос 2: Итак Какая польза от «Требовать все отказано» в хранилище более высокого уровня?

Спасибо за вашу помощь:)

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

спасибо за ваш ответ.

Теперь по вопросу 2; давайте представим дом: наружную [дверь 1] зал [дверь 2] коридор [дверь 3] гостиная.

В /etc/httpd/conf/httpd.conf я закрываю входную дверь [дверь 1 ] дома

<Directory />
    AllowOverride none
    Require all denied
</Directory>

Я открываю дверь между коридором и коридором [дверь 2]

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

Я открываю дверь между коридором и гостиной [дверь 3]

<Directory "/var/www/html">
    AllowOverride None
    Require all granted
</Directory>

Затем в файле personal.conf в "/etc/httpd/conf.d" Я закрываю дверь между коридором и коридором [дверь 2] :

<Directory "/var/www">
    AllowOverride None
    Require all denied
</Directory>

Почему гостиная по-прежнему доступна (localhost / index. html или / var / www/html/index.html доступна) , тогда как [дверь 2] закрыто?

Мне нужно уточнить:

<Directory "/var/www/html">
    AllowOverride None
    Require all denied
</Directory>

в personal.conf

Чтобы получить «Запрещено У вас нет прав доступа этот ресурс. " сообщение ...

Еще раз спасибо.

0 голосов
/ 22 февраля 2020

Вопрос 1: Какая польза от «Требовать все отказано» для Каталога / /, тогда как Документ Root находится на более низком уровне (поэтому сервер не будет обслуживать какие-либо файлы в репертуарах более высокого уровня)?

Вопрос 2. Итак, что такое «Требовать все отказано» в хранилище более высокого уровня?

Сервер может легко обслуживать файлы ниже документа root, если Require all denied там не было, вам нужна только небольшая неверная конфигурация на вашем сервере. Представьте себе, например, Alias, как

Alias /etc /etc

, который позволит вам прочитать файл паролей из http://localhost/etc/passwd или другого конфиденциального материала. Для конфигурации по умолчанию вам потребуется явное переопределение, например

<Directory /etc>
   Require all granted
</Directory>

.

Директива

<Directory />
    AllowOverride none
    Require all denied
</Directory>

используется для предотвращения любого доступа ниже вашего * Каталог 1023 * в качестве механизма защиты («будьте настолько ограничены, насколько это возможно»).

...