Почему модуль apache2 нельзя удалить?

Fedora 29 с HTTPD Apache 2.4

По умолчанию доступ к системе каталогов сервера защищен этой записью в httpd.conf:

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

... и перезаписывается отдельно для каждого каталога с дополнительными правилами <каталог> ; поэтому у меня есть блоки виртуального хоста, как показано ниже, и я хотел бы запустить тест, чтобы убедиться, что не разрешает доступ за пределами DocumentRoot. Как мне это сделать?

<VirtualHost insurgent.info:80>
    DocumentRoot "/var/httpd/insurgent"
    ServerName insurgent.info

<Directory "/"> 
    Require all granted
    Options Indexes FollowSymLinks IncludesNoExec
    AllowOverride None
    XBitHack Full
</Directory>

<Directory "/var/httpd/insurgent/.cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/httpd/insurgent/.cgi-bin/"
</IfModule>
</VirtualHost>
0
задан 5 May 2019 в 13:05
1 ответ

Каталог указывает на каталог в вашей файловой системе, поэтому в виртуальных хостах вы указываете

<Directory /var/httpd/insurgent>
Require all granted
#other directives 
</Directory>

для разрешения доступа к вашему documentroot.

Официальная документация очень специфична в этом отношении: http://httpd.apache.org/docs/2.4/mod/core.html#directory

Запись, указывающая на /, должна быть только в контексте конфигурации сервера

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

и действительно необходима, чтобы запретить доступ куда-либо ещё, но не используйте её в виртуальных хостах!

.
0
ответ дан 5 December 2019 в 03:05

Теги

Похожие вопросы