即使在阻止后 IP 也能访问

Jos*_*shi 17 server ufw fail2ban

78.128.113.62 - - [04/Jan/2020:19:59:33 +0530] "GET /efk-dashboard HTTP/1.1" 404 66914 "-" "python-requests/2.13.0"
Run Code Online (Sandbox Code Playgroud)

即使在我运行命令后,仍有多个这样的访问记录

78.128.113.62 - - [04/Jan/2020:19:59:33 +0530] "GET /efk-dashboard HTTP/1.1" 404 66914 "-" "python-requests/2.13.0"
Run Code Online (Sandbox Code Playgroud)

添加ip后我也重启了fail2ban服务。

如何解决这个问题?我的想法用完了。

xen*_*oid 34

UFW 规则按顺序检查。匹配源和目标的第一条规则适用,其余规则将被忽略。

使用普通ufw deny命令时,规则将添加在其他规则之后(用于ufw status按顺序列出规则)。如果源地址与您上方的allowlimit行匹配deny(并且可能存在),则应用该允许/限制行并且不会检查您的规则。

要确保您的规则首先出现,请执行以下操作:

ufw insert 1 deny from 78.128.113.58/24 to any 
Run Code Online (Sandbox Code Playgroud)


Kas*_*per 12

上一个答案解决了为什么ufw命令没有效果。但是它并没有解释为什么该ip route命令没有效果。

它对您没有影响的原因是它78.128.113被解释为78.128.113.0/32. 因此,您仅阻止了一个 IP 地址,而该地址不是您从中接收流量的 IP 地址。如果您想阻止整个 /24 IP 范围,您可以使用:

ip route add unreachable 78.128.113.0/24
Run Code Online (Sandbox Code Playgroud)

需要注意的是,该ip命令只会阻止返回流量,而不是传入流量。这意味着来自该 IP 范围的传入流量可能仍会通过创建半开放 TCP 连接或将数据包发送到无状态服务(通常基于 UDP)来消耗主机上的一些资源。

由于这些原因,防火墙规则(例如创建的规则)ufw可能比ip route命令更适合您的特定用例。