在 guest network 下使用 iptables 无效? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bluesky139
V2EX    路由器

在 guest network 下使用 iptables 无效?

  •  
  •   bluesky139 2016-12-08 09:28:44 +08:00 3979 次点击
    这是一个创建于 3231 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现正在使用 ASUS 路由,刷的 Merlin 固件。

    我开了一个访客网络, ifconfig 出来发现多了一个接口 "wl0.1",我想把这个网络的所有流量转到一个指定端口,因此用了以下 iptables 命令,但是无效:

    iptables -t nat -I PREROUTING -i wl0.1 -p tcp -j REDIRECT -to-port 2081

    如果我针对单一 IP 进行过滤是能行的,比如这个:

    iptables -t nat -I PREROUTING -s 10.10.10.112 -p tcp -j REDIRECT --to-port 2081

    有人知道是怎么回事么?

    20 条回复    2016-12-08 18:20:49 +08:00
    jasontse
        1
    jasontse  
       2016-12-08 10:01:14 +08:00 via Android
    因为不是 wl0.1 ,可能是 br2 。用 brctl show 看一下。
    bluesky139
        2
    bluesky139  
    OP
       2016-12-08 10:13:18 +08:00
    @jasontse brctl show 也没看到 br2.

    这是在开启访客网络前:
    > bridge name bridge id STP enabled interfaces
    > br0 8000.ac9e177dc070 yes vlan1
    > eth1
    > eth2

    这是开启后:
    > bridge name bridge id STP enabled interfaces
    > br0 8000.ac9e177dc070 yes vlan1
    > eth1
    > eth2
    > wl0.1
    47jm9ozp
        3
    47jm9ozp  
       2016-12-08 10:17:54 +08:00
    直接根据 guest ip 段过滤算了
    jasontse
        4
    jasontse  
       2016-12-08 10:18:15 +08:00 via Android
    @bluesky139 那你看它网关地址是从哪个 interface 来的
    bluesky139
        5
    bluesky139  
    OP
       2016-12-08 10:18:47 +08:00
    @jasontse 这排版,我去传个图:
    ![]( http://ooo.0o0.ooo/2016/12/08/5848c2887235d.jpg)
    bluesky139
        6
    bluesky139  
    OP
       2016-12-08 10:20:49 +08:00
    @ooxxcc 由于 DHCP 不在路由上,在其它机器上,也不好配,所以不能按 IP 段来,这个最初我就想过。
    bluesky139
        7
    bluesky139  
    OP
       2016-12-08 10:26:00 +08:00
    @jasontse 这个网关地址该怎么看?
    bluesky139
        8
    bluesky139  
    OP
       2016-12-08 10:41:22 +08:00
    @bluesky139 我自己是这样确定的,在手机上把接入点的 mac 地址打出来,跟 wl0.1 对应:
    https://ooo.0o0.ooo/2016/12/08/5848c77c3d752.png

    路由上整个 ifconfig 的结果是这样:
    https://ooo.0o0.ooo/2016/12/08/5848c8232b069.jpg
    jasontse
        9
    jasontse  
       2016-12-08 10:44:48 +08:00 via iPad
    private 和 guest 是一个段?。。。没有这样组网的
    bluesky139
        10
    bluesky139  
    OP
       2016-12-08 11:08:57 +08:00
    @jasontse 这个 guest 是拿来当第二个 private 用的,只是纯粹需要转发流量,内网的一切资源正常使用,所以在同一个网段。
    网段怎样无所谓,我是想用 interface 来过滤,跟网段又没关系。
    jasontse
        11
    jasontse  
       2016-12-08 11:10:47 +08:00 via iPad
    @bluesky139 wl0.1 发到 br0 才会从防火墙出去你这样做不了的
    bluesky139
        12
    bluesky139  
    OP
       2016-12-08 11:32:00 +08:00
    @jasontse 意思是我需要把“访问内部网络”关掉,让 guest 网络不能访问 private 网络对吗?这样又有个问题, guest 没有 DHCP 无法得到分配到 IP , 路由上的 DHCP 是关掉了的, DHCP 现由另一台服务器在服务。难道无解了?
    orzfly
        13
    orzfly  
       2016-12-08 11:36:50 +08:00   1
    1) wl0.1 不能加入 br0
    2) 需要在 iptables 里加入允许 br0 转发和 wl0.1 之间进行转发
    3) 为了能转发你需要给 br0 和 wl0.1 用两个不同的 IP 段
    orzfly
        14
    orzfly  
       2016-12-08 11:38:50 +08:00
    4) 用两个 IP 段并不是什么大事,反正有转发规则又不是不能互相访问……
    jasontse
        15
    jasontse  
       2016-12-08 11:50:36 +08:00 via iPad   1
    @bluesky139 访不访问内部网不重要,重要的是弄个 br1 出来单独划个子网, DHCP 服务器广播域的问题可以另外解决。
    bluesky139
        16
    bluesky139  
    OP
       2016-12-08 14:40:39 +08:00
    @jasontse
    @orzfly
    我现在弄个了 br1 ,然后把 wl0.1 加入到了 br1 ,再配了网段:

    ifconfig br1 10.1.1.1 netmask 255.255.255.0 broadcast 10.1.1.255

    再到 iptables 配了 br1 允许转发,这时候手机可以上网了(先不考虑 DNS 和 DHCP 的问题)

    这时候我再执行以下命令,把 br1 所有流量转到 2081 上(这就是一个 ss-redir ):

    iptables -t nat -I PREROUTING -i br1 -p tcp -j REDIRECT --to-port 2081

    又不通了。这时我觉得以上 iptables 命令是生效了的,应该还需要怎么设置?
    bluesky139
        17
    bluesky139  
    OP
       2016-12-08 16:43:38 +08:00
    @jasontse
    @orzfly
    结果,只在 FORWARD 链中添加了允许,没在 INPUT 链中添加允许,加上就对了。
    bluesky139
        18
    bluesky139  
    OP
       2016-12-08 16:46:01 +08:00
    @jasontse DHCP 有什么好的解决方法?
    jasontse
        19
    jasontse  
       2016-12-08 17:30:36 +08:00 via iPad
    @bluesky139 可以用 802.1q VLAN Tagging 解决,具体看你服务器操作系统。
    bluesky139
        20
    bluesky139  
    OP
       2016-12-08 18:20:49 +08:00
    @jasontse 我用 dnsmasq 解决了, dnsmasq 可以指定 br1 ,可以不用 DNS 功能,只用 DHCP 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2756 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 15:12 PVG 23:12 LAX 08:12 JFK 11:12
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86