我有应用程序托管的Apache UNIX,我允许用户从citrix环境(来自citrix机器)访问应用程序URL。
但是,目前可以从所有连接的计算机访问网址。我想提出它应该只从citrix机器访问的限制。因此,如果任何人需要访问它,他需要访问citrix机器。
我试过以下:
<Directory /APP>
Order Deny,Allow
Deny from all
Allow from 160.120.25.65
Allow from 127
</Directory>
它不起作用。有什么建议吗?
很少有人回复iptables解决方案,但是这个解决方案在Solaris上加载(它没有内置防火墙作为Linux的操作系统)。
答案 0 :(得分:47)
这应该做你需要的:
<Directory /APP>
Order Allow,Deny
Allow from 160.120.25.65
Allow from 127.0.0.0/8
</Directory>
有关详细信息,请参阅mod_authz_host
文档。
答案 1 :(得分:2)
您运行的是哪个版本的Apache? IP允许机制是AFAIK,由mod_authz_host提供,它在2.2中引入(在技术上为2.1)。如果你有2.2,请确保在mod_authz_host禁用的情况下编译它。
但是,一般来说,您可能会发现更简单,更强大的解决方案是iptables或其他答案中建议的其他防火墙。
答案 2 :(得分:0)
我会为此目的建议Iptables。在iptables中放一条规则,无论目标端口是apache机器的端口号,而ip ip是critix机器的ip地址,linux机器都应丢弃该数据包。这种方式可以解决您的问题,前提是您的机器的apache上没有其他应用程序托管,应该对所有ips开放。透视规则的示例可以是: -
iptables -I INPUT 1 -s 160.120.25.65 -d <port_of_apache_on_your_machine> -j DROP
一旦用适当的值替换
,这应该可以解决您的问题答案 3 :(得分:-2)
我可能会使用iptables规则。我不确定您发布的示例是什么,但您应该能够配置几乎任何防火墙以便按您的需要工作。