nftable 防火墙问题

2023-01-01 11:53:06 +08:00
 rshun

路由器版本:openwrt 22.03
nftables 版本:v1.0.2 (Lester Gooch)

现在想法: 指定局域网内某个特定 IP 不允许访问百度, 但使用下面的 nftable 配置后, 该 IP 依旧能够访问

#!/usr/sbin/nft -f

flush ruleset

table inet mytable {
    chain filter{
        type filter hook output priority 0; policy accept;
        ip saddr {192.168.0.10/32} ip daddr {180.97.34.94,180.97.34.96} drop
    }
}

但是如果我把 ip saddr 这个特定 IP 去掉之后,所有局域网都无法访问 baidu 了,感觉 nftable 不能针对某个特定 IP 做控制

#!/usr/sbin/nft -f

flush ruleset

table inet mytable {
    chain filter{
        type filter hook output priority 0; policy accept;
        ip daddr {180.97.34.94,180.97.34.96} drop
    }
}
1376 次点击
所在节点    问与答
10 条回复
old9
2023-01-01 12:10:03 +08:00
hook forward chain?
rshun
2023-01-01 12:14:46 +08:00
forward 和 input 都试过了,都不生效
lekai63
2023-01-01 12:25:57 +08:00
你那个特定 ip 是否通过代理访问了百度
rshun
2023-01-01 12:42:33 +08:00
本机没有使用代理,在路由器上我把相关代理配置全部删除了,只保留上述的 nft 配置。
ysc3839
2023-01-01 13:10:39 +08:00
既然是 OpenWrt ,又没用到 ipset 之类的功能,为什么不用 OpenWrt 自带的防火墙呢?
vmebeh
2023-01-01 13:18:48 +08:00
自带防火墙切到 nft 了
old9
2023-01-01 16:34:55 +08:00
```
chain FORWARD {
type filter hook forward priority 0; policy accept;
ip saddr {192.168.0.10/32} ip daddr {180.97.34.94,180.97.34.96} drop
}
```
lovelylain
2023-01-01 20:14:48 +08:00
换 lean 的 lede ,继续用 iptables
tony1016
2023-01-01 23:12:40 +08:00
你的 openwrt 是不是有 clash tun 啊,被压到 tun 里去了
rshun
2023-01-02 10:38:41 +08:00
我大概知道是怎么回事了,hook output 是针对本机的,也就是路由器自身的 IP ,所以 ip saddr 指定是不生效的。
只能放到 forward 里面,但是这个 forward 是在 nat 的 prerouting 后面生效,所以如果走域名方式依然不生效,如果在浏览器中输入 IP 地址就生效了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/905899

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX