Стандартная дебиановская сборка апача предполагает, что DocumentRoot лежит в /var/www.
Ну и пусть себе лежит, место ничем не хуже других. Тем более, что если просто зайти на морду сайта, то срабатывает установленный по умолчанию RedirectMatch ^/$ /apache2-default/
Если сайтов становится больше одного, то каждому надо создавать свой подкаталог. Подкаталоги логично создавать там же - в /var/www/.
А дефолтовый сайт часто оставляют. Он ловит все запросы, не адресованные к другим явно определённым сайтам, и радостно говорит It works!. Ну и пусть говорит.
Вот тут-то и прячется несколько неожиданная засада. Остальные сайты лежат аккурат в подкаталогах /var/www. Который есть DocumentRoot от дефолтового сайта.
То есть, через него можно получить доступ к файлам всех остальных сайтов.
И что особенно радостно, по умолчанию для /var/www/ включены Indexes и FollowSymLinks, а никакой перл или PHP как раз не включены. Поэтому есть сильно ненулевая вероятность, что все скрипты будут отдаваться в виде исходников.
Мораль:
1) отключайте ненужную функциональность. даже если она на первый взгляд ничему не мешает. чисто из чувства паранойи.
2) не создавайте DocumentRoot одного сайта в подкаталоге другого. а дефолтовый сайт, если вы решили его оставить, лучше перенести на уровень пониже - например, в /var/www/default
3) блоки <Directory> по возможности располагайте на глобальном уровне, ВНЕ <VirtualHost>. и ограничения доступа приделывайте к Directory, а не к VirtualHost. в качестве дополнительной защиты от непредусмотренного доступа через другой виртуальный хост.
Написано сие по результатам внимательного рассматривания собственного сервера.
А у вас, случайно, не так? :)
Ну и пусть себе лежит, место ничем не хуже других. Тем более, что если просто зайти на морду сайта, то срабатывает установленный по умолчанию RedirectMatch ^/$ /apache2-default/
Если сайтов становится больше одного, то каждому надо создавать свой подкаталог. Подкаталоги логично создавать там же - в /var/www/.
А дефолтовый сайт часто оставляют. Он ловит все запросы, не адресованные к другим явно определённым сайтам, и радостно говорит It works!. Ну и пусть говорит.
Вот тут-то и прячется несколько неожиданная засада. Остальные сайты лежат аккурат в подкаталогах /var/www. Который есть DocumentRoot от дефолтового сайта.
То есть, через него можно получить доступ к файлам всех остальных сайтов.
И что особенно радостно, по умолчанию для /var/www/ включены Indexes и FollowSymLinks, а никакой перл или PHP как раз не включены. Поэтому есть сильно ненулевая вероятность, что все скрипты будут отдаваться в виде исходников.
Мораль:
1) отключайте ненужную функциональность. даже если она на первый взгляд ничему не мешает. чисто из чувства паранойи.
2) не создавайте DocumentRoot одного сайта в подкаталоге другого. а дефолтовый сайт, если вы решили его оставить, лучше перенести на уровень пониже - например, в /var/www/default
3) блоки <Directory> по возможности располагайте на глобальном уровне, ВНЕ <VirtualHost>. и ограничения доступа приделывайте к Directory, а не к VirtualHost. в качестве дополнительной защиты от непредусмотренного доступа через другой виртуальный хост.
Написано сие по результатам внимательного рассматривания собственного сервера.
А у вас, случайно, не так? :)
no subject
Ну а documentroot дефолтового сайта вообще лучше обозвать /var/www/fake чтоб неповадно было :)