【问题标题】:Apache - Restrict to IP not workingApache - 限制 IP 不起作用
【发布时间】:2011-02-10 14:51:18
【问题描述】:

我有一个只想在内部访问的子域;我试图通过编辑该域的 VirtualHost 块在 Apache 中实现这一点。任何人都可以看到我要去哪里错了吗?注意,我这里的内部 IP 地址是 192.168.10.xxx。我的代码如下:

<VirtualHost *:80>
  ServerName test.example.co.uk
  DocumentRoot /var/www/test
  ErrorLog /var/log/apache2/error_test_co_uk.log
  LogLevel warn
  CustomLog /var/log/apache2/access_test_co_uk.log combined
  <Directory /var/www/test>
    Order allow,deny
    Allow from 192.168.10.0/24
    Allow from 127
  </Directory>
</VirtualHost>

谢谢

【问题讨论】:

    标签: apache virtualhost


    【解决方案1】:

    您缺少Deny from all 行吗?哦,使用了错误的order

    引用mod_access docs

    [...] apache.org 域中的所有主机都被允许访问;所有其他主机都被拒绝访问。

    Order Deny,Allow
    Deny from all
    Allow from apache.org
    

    【讨论】:

    • 我试了一下,但没有运气。当我尝试查看该网站时发生的情况是,无论我从哪里尝试,它都会返回 403 禁止。
    【解决方案2】:

    问题是您的本地网络允许线。将 Allow from 192.168.10.0/24 替换为 Allow from 192.168.10.(将允许 192.168.10.*)。

    为了完整起见,请添加 Deny from all 行,以表明您正在阻止其他所有人。

    【讨论】:

    • 我试了一下,但仍然没有运气,无论我从哪里尝试,它都会被禁止。谢谢
    • 听起来您的配置在某处被覆盖,因为我测试了配置并且它工作正常。查看您的其他配置文件以了解访问规则。例如,基于 Debian 的发行版会在 /etc/apache2/conf.d/security 中设置额外的限制。
    • 这个答案对我有帮助,但代码示例会更有帮助。我在这里的两个答案中找到了这个:serverfault.com/a/323611/12448
    • 对不起 hamlin11,但它怎么能更有帮助呢?我在上面的配置示例中准确给出了需要更改的内容以使其正常工作。
    【解决方案3】:

    我想目录标签内的路径应该只是 /

    <VirtualHost *:80>
      ServerName test.example.co.uk
      DocumentRoot /var/www/test
      ErrorLog /var/log/apache2/error_test_co_uk.log
      LogLevel warn
      CustomLog /var/log/apache2/access_test_co_uk.log combined
      <Directory />
        Order allow,deny
        Allow from 192.168.10.0/24
        Allow from 127
      </Directory>
    </VirtualHost>
    

    请不要忘记重启 apache

    【讨论】:

      猜你喜欢
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2019-11-23
      • 2015-10-23
      • 2014-06-15
      • 1970-01-01
      相关资源
      最近更新 更多