问:在 Apache 2.4.10 上禁用对默认虚拟主机和服务器 IP 的访问
Q: Disable access to default vhost and through server IP on Apache 2.4.10
我正在尝试在 Debian 8 "Jessie" 上安装 Apache 2.4.10 并在其上托管 运行 多个网站。这可能是一个显而易见且已经回答的问题,但我从来没有需要设置专用的网络主机(通常只是为了开发需要而放弃 WAMP 服务器或选择网络托管服务),到目前为止我还没有运气好能找到我的问题的答案(我找到了与我要实现的目标完全相反的答案)。我需要让它正常工作,因为除了托管几个网站外,还会有额外的软件设置,而常规的网络托管服务无法做到这一点。
一切似乎都按预期工作,但唯一的问题是我似乎无法找到一个最佳配置,该配置不仅会阻止使用 403 - 禁止访问默认虚拟主机。我需要的是 Apache 忽略来自任何访问默认虚拟主机或直接通过其指定 IP 访问服务器的请求(不仅仅是 return 404 文档,而是告诉浏览器那里什么也没有)。指定的 IP 应该只用于 SSH 访问(因为我没有任何类型的物理访问此服务器)。
基本上,网络服务器应该可以通过网络浏览器通过 "FQDN-1" 和 "FQDN-2" 访问(每个都位于各自的目录中)并且应该忽略对该服务器上任何其他网址的访问(调用浏览器“404 not found”而不是 returning 一个服务器错误文档,这表明那里有东西)。
我当前的虚拟主机文件:
<VirtualHost *:80>
ServerName FQDN-1
ServerAlias www.FQDN-1
ServerAdmin mail@FQDN-1
DocumentRoot /var/www/FQDN-1/public_html
ErrorLog /var/www/FQDN-1/logs/error.log
CustomLog /var/www/FQDN-1/logs/access.log combined
</VirtualHost>
和
<VirtualHost *:80>
ServerName FQDN-2
ServerAlias www.FQDN-2
ServerAdmin mail@FQDN-2
DocumentRoot /var/www/FQDN-2/public_html
ErrorLog /var/www/FQDN-2/logs/error.log
CustomLog /var/www/FQDN-2/logs/access.log combined
</VirtualHost>
已通过 "a2dissite 000-default"
禁用默认虚拟主机
Iptables 阻止除 tcp 端口 80 和 22 之外的所有内容(SSH 访问在 iptables 中被列入白名单,只有几个特定的 iP)。
您可以让内置的基于名称的虚拟主机为您完成这项工作。您可以使用
简单地设置一个额外的(非默认/非首次列出的 *:80)虚拟主机
ServerName your-ip
并设置一个简单的规则,例如
RewriteEngine ON
RewriteRule ^ .* [F]
或
Redirect 403 /
我正在尝试在 Debian 8 "Jessie" 上安装 Apache 2.4.10 并在其上托管 运行 多个网站。这可能是一个显而易见且已经回答的问题,但我从来没有需要设置专用的网络主机(通常只是为了开发需要而放弃 WAMP 服务器或选择网络托管服务),到目前为止我还没有运气好能找到我的问题的答案(我找到了与我要实现的目标完全相反的答案)。我需要让它正常工作,因为除了托管几个网站外,还会有额外的软件设置,而常规的网络托管服务无法做到这一点。
一切似乎都按预期工作,但唯一的问题是我似乎无法找到一个最佳配置,该配置不仅会阻止使用 403 - 禁止访问默认虚拟主机。我需要的是 Apache 忽略来自任何访问默认虚拟主机或直接通过其指定 IP 访问服务器的请求(不仅仅是 return 404 文档,而是告诉浏览器那里什么也没有)。指定的 IP 应该只用于 SSH 访问(因为我没有任何类型的物理访问此服务器)。
基本上,网络服务器应该可以通过网络浏览器通过 "FQDN-1" 和 "FQDN-2" 访问(每个都位于各自的目录中)并且应该忽略对该服务器上任何其他网址的访问(调用浏览器“404 not found”而不是 returning 一个服务器错误文档,这表明那里有东西)。
我当前的虚拟主机文件:
<VirtualHost *:80>
ServerName FQDN-1
ServerAlias www.FQDN-1
ServerAdmin mail@FQDN-1
DocumentRoot /var/www/FQDN-1/public_html
ErrorLog /var/www/FQDN-1/logs/error.log
CustomLog /var/www/FQDN-1/logs/access.log combined
</VirtualHost>
和
<VirtualHost *:80>
ServerName FQDN-2
ServerAlias www.FQDN-2
ServerAdmin mail@FQDN-2
DocumentRoot /var/www/FQDN-2/public_html
ErrorLog /var/www/FQDN-2/logs/error.log
CustomLog /var/www/FQDN-2/logs/access.log combined
</VirtualHost>
已通过 "a2dissite 000-default"
禁用默认虚拟主机
Iptables 阻止除 tcp 端口 80 和 22 之外的所有内容(SSH 访问在 iptables 中被列入白名单,只有几个特定的 iP)。
您可以让内置的基于名称的虚拟主机为您完成这项工作。您可以使用
简单地设置一个额外的(非默认/非首次列出的 *:80)虚拟主机ServerName your-ip
并设置一个简单的规则,例如
RewriteEngine ON
RewriteRule ^ .* [F]
或
Redirect 403 /