apache 2.4禁止一系列ips,除了包含在范围内的一个

时间:2017-10-03 08:26:30

标签: apache .htaccess

我的网站与大多数电子商务网站一样,经常遭到众多黑客的攻击,他们试图从网站收集信息。 通过使用内部监视器,我已经确定了黑客正在使用的大量IP地址,我已使用以下格式将这些地址添加到我的.htaccess文件中: -

<Files *>
  <RequireAll>
    Require all granted
    Require not ip 1.160.0.0/12
  </RequireAll>
</Files>

这只是我阻止的IP范围的一个示例(我已经确定了超过3,600个IP范围)。

如您所见,这些IP范围涵盖了大量的IP地址,这很好,因为我不想在.htaccess文件中列出每个IP地址。

不幸的是,我有一个客户的IP地址在一个被禁止的范围内,例如1.160.5.160,我想禁止IP范围,除了IP 1.160.5.160。

我尝试了requirerequire anyrequire allrequire none的多种组合,但我似乎无法让它发挥作用。

所以基本上我想允许所有访问,除非IP在我的一个范围内,除非IP是(在本例中)1.160.5.160

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

结帐fail2ban。它专为此目的而设计,并将在需要进行此类操作的防火墙处理此问题。

或者考虑手动将要阻止的地址列表添加到防火墙,但是您也可以配置fail2ban来执行此操作。

答案 1 :(得分:0)

经过多次研究(研究)之后,我终于找到了答案我自己的问题。 答案在于您在结构中放置要允许的IP的位置,或者在没有结构的情况下精确定位。 似乎如果您已经禁止IP范围并且想要允许禁止范围内的IP,则必须在关闭后放置此IP地址  线。 这是一个例子

<Files *>
<RequireAll>
Require not ip 2.222.109.0/24
</RequireAll>
#LIST OF IP EXCLUSIONS
Require ip 2.222.109.126
</Files> 

简单。