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](예: "사설 클라우드" NAS, LAN에 직접 연결된 IP 카메라 등)를 실행하려는 경우 일반적으로 IPv4에서 작동하는 방식을 이해하는 것이 좋습니다. 이들은 주로 uPnP 포트 전달[2]을 사용하며, 이것이 실패할 경우 라우터[3]에서 포트 전달을 수동으로 구성하라고 알려줍니다. 이는 BitTorrent와 같은 P2P 파일 공유가 작동하는 방식이기도 합니다.

이는 기술적으로 포트를 전달하지 않고 잠금을 해제한다는 점을 제외하면 IPv6에서도 동일한 방식으로 작동합니다. (사람들이 연결하는 IP 주소는 라우터의 IP가 아닌 컴퓨터의 IP입니다.)

uPnP 포트 전달은 IPv6에서 작동하지 않습니다. PCP(IPv4용 Apple의 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 또는 인터넷에 노출하려는 모든 포트에도 동일하게 적용됩니다.

이렇게 하면 방화벽 정책이 라우터에 중앙 집중화됩니다. (모든 포트를 잠금 해제한 경우 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
[삼]http://en.wikipedia.org/wiki/Port_forwarding
[4] IPv4 버전에서 채택된 Stolen^W:https://serverfault.com/questions/140622/how-can-i-port-forward-with-iptables

관련 정보