V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rshun
V2EX  ›  问与答

nftable 防火墙问题

  •  
  •   rshun · 2023-01-01 11:53:06 +08:00 · 1376 次点击
    这是一个创建于 722 天前的主题,其中的信息可能已经有所发展或是发生改变。

    路由器版本: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
        }
    }
    
    10 条回复    2023-01-02 10:38:41 +08:00
    old9
        1
    old9  
       2023-01-01 12:10:03 +08:00
    hook forward chain?
    rshun
        2
    rshun  
    OP
       2023-01-01 12:14:46 +08:00   ❤️ 1
    forward 和 input 都试过了,都不生效
    lekai63
        3
    lekai63  
       2023-01-01 12:25:57 +08:00 via iPhone
    你那个特定 ip 是否通过代理访问了百度
    rshun
        4
    rshun  
    OP
       2023-01-01 12:42:33 +08:00
    本机没有使用代理,在路由器上我把相关代理配置全部删除了,只保留上述的 nft 配置。
    ysc3839
        5
    ysc3839  
       2023-01-01 13:10:39 +08:00 via Android
    既然是 OpenWrt ,又没用到 ipset 之类的功能,为什么不用 OpenWrt 自带的防火墙呢?
    vmebeh
        6
    vmebeh  
       2023-01-01 13:18:48 +08:00 via iPhone
    自带防火墙切到 nft 了
    old9
        7
    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
        8
    lovelylain  
       2023-01-01 20:14:48 +08:00 via Android
    换 lean 的 lede ,继续用 iptables
    tony1016
        9
    tony1016  
       2023-01-01 23:12:40 +08:00
    你的 openwrt 是不是有 clash tun 啊,被压到 tun 里去了
    rshun
        10
    rshun  
    OP
       2023-01-02 10:38:41 +08:00
    我大概知道是怎么回事了,hook output 是针对本机的,也就是路由器自身的 IP ,所以 ip saddr 指定是不生效的。
    只能放到 forward 里面,但是这个 forward 是在 nat 的 prerouting 后面生效,所以如果走域名方式依然不生效,如果在浏览器中输入 IP 地址就生效了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3259 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:10 · PVG 20:10 · LAX 04:10 · JFK 07:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.