23

我有应用程序托管 Apache UNIX,我允许用户从 citrix 环境(从 citrix 机器)访问应用程序 url。

但是,目前可以从所有连接的机器访问 url。我想限制它只能从 citrix 机器访问。因此,如果有人需要访问它,他需要访问 citrix 机器。

我试过以下:

<Directory /APP>

    Order Deny,Allow

    Deny from all

    Allow from 160.120.25.65

    Allow from 127

</Directory>

它没有用。有什么建议吗?

很少有人回答 iptables 解决方案,但是这个解决方案是在 Solaris 上加载的(它没有内置的防火墙作为 linux 操作系统)。

4

4 回答 4

50

这应该做你需要的:

<Directory /APP>

    Order Allow,Deny

    Allow from 160.120.25.65
    Allow from 127.0.0.0/8

</Directory>

有关详细信息,请参阅mod_authz_host文档。

于 2009-04-03T15:22:51.653 回答
2

你运行的是什么版本的 Apache?IP 允许机制是 AFAIK,由 mod_authz_host 提供,它是在 2.2 中引入的(从技术上讲,是 2.1)。如果您确实有 2.2,请确保它没有在禁用mod_authz_host的情况下编译。

不过,一般来说,您可能会发现一个更简单、更强大的解决方案是其他答案中建议的 iptables 或其他防火墙。

于 2009-04-03T15:11:11.383 回答
0

为此,我建议使用 Iptables。在 iptables 中放置一条规则,无论目标端口是 apache 机器的端口号,源 ip 是 critix 机器的 IP 地址,linux 机器都应该丢弃该数据包。如果您的机器的 apache 上没有托管其他应该对所有 ips 开放的应用程序,这种方式将解决您的问题。透视规则的一个例子可能是:-

iptables -I INPUT 1 -s 160.120.25.65 -d <port_of_apache_on_your_machine> -j DROP

这应该可以解决您的问题,一旦您用正确的值替换

于 2009-04-03T18:13:09.417 回答
-2

我可能会为此使用 iptables 规则。我不确定您发布的示例是什么,但是您应该能够配置几乎任何防火墙以按照您的意愿工作。

于 2009-04-03T15:06:23.393 回答