我从未听说过的域名解析到我的网站

我从未听说过的域名解析到我的网站

我发现(通过查看 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

注意:上述错误中以 152 开头的 IP 已被稍微编辑,但原来的不是我的服务器的 IP 地址。

有人能就这个问题提供建议吗?解析到我网站的域名(实际上有几个)是否只是专用服务器的先前用户,其 DNS 仍指向它?我该如何解决 apache 虚拟主机配置问题,欢迎提供任何其他建议。

谢谢。

答案1

让其他域名指向您的主机可能没有什么坏处,当然,这会增加您服务器的负载。如果您想阻止它们,请为它们设置新的虚拟主机:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
    # example.com configuration
</VirtualHost>
<VirtualHost *:80>
    ServerName baddomain.com
    Deny from all
</VirtualHost>

相反,Deny from all您可以使用它Redirect permanent /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 实例?

答案2

Apache 作为您定义的第一个域的默认设置。

如果您希望在 myowndomain.com 上提供您想要的内容,并在所有其他域上提供某些行为(也许重定向到您首选域上的相应页面),请首先定义“catchall”域,适当处理流量(我建议重定向到您的真实域),然后使用后续的 VirtualHosts 定义您的真实域等。

答案3

关于“我的网站的其他名称到底是从哪里来的”,任何人都可以将他们喜欢的任何 A 记录放在他们控制的域名下的任何名称下。您可以使用进行一些调查,whois找出谁注册了包含有问题的 DNS 名称的二级域名。

答案4

您应该始终将默认的 VirtualHost 放在第一位,就像 @Andrew Schulman 的第二个解决方案一样。

这样,您就可以使用配置中的 CustomLog 和 ErrorLog 将所有不针对您网站的请求保存在不同的日志文件中 - 如果您使用 AWStats 或其他程序来创建统计数据,您就不会希望这些请求出现在您的日志中。

此外,很多(大多数?)攻击都会针对您的 IP,而不是您的主机名。同样,这将使您的真实站点日志保持干净,并直接拒绝所有攻击。

相关内容