На этот вопрос уже есть ответ здесь:
Я обнаружил (просматривая записи кеша mod_pagespeed), что совершенно случайный домен, о котором я никогда раньше не слышал, разрешается на моем веб-сайте.
Если я захожу в этот домен, мой сайт загружается. DNS для этого домена указывает на IP-адрес моего сервера.
Прямо сейчас у меня в конфигурации vhost указано *: 80, и, как я полагаю, я ошибаюсь.
Я немедленно изменил это на example.com:80, где example.com - мой домен. Предполагая, что это будет означать, что сервер будет отвечать и выполнять запросы только для моего доменного имени, а не любой запрос на порт 80.
Моя исходная конфигурация vhost;
<VirtualHost *:80>
DocumentRoot "/var/www/example.com"
<Directory "/var/www/example.com">
Order allow,deny
Allow from all
Allowoverride all
</Directory>
</VirtualHost>
Моя новая проверенная конфигурация;
Listen 80
ServerName example.com
<VirtualHost example.com:80>
DocumentRoot "/var/www/example.com"
<Directory "/var/www/example.com">
Order allow,deny
Allow from all
Allowoverride all
</Directory>
</VirtualHost>
Когда я пытался перезапустить apache с новой конфигурацией я получил следующую ошибку:
* Restarting web server apache2 [Fri Mar 28 08:55:47.821904 2014] [core:error] [pid 5555] (EAI 2)Name or service not known: AH00549: Failed to resolve server name for 152.155.254.241 (check DNS) -- or specify an explicit ServerName
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Примечание. IP-адрес, начинающийся со 152 в приведенной выше ошибке, был немного отредактирован, но исходный IP-адрес в любом случае не был IP-адресом моего сервера.
Кто-нибудь может дать совет по этому поводу? Является ли домен (на самом деле есть пара), который невинно разрешает мой веб-сайт, просто предыдущим пользователем выделенного сервера, чей DNS просто все еще указывает на него? Как я могу решить проблему с конфигурацией виртуального хоста apache, и любые другие советы приветствуются.
Спасибо.
Вероятно, нет ничего плохого в том, что эти другие домены указывают на ваш хост, за исключением, конечно, увеличения нагрузки на ваш сервер. Если вы хотите заблокировать их, настройте для них новые виртуальные хосты:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
# example.com configuration
</VirtualHost>
<VirtualHost *:80>
ServerName baddomain.com
Deny from all
</VirtualHost>
Вместо Запретить всем
вы можете использовать Перенаправить постоянный /error.html
, чтобы показать им настраиваемую ошибку сообщение.
Вы можете повторить второй VirtualHost для каждого домена, который хотите заблокировать, или, если их много, поместите его первым, чтобы сделать его VirtualHost по умолчанию, и сделать исключения для вашего домена (ов):
NameVirtualHost *:80
<VirtualHost *:80>
# default VirtualHost
Deny from all
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
# example.com config
</VirtualHost>
Как что касается сообщений об ошибках, похоже, что Apache не смог разрешить имя хоста example.com при запуске или не смог найти вашу директиву ServerName
. Не знаю почему. Вторая ошибка говорит о том, что порт 80 уже используется на вашем хосте.
Apache serves as a sort of default the first domain you define.
If you want to serve up myowndomain.com with the content you desire and all other domains some behavior (perhaps redirecting to the corresponding page on your preferred domain), define the "catchall" domain first, handle traffic appropriately (I recommend redirecting to your real domain), and then define your real domain etc. with subsequent VirtualHosts.
Лучше всего, если вы действительно хотите избежать того, чтобы случайные домены указывали на ваш веб-сайт, это вероятно, как ответил Эндрю Шульман и прокомментировал BeowulfNode42:
Обслуживать виртуальный хост по умолчанию. У вас есть несколько вариантов, но для ясности, я не рекомендую показывать простую страницу с ошибкой, так как это может затруднить устранение неполадок позже.
Итак, оставьте конфигурацию вашего виртуального хоста как это было , но создайте новый виртуальный хост для фактического веб-сайта, поменяйте местами каталоги и продолжайте работу.
Учитывая то, что вы сказали о недавнем захвате сервера, я бы подумал о том, чтобы убедиться (если домен явно не ваш), что это не какой-то забытый остаток, который нужно удалить с автопродления, или что он не является частью какого-либо проекта, который еще не завершен или был заброшен.
оставьте конфигурацию вашего виртуального хоста такой, какой была , но создайте новый виртуальный хост для фактического веб-сайта, поменяйте местами каталоги и продолжайте работу.Учитывая то, что вы сказали о недавнем захвате сервера, я бы подумал о том, чтобы убедиться (если домен явно не ваш), что это не какой-то забытый остаток, который нужно удалить с автопродления, или что он не является частью какого-либо проекта, который еще не завершен или был заброшен.
оставьте конфигурацию вашего виртуального хоста такой, какой была , но создайте новый виртуальный хост для фактического веб-сайта, поменяйте местами каталоги и продолжайте работу.Учитывая то, что вы сказали о недавнем захвате сервера, я бы подумал о том, чтобы убедиться (если домен явно не принадлежит вам), что это не какой-то забытый остаток, который нужно снять с автопродления, или что он не является частью какого-либо проекта, который еще не завершен или был заброшен.
Что касается того, «откуда, черт возьми, это другое имя для моего веб-сайта?», Любой может поместить любую запись A, которая ему нравится, на любое имя под доменом, который они контролируют. Вы можете немного исследовать, используя whois
, чтобы узнать, кто зарегистрировал домен второго уровня, содержащий неправильное DNS-имя.
Вы всегда должны сначала ставить VirtualHost по умолчанию, как во втором решении @Andrew Schulman.
Таким образом, вы можете хранить все запросы, не относящиеся к вашему сайту, в разных файлах журнала с помощью CustomLog и ErrorLog в конфигурации - вы не хотите, чтобы это в ваших журналах, если вы используете AWStats или другую программу для создания вашей статистики.
Также многие (большинство?) атак будут приходить на ваш IP, а не на ваше имя хоста . Опять же, это сохранит чистоту ваших реальных журналов сайта и сразу отклонит их вместе с отказом от всех.