V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sleepingdog
V2EX  ›  NAS

一些 zerotier 教程的防火墙规则是不是写错了?

  •  
  •   sleepingdog · 105 天前 · 3319 次点击
    这是一个创建于 105 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近从 DDNS+ipv6 折腾到 zerotier ,看了不少教程。
    如果是想外网直接连上,应该不难,
    但如果既要又要——速度,稳定,安全。。。还有 free ,麻烦度就直线提升。

    因为主路由是小米,刷不了 op ,它的 ipv6 防火墙虽然能关闭,但还是不放心内网的 nas 直接暴露出来,所以还是最终还是选择开启主路由的 ipv6 防火墙,使用 zerotier——在群晖上运行的 openwrt 旁路由,里面运行 zerotier ,外网使用数据流量,看监控速度能达到 1mb 多点


    废话少说了,现在应该折腾完成,不过发现不少 zerotier 教程,在关于 openwrt 里面添加的防火墙规则,好几个都写错了(我更奇怪的是为什么没人指出来,所以也怕是自己的问题,问了 chatGPT ,也说第二行应该改成以下)

    iptables -I FORWARD -i ztbpao3tej -j ACCEPT
    iptables -I FORWARD -o ztbpao3tej -j ACCEPT
    iptables -t nat -I POSTROUTING -o ztbpao3tej -j MASQUERADE

    他们规则虽然写错,但也能访问,然而可能不安全?————毕竟这是防火墙规则啊。
    所以发了这个帖子给各位围观看看。
    当然,前人种树后人乘凉,感谢走在前面的各位~
    29 条回复    2024-01-17 11:06:11 +08:00
    sleepingdog
        1
    sleepingdog  
    OP
       105 天前


    这是其中看到的两个,也有不少是正确说的,比如这个
    wheat0r
        2
    wheat0r  
       105 天前
    因为实际上没有几个人真的做这个安全策略
    adoal
        3
    adoal  
       105 天前
    你是觉得在 zt 接口上不做开了两个 ACCEPT 不做更严格的策略不安全?可能想多了吧。
    adoal
        4
    adoal  
       105 天前
    呃,删掉第一个“不做”
    sleepingdog
        5
    sleepingdog  
    OP
       105 天前
    @adoal #3
    @wheat0r #2
    你们 openwrt 开了 zerotier 之后,不设置关于 zerotier 的防火墙规则的?

    我 nas 上还要开启 smbv1 之类的协议,所以比较担心安全
    adoal
        6
    adoal  
       105 天前
    首先要想明白,zerotier 是个 VPN ,里面的 P 是啥意思,private ,就是说 VPN 链路建立起来之后两端都是你自己可控的设备或网络,不是外部的公网,相当于你在自己放在外面的电脑和家里的路由器上各插了一块看不见的“网卡”并用看不见的“网线”连起来,外网根本摸不到,你要在上面做啥策略?
    真要在 VPN 上做策略,那是类似公司不同分部之间的网段用 VPN 连通起来根据部门之间的访问限制需求来做的,前提是你要限制不可控的“别人”。
    wheat0r
        7
    wheat0r  
       105 天前
    @sleepingdog #5 在我的使用场景里,我根本不在路由器上装这东西,而是直接把客户端装进 server 里。
    对于 zerotier 而言,如果你的管理权限失守了,攻击会从 zt 虚网卡进来 openwrt ,你的安全策略是放通的;如果你的管理权限没失守,你的 openwrt 压根不会暴露给攻击者。
    如果 zerotier 有致命的漏洞,攻击也不会从物理网卡进来。
    你是因为不放心 NAS 暴露才用了 zerotier ,这就意味着你认可 zerotier 并没有暴露你的 nas 。
    sleepingdog
        8
    sleepingdog  
    OP
       105 天前
    @adoal #6 有个疑问,如果我在外网,用的是不信任的 wifi ,使用 zerotier 访问家里的设备,这时候需要走 https 协议么?
    sleepingdog
        9
    sleepingdog  
    OP
       105 天前
    @wheat0r #7 就是说,如果是你的话,就直接安装 zerotier 到群晖上,而不是群晖的 openwrt 虚拟机?
    adoal
        10
    adoal  
       105 天前
    @sleepingdog 不需要,zerotier 相当于在你电脑上装了一个虚拟网卡,你访问家里的设备走的是这个虚拟网卡,而不是无线网卡
    wheat0r
        11
    wheat0r  
       105 天前
    @sleepingdog #9 是的,我还有 Windows 和 mac 的主机,都从一个主机上跳不是给自己找事么,而且 zerotier 给了/24 的子网,不就是让你都装上
    snugness
        12
    snugness  
       105 天前 via Android
    我看你的文章有点看不懂,所以确认一下。你用 zerotier 访问家里设备,速度是 1mb ?
    xyzmax
        13
    xyzmax  
       105 天前
    巧了,最近刚从 zerotier 折腾到了 ddns+ipv6+wireguard

    感觉 zerotier 的 ipv6 组网不稳定,我这边在两边都有 ipv6 的情况下不一定走 ipv6 直连,通过 zerotier-cli peers 能查看到每隔段时间会在 v6 和 v4 之间反复横跳,甚至在 v6 直连的情况下拷贝稍大点的文件或者看视频的时候拖进度条会直接断连

    这段时间被搞得怀疑人生,一度以为是 ipv6 网络有问题。 换上 wireguard 后世界终于清净了
    yanqiyu
        14
    yanqiyu  
       105 天前
    所以写错了指的是那个 -I 变成了 -|? 我猜就是某一个抄文章的用 OCR 翻车了然后大家抄来抄去带来的结果

    置于两边都 Accept ,这得分情况,要是两边都是信任环境,这么做挺好。但是有一边不信任,一般做法是一边无条件 accept ,但是另一个方向只接受 established, related
    allplay
        15
    allplay  
       104 天前 via Android
    @sleepingdog smb v1 是好老的东西了,
    Yzh361
        16
    Yzh361  
       104 天前 via Android
    我一直在用… 我是按正确的代码…
    LeeReamond
        17
    LeeReamond  
       104 天前
    @xyzmax 老哥 wireguard 涉及海外服务器会被墙吗
    sleepingdog
        18
    sleepingdog  
    OP
       104 天前
    @wheat0r #11 当时想则群晖的防火墙设置没有 openwrt 的丰富,所以这么走。
    @snugness #12 是。家里宽带用的移动,测试用的联通 4G ,
    @xyzmax #13 学习了,稍微看了下这个方案似乎不错。需要关主路由器的 ipv6 防火墙么?
    @yanqiyu #14 是的
    @allplay #15 小米的摄像头和电视机还用这个(小米摄像头如果想保存 sd 里面的东西到本地,要走 smbv1 ,电视自带的播放器走 smbv1 ,不过可以用 kodi 之类解决)。
    还有一个上古的安卓软件,快图也走的 smbV1 ,ES 浏览器如果不是最新版,好像也有这个问题。。。。
    fish3125
        19
    fish3125  
       104 天前 via iPhone
    区域都设置在 lan ,只要动态伪装,前两条可以不要吧
    Bingchunmoli
        20
    Bingchunmoli  
       104 天前 via Android
    因为一般禁用 iptables
    juglans
        21
    juglans  
       104 天前
    先得指定一下网卡名字吧
    jackge0323
        22
    jackge0323  
       104 天前
    ubuntu 昨天刚被这个规则坑了,第三条 nat 需要写实际的物理网卡名。
    snugness
        23
    snugness  
       104 天前
    @sleepingdog 兄弟,那速度很低啊。宽带上行带宽只有 1mbps 吗?用 cloudflare tunnel 套 CDN 最少都有 10mpbs 啊,宽带是电信,上行带宽是 30mpbs 。
    xyzmax
        24
    xyzmax  
       104 天前
    @LeeReamond #17 翻墙最好不要用这个吧。 代理规则就是个问题啊

    @sleepingdog #18 要啊,一般的路由器的 ipv6 防火墙要么开要么关; 或者你主路由如果是软路由,配置好规则,开着防火墙也没问题。 我是直接关防火墙,安全问题我觉得不用担心吧,ipv6 那么长怕啥
    sleepingdog
        25
    sleepingdog  
    OP
       104 天前
    @snugness #23 抱歉,可能我没说清单位造成误解。我联通这边下载速度是 1MB ,也就是移动上行应该至少有 10mbps 左右,我的移动宽带应该 300M 还是 500M ,反正游戏更新的时候最快有 50mb 左右,手机 ping 了下延时大概 80 ~ 100ms 。
    其实上行速度感觉够用,有空我跑个测速看看。
    zerotier 是不是两个设备连上之后,就是 P2P 了?

    @xyzmax #24 等不够用了再继续折腾下。家里的路由器刷不了 op ,防火墙没那么多东西设置,所以还是有点担心。另外今天刚刷到这个帖子 https://www.v2ex.com/t/1008385#reply2 ,感觉开了 ipv6 防火墙有时候会方便别人 CDN ,被做好事都留不了名的那种。。。
    chocolateyk11
        26
    chocolateyk11  
       103 天前 via Android
    不需要加这几条规则也可以正常使用
    snugness
        27
    snugness  
       102 天前
    @sleepingdog zerotier 应该是用 P2P ,不过握手好像要先经过服务器,当初看见要连接得快要自建 moon ,所以就没搞了。原来是用端口转发加 cdn ,发现真实 IP 会有记录,后来就用 tunnel 了。之前还用过一段时间 tailscale 也很快,私密度很高,就是每次都要开一个 app 。现在都是直连 443 端口,改用了 quic 之后,连接会更稳定一些。
    lovelylain
        28
    lovelylain  
       101 天前 via Android
    @sleepingdog 忽略那个 I 写成|明显手误或 ocr 识别错误的问题,没看出你说的正确规则和错误规则区别在哪里,如果只是这个错误,不至于要发帖讨论吧。
    openwrt 预置了防火墙策略,入站接受,出站接受,转发接受,IP 动态伪装启用,MSS 钳制不启用,创建 vpn 接口的时候关联防火墙策略选这个就行。可以看到这个默认策略是给予了 VPN 类似局域网的最大信任度的,一旦 VPN 被攻破就能随便访问内网了,你也可以根据实际需要调整,总之就是每一项都对应一些 iptables 规则,你贴的那 3 条对应的是转发和 IP 动态伪装。不嫌麻烦也可以先拒绝再单独情况添加规则。
    sleepingdog
        29
    sleepingdog  
    OP
       101 天前
    @lovelylain #28 感谢。
    我奇怪的是没人指出问题。
    发这个帖子也让从不同的角度看问题,比如上面的朋友指出我在旁路由上跑这个不太好,可以选择在群晖上直接跑 zerotier (顺便问下如果在群晖跑的话是不是也复制下这三条规则过去好点?)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   875 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:34 · PVG 04:34 · LAX 13:34 · JFK 16:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.