Как к chroot VirtualHosts на сервере Apache?

порядок отклоняет, позволяет, для блокирования дюйм/с/хостов (и не должен действительно использоваться для блокирования хостов, поскольку это сделает поиск DNS для каждого запроса, который мог быть заблокирован).

Мое личное отношение - то, что необходимо просто заблаговременно заблокировать любую попытку использования горячих ссылок вместо того, чтобы блокировать тех, которые злоупотребляют им. если бы Вы хотели заблокировать все .ru ссылающиеся домены, то они были бы покрыты по другим правилам для Ваших изображений.

Если бы Вы хотели заблокировать их от соединения до Вашего сайта вообще, то необходимо было бы записать более общее правило и включать их ниже правил что блок использование горячих ссылок изображения:

RewriteCond %{HTTP_REFERER} ^http://(.*@)?([a-z0-9]+\.)*(refblock\.com|tamanria\.com|\.ru)(:[0-9]+)?(/.*)?$ [NC]
RewriteRule .* - [F,L]
1
задан 1 March 2012 в 12:52
2 ответа

Это, так сказать, баг. Проблема в том, что Apache проверяет ваш файл конфигурации перед фактическим запуском, что имеет смысл по ряду причин. Но это означает, что проверка выполняется до запуска системного вызова chroot, поэтому каталог не найден. Это сообщение можно проигнорировать, но от них невозможно избавиться, кроме редактирования кода Apache.

2
ответ дан 3 December 2019 в 17:16

#1) Разборка виртуальных хостов по отдельности не поддерживается. Контекстом" для директивы ChrootDir является "server config", а значит...

"Это означает, что директива может быть использована в конфигурационных файлах сервера (например, httpd.conf), но не в контейнерах или . Это вообще не разрешено в .htaccess файлах". [1]

В противном случае, это уже отлично работает, хотя и с раздражающими предупреждениями, от которых легко избавиться. Просто...

cd / ; ln -s /usr/local/www/apache24/data .

... и тогда вы не только избавитесь от поддельных и надоедливых предупреждений, но и получите красивый, короткий и удобный путь к каталогу Apache ChrootDir.

В моем [да, во FreeBSD тоже] случае это был...

cd / ; ln -s /usr/local/www/apache24/data/vhosts .

... что мне кажется немного приятнее, но каждому своё.

#2) Здесь вы являетесь "chroot[ing] Apache's global DocumentRoot". Как уже говорилось, это все, что поддерживается. Ваши каталоги /test-? будут работать как виртуальные хосты, если вы закончите их настройку с помощью директив ServerName и всего остального, что вы захотите. То же самое и с SSL.

*). Что касается вашего провайдера, то он может делать все возможное, чтобы добиться своей изоляции. Отсюда не скажешь. Простите.

*) Наконец, поскольку вы используете PHP, вы также можете установить "open_basedir" в вашем файле php.ini, чтобы заблокировать его аналогичным образом. И заметьте, что эта может быть установлена индивидуально для каждого виртуального хоста, включив в определение каждого виртуального хоста нечто подобное...

php_admin_value open_basedir "/данные/тест-1"

[1] http://httpd.apache.org/docs/2.4/mod/mod_unixd.html#chrootdir

3
ответ дан 3 December 2019 в 17:16

Теги

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