V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cloudsigma2022
V2EX  ›  宽带症候群

旁路软路由 ipv6 裸奔是什么原因导致的

  •  
  •   cloudsigma2022 · 2022-08-26 13:19:44 +08:00 · 2990 次点击
    这是一个创建于 601 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT , 看到此贴, https://v2ex.com/t/875489

    赶紧去 vps 上 telnet 下软路由的端口,果然是通的。目前软路由上跑的 kms homeassistant nodered 等

    [root@ss-us ~]# telnet 2408:823c:815: 1688
    Trying 2408:823c:815:...
    Connected to 2408:823c:815.
    Escape character is '^]'.
    
    

    检查了下 光猫 防火墙设置是 中等,改成高,也是一样。

    环境如下:

    光猫型号 ma5671 ,光猫拨号,slaac 方式获取 ipv6 ,旁路 n1 以 lan 方式接入 光猫 lan 。

    ip6tables-save 如下。

    WAP(Dopra Linux) # ip6tables-save
    # Generated by ip6tables-save v1.4.21 on Fri Aug 26 13:07:38 2022
    *mangle
    :PREROUTING ACCEPT [496484:52300948]
    :INPUT ACCEPT [438743:40610139]
    :FORWARD ACCEPT [37366:5523943]
    :OUTPUT ACCEPT [446646:39067918]
    :POSTROUTING ACCEPT [484012:44591861]
    :POST_MODECONTROL - [0:0]
    :PRE_MODECONTROL - [0:0]
    -A PREROUTING -j PRE_MODECONTROL
    -A PREROUTING -i br+ -m mark --mark 0x102001 -j DROP
    -A POSTROUTING -j POST_MODECONTROL
    COMMIT
    # Completed on Fri Aug 26 13:07:38 2022
    # Generated by ip6tables-save v1.4.21 on Fri Aug 26 13:07:38 2022
    *filter
    :INPUT ACCEPT [2009:345878]
    :FORWARD ACCEPT [37366:5523943]
    :OUTPUT ACCEPT [446618:39065502]
    :FWD_FIREWALL - [0:0]
    :FWD_FIREWALL_CUST - [0:0]
    :FWD_IPFLT - [0:0]
    :FWD_IPFLT_DEFAULT - [0:0]
    :FWD_PORTMAP - [0:0]
    :FWD_PROTOCOL_FLT - [0:0]
    :FWD_REJECT - [0:0]
    :FWD_SERVICE - [0:0]
    :FWD_WANUPDOWN - [0:0]
    :INPUT_ACL - [0:0]
    :INPUT_ACL_WAN - [0:0]
    :INPUT_ACL_WAN_WHITELIST - [0:0]
    :INPUT_ACL_WHITELIST - [0:0]
    :INPUT_ACL_WIFI - [0:0]
    :INPUT_DOS - [0:0]
    :INPUT_FIREWALL - [0:0]
    :INPUT_PCP_WAN - [0:0]
    :INPUT_PROTOCOL_FLT - [0:0]
    :INPUT_SERVICE - [0:0]
    -A INPUT -j INPUT_PROTOCOL_FLT
    -A INPUT -j INPUT_ACL_WAN_WHITELIST
    -A INPUT -j INPUT_ACL_WHITELIST
    -A INPUT -j INPUT_ACL_WIFI
    -A INPUT -j INPUT_ACL_WAN
    -A INPUT -j INPUT_ACL
    -A INPUT -j INPUT_DOS
    -A INPUT -j INPUT_SERVICE
    -A INPUT -j INPUT_PCP_WAN
    -A INPUT -j INPUT_FIREWALL
    -A FORWARD -s fc00::/7 -i br+ -o ppp+ -j DROP
    -A FORWARD -s fc00::/7 -i br+ -o wan+ -j DROP
    -A FORWARD -j FWD_PROTOCOL_FLT
    -A FORWARD -j FWD_WANUPDOWN
    -A FORWARD -j FWD_REJECT
    -A FORWARD -j FWD_IPFLT
    -A FORWARD -j FWD_IPFLT_DEFAULT
    -A FORWARD -j FWD_SERVICE
    -A FORWARD -j FWD_PORTMAP
    -A FORWARD -j FWD_FIREWALL_CUST
    -A FORWARD -j FWD_FIREWALL
    -A OUTPUT -o ra+ -j DROP
    -A OUTPUT -o wl+ -j DROP
    -A FWD_WANUPDOWN -m rt --rt-type 0 -j DROP
    -A FWD_WANUPDOWN -o wan+ -m mark --mark 0x102001 -j DROP
    -A FWD_WANUPDOWN -o ppp+ -m mark --mark 0x102001 -j DROP
    -A INPUT_DOS -i wan+ -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
    -A INPUT_DOS -i wan+ -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j DROP
    -A INPUT_DOS -i ppp+ -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
    -A INPUT_DOS -i ppp+ -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j DROP
    -A INPUT_DOS -i wan+ -p ipv6-icmp -m icmp6 --icmpv6-type 137 -j DROP
    -A INPUT_DOS -i ppp+ -p ipv6-icmp -m icmp6 --icmpv6-type 137 -j DROP
    -A INPUT_FIREWALL -i wan+ -j DROP
    -A INPUT_FIREWALL -i ppp+ -j DROP
    -A INPUT_SERVICE -i ppp257 -p udp -m udp --dport 546 -j ACCEPT
    -A INPUT_SERVICE -i wan+ -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT_SERVICE -i ppp+ -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT_SERVICE -p ipv6-icmp -m icmp6 --icmpv6-type 133 -j ACCEPT
    -A INPUT_SERVICE -p ipv6-icmp -m icmp6 --icmpv6-type 134 -j ACCEPT
    -A INPUT_SERVICE -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j ACCEPT
    -A INPUT_SERVICE -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j ACCEPT
    -A INPUT_SERVICE -p ipv6-icmp -m icmp6 --icmpv6-type 141 -j ACCEPT
    -A INPUT_SERVICE -p ipv6-icmp -m icmp6 --icmpv6-type 142 -j ACCEPT
    COMMIT
    
    

    请问,最有可能问题出在哪里

    第 1 条附言  ·  2022-08-26 15:01:54 +08:00

    实测,修改光猫 forward 链 无效。

    必须要在 slaac host 上,即 旁路路由 n1 上添加策略。

    如 禁止访问 1688 端口。用 -I 插入,放在最前面,根据需要添加 -s 指定地址。

    ip6tables -I INPUT -p tcp --dport 1688 -j ACCEPT
    
    
    第 2 条附言  ·  2022-08-26 15:09:34 +08:00
    也就是说,所有,通过 slaac 获取 ipv6 的 host ,手机也好,电脑也好,appletv 也好,都是裸奔的!
    待验证 ing
    18 条回复    2022-08-26 23:06:59 +08:00
    heiher
        1
    heiher  
       2022-08-26 13:37:16 +08:00 via Android   ❤️ 1
    forward 都是放行的吧
    kaedeair
        2
    kaedeair  
       2022-08-26 13:41:57 +08:00
    最有可能是光猫防火墙不支持 ipv6
    cloudsigma2022
        3
    cloudsigma2022  
    OP
       2022-08-26 13:51:34 +08:00
    @heiher 路由器 forward 默认都是放行的。
    测试了下, 在 telnet 光猫的 ipv6 22 是不通的。而 telnet 软路由 ipv6 22 却是通的。
    说明光猫 ipv6 防火墙是工作的,且 阻断了 wan 口 22 端口流量。而 通过 slaac 获取的 ipv6 的 下挂设备( n1 旁路),
    因为不是自己的流量,会通过 forward 链 经 output 链 出去,到 n1 。

    我估计,所有以同样的 lan - lan 方式连接的软路由都存在 裸奔的情况。
    kaedeair
        4
    kaedeair  
       2022-08-26 14:52:37 +08:00
    @cloudsigma2022 #3 有没有一种可能是光猫 telnet 只监听了 ipv4 的端口,如果结果为 refuse 说明没监听,为 timeout 说明防火墙工作
    gkl1368
        5
    gkl1368  
       2022-08-26 14:55:02 +08:00
    ipv6 slaac 下每个地址都是公网 ip
    cloudsigma2022
        6
    cloudsigma2022  
    OP
       2022-08-26 14:57:58 +08:00
    @kaedeair 不是,listen 地址是 ::
    cloudsigma2022
        7
    cloudsigma2022  
    OP
       2022-08-26 15:03:48 +08:00
    @gkl1368 貌似,光猫 防火墙不支持 ipv6 slaac 下给 每个下发的 slaac host 主机添加策略。只支持 分配给 光猫自己的 ipv6 。
    cloudsigma2022
        8
    cloudsigma2022  
    OP
       2022-08-26 15:05:46 +08:00
    @kaedeair 在光猫上临时添加一条策略,ip6tables -I INPUT -p tcp --dport 22 -j ACCEPT ,插在最前面,在 vps 上 telnet 是通的
    heiher
        9
    heiher  
       2022-08-26 15:09:04 +08:00
    @cloudsigma2022

    > 实测,修改光猫 forward 链 无效。

    难道有 bypass netfilter 的 fwd 加速?
    kaedeair
        10
    kaedeair  
       2022-08-26 15:09:11 +08:00
    @cloudsigma2022 可能是由于省略了 nat 过程,导致直接走了 forward 链
    cloudsigma2022
        11
    cloudsigma2022  
    OP
       2022-08-26 15:11:25 +08:00
    @kaedeair 不清楚,我是 ma5671 , 最新 205 固件。其他的桥接模式下,路由器拨号,应该也是一样的。
    cwbsw
        12
    cwbsw  
       2022-08-26 16:09:42 +08:00
    旁路由的拓扑,不管 IPv4/IPv6 ,防火墙策略都是要应用到主路由上的。
    ltkun
        13
    ltkun  
       2022-08-26 16:11:55 +08:00 via Android
    是的 所以根本不需要内网穿透就可以访问所以 ipv6 设备了 很好很方便 配合 ipv6 的 ddns
    respawn
        14
    respawn  
       2022-08-26 16:16:34 +08:00
    echoo00
        15
    echoo00  
       2022-08-26 16:18:17 +08:00
    你软路由获取的地址 2408:823c:815 是公网地址,当时是通的;
    在 IPV4 中,我们用的软路由一般都是私有 IP 地址啊,比如 192.168.X.X 之类的
    gkl1368
        16
    gkl1368  
       2022-08-26 20:21:24 +08:00
    @cloudsigma2022 ipv6 每个主机地址都是公网 ip ,不需要转换, 光猫的防火墙只能针对光猫的 ipv6 地址做策略。你应该在每个主机上针对 v6 地址做策略
    cloudsigma2022
        17
    cloudsigma2022  
    OP
       2022-08-26 20:53:48 +08:00
    @gkl1368 这就比较操蛋了,每个 slaac host 都在裸奔。
    Licsber
        18
    Licsber  
       2022-08-26 23:06:59 +08:00
    @cloudsigma2022 #17 可以看一下我的帖子
    /t/875719
    确实 SLAAC 都在裸奔 但是比起有状态还是安全一点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1005 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:17 · PVG 06:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.