Я получаю массу запросов к моему веб-приложению для IP-адресов без хоста и хостов, которые не соответствуют тому, что я обычно обслуживаю.
Я нашел вопрос о переполнении стека связанных с этим, но я не уверен, где разместить эту конфигурацию apache (или, если это что-то, что мне нужно добавить к обеим конфигурациям my: 80 и: 443 отдельно).
Вот что они показывают для справки. Примечание. Кажется, это поддерживает только один хост, как я могу сделать это для 2 или 3 хостов?
SetEnvIfNoCase Host example\.com VALID_HOST
Order Deny,Allow
Deny from All
Allow from env=VALID_HOST
Mod_Security может быть тем, что вы ищете. Правила по умолчанию блокируют такие запросы, вот пример блокировки разведки, найденный в моих журналах отладки:
Сообщение: доступ запрещен кодом 403 (фаза 2). Соответствие шаблону «^ [\ d.: ]+$» в REQUEST_HEADERS: Host. [файл "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_21_protocol_anomalies.conf"] [строка "98"] [идентификатор "960017"] [версия "2"] [сообщение "Заголовок хоста - это числовой IP-адрес"] [данные" 1.2.3.4 "] [серьезность" ПРЕДУПРЕЖДЕНИЕ "] [версия" OWASP_CRS / 2.2.6 "] [зрелость" 9 "] [точность" 9 "] [тег" OWASP_CRS /PROTOCOL_VIOLATION / IP_HOST"] [тег" WASCTC / WASC-21 "] [тег" OWASP_TOP_10 / A7 "] [тег" PCI / 6.5.10 "] [тег"http://technet.microsoft.com/en-us/magazine/2005.01.hackerbasher.aspx"]
Вы можете использовать функцию NameVirtualHost, определив первый VirtualHost
(Обычно я называю его тем же именем хоста системы - если оно отличается от того, которое обслуживает веб-приложение, - или его числовым IP-адресом). Пусть будет пусто и по возможности Deny from All
.
Затем определите другой VirtualHost с правильным именем хоста, который должен использоваться для вашего сайта / приложения, и позвольте ему делать свое дело.