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 中不起作用