如何拒绝与不匹配虚拟主机列表的Apache的请求

我得到了大量的请求到我的web应用程序ips没有主机和主机,不匹配我通常提供的任何东西。

我发现了一个与此相关的stackoverflow问题 ,但我不知道在哪里把这个Apacheconfiguration(或者如果它是我需要添加到我的:80和:443configuration分开)。

这是他们显示的参考。 注意 – 这似乎只支持单个主机,我怎么能为2或3个主机做这个?

SetEnvIfNoCase Host example\.com VALID_HOST Order Deny,Allow Deny from All Allow from env=VALID_HOST 

Mod_Security可能是你正在寻找的。 默认的规则阻止了这种请求,这里是一个在我的debugging日志中发现的侦察阻塞的例子:

消息:访问被代码403(阶段2)拒绝。 模式匹配“^ [\ d.:]+$”在REQUEST_HEADERS:主机。 [file“/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_21_protocol_anomalies.conf”] [line“98”] [id“960017”] [rev“2”] [msg“ 主机头是数字IP地址 ”] [数据“1.2.3.4”] [严重性“WARNING”] [ver“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 “]

您可以使用NameVirtualHostfunction,定义第一个VirtualHost (我通常将其命名为与系统相同的主机名 – 如果不同于其提供Web应用程序的主机名或其数字IP)。 让它是空的,可能Deny from All

然后用正确的主机名定义另一个VirtualHost,这个主机名应该用于你的网站/应用程序,并让它做它的业务。