如何将 IPv6 入站流量转发到我的计算机?

如何将 IPv6 入站流量转发到我的计算机?

我的路由器上的 IPv6 流量似乎被丢弃。

如何ip6tables正确配置,以便将流量转发/接受到我的计算机?

这是syslog我的 IPv6 流量:

Jun 29 18:44:52 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2002:xxxx:ba3d:0000:0000:0000:74ca:ba3d DST=My_IPv6_IP_ADDR LEN=68 TC=0 HOPLIMIT=119 FLOWLBL=0 PROTO=TCP SPT=58154 DPT=63282 SEQ=3810938415 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020404C401010402) 
Jun 29 18:44:52 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2002:xxxx:ba3d:0000:0000:0000:74ca:ba3d DST=My_IPv6_IP_ADDR LEN=78 TC=0 HOPLIMIT=119 FLOWLBL=0 PROTO=UDP SPT=28798 DPT=63282 LEN=38 
Jun 29 18:44:57 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2001:xxxx:0008:e8ad:0000:0000:0000:0001 DST=My_IPv6_IP_ADDR LEN=80 TC=0 HOPLIMIT=50 FLOWLBL=0 PROTO=TCP SPT=40930 DPT=80 SEQ=2391968293 ACK=0 WINDOW=14400 RES=0x00 SYN URGP=0 OPT (020405A00402080A7E7DEFB80000000001030307) 
Jun 29 18:44:58 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2001:xxxx:0008:e8ad:0000:0000:0000:0001 DST=My_IPv6_IP_ADDR LEN=80 TC=0 HOPLIMIT=50 FLOWLBL=0 PROTO=TCP SPT=40930 DPT=80 SEQ=2391968293 ACK=0 WINDOW=14400 RES=0x00 SYN URGP=0 OPT (020405A00402080A7E7DF0B20000000001030307) 
Jun 29 18:44:59 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2a02:xxxx:c310:a5a0:81eb:84c7:22af:7539 DST=My_IPv6_IP_ADDR LEN=72 TC=0 HOPLIMIT=43 FLOWLBL=0 PROTO=TCP SPT=58249 DPT=63282 SEQ=1653524828 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405A00103030801010402) 
Jun 29 18:44:59 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2a02:xxxx:c310:a5a0:81eb:84c7:22af:7539 DST=My_IPv6_IP_ADDR LEN=78 TC=0 HOPLIMIT=43 FLOWLBL=0 PROTO=UDP SPT=23103 DPT=63282 LEN=38 
Jun 29 18:45:00 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2001:xxxx:0008:e8ad:0000:0000:0000:0001 DST=My_IPv6_IP_ADDR LEN=80 TC=0 HOPLIMIT=50 FLOWLBL=0 PROTO=TCP SPT=40930 DPT=80 SEQ=2391968293 ACK=0 WINDOW=14400 RES=0x00 SYN URGP=0 OPT (020405A00402080A7E7DF2A70000000001030307) 
Jun 29 18:45:02 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2a02:xxxx:c310:a5a0:81eb:84c7:22af:7539 DST=My_IPv6_IP_ADDR LEN=72 TC=0 HOPLIMIT=43 FLOWLBL=0 PROTO=TCP SPT=58249 DPT=63282 SEQ=1653524828 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405A00103030801010402) 
Jun 29 18:45:02 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2a02:xxxx:c310:a5a0:81eb:84c7:22af:7539 DST=My_IPv6_IP_ADDR LEN=78 TC=0 HOPLIMIT=43 FLOWLBL=0 PROTO=UDP SPT=23103 DPT=63282 LEN=38 
Jun 29 18:45:06 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2601:xxxx:8380:06b8:5d87:46c7:7e85:08c9 DST=My_IPv6_IP_ADDR LEN=72 TC=0 HOPLIMIT=42 FLOWLBL=0 PROTO=TCP SPT=52362 DPT=63282 SEQ=3069346662 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405A00103030201010402) 
Jun 29 18:45:08 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2a02:xxxx:c310:a5a0:81eb:84c7:22af:7539 DST=My_IPv6_IP_ADDR LEN=68 TC=0 HOPLIMIT=43 FLOWLBL=0 PROTO=TCP SPT=58249 DPT=63282 SEQ=1653524828 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405A001010402) 
Jun 29 18:45:09 kernel: DROP IN=eth3 OUT=br0 MAC=MAC_ADDR_1 SRC=2601:xxxx:8380:06b8:5d87:46c7:7e85:08c9 DST=My_IPv6_IP_ADDR LEN=72 TC=0 HOPLIMIT=42 FLOWLBL=0 PROTO=TCP SPT=52362 DPT=63282 SEQ=3069346662 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405A00103030201010402) 

这是路由器文件的内容ip6t_filter.default

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:maclist - [0:0]
:bfplimit - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A INPUT -p 58 ! --icmpv6-type echo-request -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p udp --sport 547 --dport 546 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -p 58 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -o br0 -j DROP
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT

这是br0界面:

br0       Link encap:Ethernet  HWaddr AA:BB:49:E3:62:8E
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: IPv6_1 Scope:Global
          inet6 addr: fe80::e23f:49ff:fee3:628e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2233491 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1930092 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:998010242 (951.7 MiB)  TX bytes:348204643 (332.0 MiB)

这是eth3界面:

eth3      Link encap:Ethernet  HWaddr MAC_ADDR_1
          inet addr:MyIPv4_HOST_ADDR  Bcast:X.Y.223.255  Mask:255.255.224.0
          inet6 addr: IPv6_2 Scope:Global
          inet6 addr: fe80::e23f:49ff:fee3:628d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9909832 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15334176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1243667320 (1.1 GiB)  TX bytes:19852159929 (18.4 GiB)

答案1

您的 DROP 全部标记为 TCP SYN。 SYN表示从外部世界进来的一个新的TCP连接。首先,天真的答案是

-A FORWARD -m state --state NEW -j ACCEPT

但是(因为你必须问)你实际上不想这样做。你需要一些更“合适”的东西。

因为有人会天真地插入打印机、NAS、Windows 设备,并将防火墙设置为“家庭”又名“专用网络”。或者在您的网络上提供服务的任何其他设备,这毕竟是网络的用途。然后互联网将攻击打印机或 NAS,或者攻击 Windows 设备共享的文件。抱歉,安全很糟糕。

如果您寻找消费者 IPv6 路由器(“CPE”)的标准,您会发现它们要求像您的路由器一样使用状态防火墙。

当您想要运行服务器时,理想情况下您应该在单独的“DMZ”网络上使用专用计算机。即主路由器上的独立网络端口,它不会桥接到您的家庭 LAN 上。例如,如果您想托管博客,当有人发现博客软件中存在漏洞时,这将为您的 PC 提供一层保护。

当您想要运行一些具有较差安全支持[1]的面向消费者的设备(例如直接连接到 LAN 的“私有云”NAS、IP 摄像机等)时,值得了解一下它通常如何与 IPv4 配合使用。他们主要使用 uPnP 端口转发[2],如果失败,他们会告诉您在路由器上手动配置端口转发[3]。这也是像 BitTorrent 这样的点对点文件共享的工作原理。

这在 IPv6 中也可以起到同样的作用,只不过从技术上讲,您不转发端口,而只是解锁它。 (人们连接的IP地址将是机器的IP,而不是路由器的)。

uPnP 端口转发不适用于 IPv6。有一个名为 PCP 的等效协议(基于 Apple 针对 IPv4 的 NAT-PMP)。我确信这会用于 BitTorrent,但我不知情的猜测是这与您的情况无关。

对于手动端口控制(v4/v6),您需要确保为设备分配固定的 IP 地址,以便可以永久识别它。然后你就可以[4]

-A FORWARD -p tcp -d YOUR_MACHINE_IPV6_ADDRESS --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

对于端口 63282 或您想要向 Internet 公开的任何端口也是如此。

这使您的防火墙策略集中在路由器上。 (如果您解锁了所有端口,则需要密切关注 i)计算机上运行的服务 ii)计算机上的主机防火墙 iii)路由器)。

因为您的网络是桥接的,所以我认为即使您的计算机在路由器的无线和有线接口之间切换,这也将起作用。 (因为它可以在任一设备上使用相同的 IP 地址)。

[1]http://www.wired.com/2014/01/theres-no-good-way-to-patch-the-internet-of-things-and-thats-a-huge-problem/
[2]http://en.wikipedia.org/wiki/Universal_Plug_and_Play#NAT_traversal
[3]http://en.wikipedia.org/wiki/Port_forwarding
[4] Stolen^W 改编自 IPv4 版本:https://serverfault.com/questions/140622/how-can-i-port-forward-with-iptables

相关内容