Apache - 限制 IP 不起作用

Posted

技术标签:

【中文标题】Apache - 限制 IP 不起作用【英文标题】:Apache - Restrict to IP not working 【发布时间】: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>

谢谢

【问题讨论】:

【参考方案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

【讨论】:

以上是关于Apache - 限制 IP 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

当存在多个虚拟主机标签时,Apache 2.4.7 重定向不起作用 Ubuntu14.04

使用 SSL 在 apache 上运行 django 应用程序:pexpect spawn/expect 不起作用

在虚拟主机中使用自定义端口的 Laravel 路由在 Apache 中不起作用

在 apache 2.4 中结合子文件夹的 ip 和用户身份验证限制

禁用目录浏览 apache 不起作用

增加内存限制 Composer 不起作用