如何在 ufw 中阻止特定的 IP 范围?

mar*_*rio 3 firewall ufw 14.04

我打开终端并输入

sudo ufw reject from 216.21.13.0/24 to any port 80
Run Code Online (Sandbox Code Playgroud)

但是,当我选择一个随机 IP(例如 216.21.13.15)时,我注意到它仍然可以 ping 和可达。为什么会发生这种情况?

小智 6

要考虑的事情:我通常使用拒绝,而不是拒绝。我不确定拒绝是否有效,所以它应该是:

sudo ufw deny from 216.21.13.0/24 to any port 80
Run Code Online (Sandbox Code Playgroud)

此外,如果您对端口 80 有其他规则,则它们可能会在此规则之前运行。试试看

sudo ufw status numbered
Run Code Online (Sandbox Code Playgroud)

你应该看到这样的输出:

[ 1] Anywhere                   DENY IN     x.x.x.x            
[ 2] Anywhere                   DENY IN     x.x.x.x               
[ 3] 80                         ALLOW IN    Anywhere                  
[ 4] 443                        ALLOW IN    Anywhere                  
[ 5] 22                         ALLOW IN    x.x.x.x              
[ 6] 80 (v6)                    ALLOW IN    Anywhere (v6)                      
[ 7] 443 (v6)                   ALLOW IN    Anywhere (v6) 
Run Code Online (Sandbox Code Playgroud)

如果您的规则在允许所有端口 80 流量之后,则永远不会调用它,因为它上面的规则允许所有端口 80 流量。

尝试将规则放入

sudo ufw insert 1 deny from 216.21.13.0/24 to any port 80
Run Code Online (Sandbox Code Playgroud)

它会将它放在列表的顶部。