Iptables - Köprü ve İleri zincir


14

br0İki arayüz içeren ethernet köprüsüne sahibim eth0vetap0

brctl addbr br0
brctl addif eth0
brctl addif tap0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 

Varsayılan FORWARDzincir politikamDROP

iptables -P FORWARD DROP

Aşağıdaki kural eklemek yok zaman trafik köprüden geçmiyor.

iptables -A FORWARD -p all -i br0 -j ACCEPT

Anladığım kadarıyla iptablessadece IP katmanından sorumlu.

ebtables Ethernet köprüsündeki trafiği filtrelemekten sorumlu olmalıdır.

Peki neden iptable'ın FORWARD zincirine ACCEPT kuralını eklemeliyim?

Yanıtlar:


12

Linux 2.4 için bir yama olarak mevcut olan ve linux 2.6'da kullanılan br-nf kodu nedeniyle:

Br-nf kodu köprülü IP çerçevelerini / paketlerini iptables zincirlerinden geçirir. Ebtables, Ethernet katmanındaki filtreleri, iptables ise yalnızca IP paketlerini filtreler.

Çalıştığınız trafik ip iptablesolduğundan , köprülenmiş paketleri geçen br-nf nedeniyle kurallar hala geçerlidir iptables.

Bu , etkileşim hakkında okumak için harika bir kaynaktır ve bu , br-nf kodunun işlevselliğini, tüm veya bazı işlevlerin nasıl devre dışı bırakılacağı (örneğin, köprü trafiğini iptables'a geçirmeme dahil) detaylandırır .


İşlev, yaptıktan sonra bile 4.4.0-22-jenerik (ubuntu 16.04) üzerinde çalışmıyor echo "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptables. Herhangi bir fikir?
Arie Skliarouk

Kendime cevap veriyorum: # Load br_netfilter modprobe br_netfilter # Tüm ipv4 paketlerini iptables ebtables'a iletmek için BROUTING zincir kuralına ekle -t broute -A BROUTING -p ipv4 -i br0 -j DROP
Arie Skliarouk 15:17


1

Sisteminizdeki köprü ile iptables kullanmanız gerekmiyorsa, aşağıdakilerden birini kullanarak kalıcı olarak devre dışı bırakabilirsiniz:

  1. Bir iptables kuralı ekleme:

iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT

  1. Veya /etc/sysctl.conf dosyasını düzenlerken:

net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.