如何拒绝域中的一台主机的访问

如何拒绝域中的一台主机的访问

在 apache 2.4.6 中,我想拒绝访问整个域,除了一个(或多个)特定主机(以及世界其他主机)。有点像:

Require not host xxx.com   ## nobody from this domain gets in...
Require host blah.xxx.com  ## --except for this one host in xxx.com
Require all granted        ## and the rest of the world!

这还可以吗?如果是这样,谁能描述一下 RequireAny/All/None 看似神奇的组合来实现这一点?

除此之外,我想将逻辑与其他列入黑名单的域重复(可能有它们自己的例外)。

答案1

这就是我要做的:

  • 我会确保您的订单指令设置为允许、拒绝。
  • 然后我会:

    Allow all granted        ## and the rest of the world!
    Allow host blah.xxx.com  ## --except for this one host in xxx.com
    Deny not host xxx.com   ## nobody from this domain gets in...
    

但:

Allow host blah.xxx.com  ## --except for this one host in xxx.com

毫无意义,因为这是第一个允许的。

因为:

Order Allow,Deny
Allow from example.org
Deny from foo.example.org

顺序意味着向下限制到主机,而不是从域向上限制到主机。

简而言之,由于 order 的工作方式,仅使用 apache 确实无法实现您想要的功能。因为最后一条指令总是会覆盖其余指令。

但是,您可以通过不允许其通过防火墙来阻止您想要的主机。

因为防火墙是第一位的,所以它甚至不会进入需要过滤的服务。

相关内容