阻止特定远程 IP 地址的 ip 转发

use*_*820 3 networking linux firewall routing iptables

我使用 ubuntu 作为多个主机的网关。我需要建议如何阻止特定 IP 地址或特定 IP 范围的 IP 转发?

我尝试通过 ufw 拒绝规则阻止 ip,但看起来 ip 转发设置无法通过规则修改,并且只能全局应用(/etc/default/ufw 中的 DEFAULT_FORWARD_POLICY)

我还尝试直接更改 iptables 规则:

iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited 
Run Code Online (Sandbox Code Playgroud)

执行此命令后 ipforwarding拒绝规则将阻止来自所有远程主机的转发请求。

更新:当前 iptable 输出:

root@mtu90:/home/pi# iptables -L -n -v
Chain INPUT (policy ACCEPT 5671 packets, 927K bytes)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 DROP       all  --  *      *       0.0.0.0/0            172.16.1.77 
  192 15408 DROP       all  --  *      *       172.16.1.77          0.0.0.0/0   

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
  895  136K            all  --  *      *       0.0.0.0/0            0.0.0.0/0   
  518 30999 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 119 packets, 14872 bytes)
 pkts bytes target     prot opt in     out     source               destination 
Run Code Online (Sandbox Code Playgroud)

dav*_*dgo 5

我认为你对这个问题想得太多了。根据您喜欢的任何基础使用 iptables 阻止转发请求是微不足道的。

当然,有一个默认设置 - 默认情况下可以允许或拒绝转发 - 您当前的设置是允许的。因此,要删除特定主机,只需添加 iptables 规则即可

iptables -I FORWARD -d sou.rce.ip.add -j DROP

确保您记得删除拒绝转发链中所有内容的规则。