在 openwrt 中使用 iptables 允许特定 IP 的流量

在 openwrt 中使用 iptables 允许特定 IP 的流量

我有一台带 openwrt 的 tp-link 路由器。我有 2 条 iptables 规则来阻止 P2P 连接。阻止工作正常,但现在我需要一条规则来允许往返特定 IP 的流量。

我的阻止规则:

iptables -I FORWARD -m string --string "BitTorrent protocol" --algo bm -j DROP
iptables -I FORWARD -m string --string ".torrent" --algo bm -j DROP

我添加了这条规则:

iptables -I FORWARD -s 192.168.64.XX -j ACCEPT
iptables -I FORWARD -d 192.168.64.XX -j ACCEPT 

但不起作用。

我尝试做了一些小的修改:

iptables -A FORWARD -s 192.168.64.XX -j ACCEPT
iptables -A FORWARD -d 192.168.64.XX -j ACCEPT

还是不起作用。每次更改规则后我都会重新启动路由器。

现在我无法在防火墙中看到我的修改,我只看到这个:

Chain FORWARD (Policy: DROP, Packets: 0, Traffic: 0.00 B)
Rule #  Pkts.   Traffic Target  Prot.   Flags   In  Out Source  Destination Options
1   0   0.00 B  DROP    all --  *   *   0.0.0.0/0   0.0.0.0/0   STRING match ".torrent" ALGO name bm TO 65535
2   96  10.39 KB    DROP    all --  *   *   0.0.0.0/0   0.0.0.0/0   STRING match "BitTorrent protocol" ALGO name bm TO 65535

我做错了什么?

答案1

手动添加的规则在iptables重启后将失效,除非 init 系统负责在启动之间保存和恢复它们。我认为 openwrt 在其默认配置中不会这样做。

寻找另一个地方来添加自定义防火墙规则。也许/etc/config/firewall

配置格式的详细信息如下: https://wiki.openwrt.org/doc/uci/firewall

相关内容