방화벽 (iptables)이 브리지 (brctl)에서 방해하는 이유는 무엇입니까?


11

br0두 개의 인터페이스에 "연결된" 브리지를 설정했습니다 .

  • eth0실제 인터페이스는 실제 LAN에 연결되어 있습니다.
  • vnet0, KVM 가상 인터페이스 (Windows VM에 연결됨).

그리고 순방향 체인 에이 단일 방화벽 규칙이 있습니다.

iptables -A FORWARD -j REJECT

이제 작동하는 유일한 Ping은 VM에서 호스트까지입니다.

br0인터페이스 내 호스트 시스템의 IP 주소를 소유하고있다. eth0vnet0보기의 호스트의 관점에서, 어떤 IP를 "소유"하지 않습니다. Windows VM에는 고정 IP 구성이 있습니다.

iptables규칙을로 변경 ACCEPT하거나 더 제한적으로 사용하면 iptables -A FORWARD -o br0 -j ACCEPT모든 것이 잘 작동합니다! (즉, VM에서 LAN 시스템을 핑 (ping) 할 수 있으며 다른 방법으로도 핑할 수 있음)

모든 IP 전달 커널 옵션이 비활성화됩니다 (예 net.ipv4.ip_forward = 0:).

그렇다면 넷 필터 방화벽은 어떻게 활성화되지 않은 것을 차단할 수 있습니까?

또한 VM-LAN 트래픽은 eth0및을 암시해야합니다 vnet0. 그러나 -o br0"works"로 FORWARD 트래픽을 허용하는 것처럼 보입니다 (매우 신중하게 확인하지는 않았습니다).



1
출력의 기능sysctl -a | grep bridge-nf
스테판 Chazelas가

@ StéphaneChazelas net.bridge.bridge-nf-call-arptables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-filter-vlan-tagged = 0 net.bridge.bridge-nf-filter-pppoe-tagged = 0
토토

답변:


10

Stéphane Chazelas 의 의견 은 답변에 대한 힌트를 제공합니다.

Bridge-nf FAQ 에 따르면 bridge-nf는 iptables, ip6tables 또는 arptables가 브리지 된 트래픽을 볼 수 있도록합니다.

커널 버전 2.6.1부터 bridge-nf 동작 제어를위한 5 개의 sysctl 항목 이 있습니다 .

  • bridge-nf-call-arptables -브리지 된 ARP 트래픽을 arptables의 FORWARD 체인으로 전달하십시오.
  • bridge-nf-call-iptables -브리지 된 IPv4 트래픽을 iptables 체인으로 전달합니다.
  • bridge-nf-call-ip6tables -브리지 된 IPv6 트래픽을 ip6tables 체인으로 전달합니다.
  • bridge-nf-filter-vlan-tagged -브리지 된 VLAN 태그가 지정된 ARP / IP 트래픽을 arptables / iptables에 전달합니다.
  • net.bridge.bridge-nf-filter-pppoe-tagged -브리지 된 pppoe 태그가 지정된 IP / IPv6 트래픽을 {ip, ip6} 테이블로 전달

다음을 사용하여 넷 필터 방화벽 차단을 비활성화 할 수 있습니다.

# sysctl -w net.bridge.bridge-nf-call-iptables=0
# sysctl -w net.bridge.bridge-nf-call-ip6tables=0

4
Linux 3.18부터, iptables가 브릿지에서 패킷을 처리하는 기능은 br_netfilter모듈을 로드하지 않음으로써 비활성화 될 수 있습니다 . 모듈을로드하지 않으면 /proc/sys/net/bridge/항목 이 없음을 의미합니다 .
Lekensteyn

그리고 리눅스 5.3 커널 때문에 이 기능은 네임 스페이스 대신 글로벌 당이된다.
AB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.