【问题标题】:Q: Disable access to default vhost and through server IP on Apache 2.4.10问:在 Apache 2.4.10 上禁用对默认 vhost 和服务器 IP 的访问
【发布时间】:2015-10-25 06:47:17
【问题描述】:

我正在尝试在 Debian 8 “Jessie” 上启动 Apache 2.4.10,并在其上托管多个网站运行。这可能是一个显而易见且已经回答的问题,但我从来没有需要设置一个专用的网络主机(通常只是为了开发需要放弃一个 WAMP 服务器或选择一个网络托管服务),到目前为止我还没有任何运气都可以找到我的问题的答案(我找到了与我想要实现的目标完全相反的答案)。我需要让它工作,因为除了托管几个网站之外,还会有额外的软件设置,常规的网络托管服务不会这样做。

一切似乎都按预期工作,但唯一的问题是我似乎找不到一个最佳配置,它不仅会阻止访问带有 403 - Forbidden 的默认 vhost。我需要的是 Apache 忽略来自访问默认虚拟主机或直接通过其指定 IP 访问服务器的任何人的请求(不仅仅是返回 404 文档,而是告诉浏览器那里什么都没有)。指定的 IP 应仅用于 SSH 访问(因为我对此服务器没有任何物理访问权限)。

基本上,网络服务器应该可以通过网络浏览器通过“FQDN-1”和“FQDN-2”(每个位于各自的目录中)访问,并且应该忽略访问该服务器上的任何其他网址(调用浏览器“404 未找到”而不是返回服务器错误文档,这表明存在某些东西)。

我当前的虚拟主机文件:

<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)。

【问题讨论】:

  • 您想重新启用默认虚拟主机,然后禁止访问它。确保它是第一个。使用apache2ctl -t -D DUMP_VHOSTS 检查您的配置。应该是类似 000-default、fqdn-1、fqdn-2 的顺序。
  • 更新: 我将 phpmyadmin 作为默认虚拟主机,我重新启用了它......不是最佳结果,而是临时快速修复。 UPDATE-2:我会试试你的建议 mrjink。

标签: apache vhosts


【解决方案1】:

您可以让内置的基于名称的虚拟主机为您完成工作。您可以简单地使用

ServerName your-ip 

并设置一个简单的规则,例如

RewriteEngine ON 
RewriteRule ^ .* [F]

Redirect 403 /

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2023-03-27
    • 1970-01-01
    • 2017-09-08
    • 2017-05-07
    • 2015-01-30
    • 2017-04-11
    相关资源
    最近更新 更多