저는 현재 Linux(더 구체적으로는 Archlinux)를 사용하여 홈 네트워크용 라우터를 설정하려고 합니다. 제가 사용하고 있는 임베디드 보드에는 wan0
, 라는 LAN 인터페이스 3개와 Wi lan0
- lan1
Fi 카드 2개가 있습니다 . 나는 두 개의 별도 네트워크를 갖고 싶습니다. 하나는 손님용이고 다른 하나는 나와 내 가족용입니다. 내 현재 설정은 다음과 같습니다.wifi0
wifi1
+-------+
| wifi0 +----------------+
+-------+ +----+---+
| brg0 |
+-------+ +----+---+
| eth0 +----------------+
+-------+
+-------+
| wifi1 +----------------+
+-------+ +----+---+
| brg1 |
+-------+ +----+---+
| eth1 +----------------+
+-------+
lan0
나는 IP 주소가 포함된 및 wifi0
이름이 포함된 브리지 brd0
와 192.168.10.1/24
IP 주소가 포함된 및 이름이 지정된 브리지를 구성했습니다. On이고 dnsmasq는 dhcpd 모드에서 실행되어 해당 범위 및 범위의 클라이언트에 IP 주소를 전파합니다. 이 네트워크는 내 게스트 네트워크이자 홈 네트워크입니다.lan1
wifi1
brd1
192.168.20.1/24
brd0
brd1
192.168.10.50-125
brd0
192.168.20.50-125
brd1
192.168.20.1/24
192.168.10.1/24
지금까지는 이 설정이 작동합니다. 그런데 한 가지 놀랐습니다. 그러나 게스트 네트워크와 홈 네트워크는 서로 다른 두 개의 서브넷에 있으므로 둘 사이의 트래픽도 별개입니다. 하지만 게스트 네트워크에 연결하면 고정 라우터를 설정하거나 전달하지 않고도 홈 네트워크의 서비스와 컴퓨터에 액세스할 수 있습니다. (반대로). 나는 이것이 Linux에서 브리지 장치가 작동하는 방식과 관련이 있다고 생각합니다.
내 질문은 두 네트워크를 서로 분리되도록 라우터를 어떻게 구성합니까? 트래픽 필터링 규칙을 사용해야 합니까? 에테이블을 사용하여 이를 달성할 수 있습니까? 아니면 내 설정이 어떤 식으로든 손상되어 한 네트워크에서 다른 네트워크로 서비스를 제공할 수 없어야 합니까?
답변1
귀하의 인터페이스 이름이 그림과 텍스트 사이에 일치하지 않기 때문에 텍스트를 참조로 사용하겠습니다.
이것라우터brd0
IP가 있는 모든 인터페이스 (홈), brd1
(게스트) 및 wan0
(그림에 추가하는 것을 잊었음) 사이를 라우터가 예상하는 대로 라우팅합니다 .
brd0
wan0
이후 사이에 라우팅 해야 하므로 단순히 라우팅을 비활성화 brd1
할 수는 없습니다 wan0
. 각 방향에 하나씩 두 개의 iptables 규칙을 사용하여 FORWARD
이 경로를 금지 할 수 있습니다.
iptables -A FORWARD -i brd0 -o brd1 -j DROP
iptables -A FORWARD -i brd1 -o brd0 -j DROP
홈 네트워크가 게스트 네트워크에 액세스할 수 있도록 하고 그 반대의 경우에는 상태 저장 규칙을 사용하여 이 작업을 수행할 수 있습니다.
iptables -A FORWARD -i brd1 -o brd0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i brd1 -o brd0 -j DROP
첫 번째 규칙은 인터페이스 이름을 제거하여 향후 유사한 규칙에서 "분해"될 수 있습니다.
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
참고: 한 네트워크의 시스템은 라우팅되지 않아 이러한 규칙을 통과하지 않기 때문에 다른 네트워크에 속하는 라우터 IP(예: from , 성공할 것)에 대해 192.168.20.2
여전히 핑을 보낼 수 있지만 , 이 문제를 해결하기에는 다소 과도한 작업이 될 수 있습니다(사용 올바른 규칙) 체인에서). 그냥 댓글로 남겨봅니다.ping 192.168.10.1
FORWARD
INPUT
참고 2: 이 답변에서는 브리지라는 사실을 다루지 않습니다 brd0
. brd1
라우팅에 관한 모든 것입니다.