İptables'da PREROUTING ve FORWARD arasındaki fark nedir?


16

Bu sistemin nasıl çalıştığını anlamaya çalışıyorum ve NAT PREROUTING veya FORWARD'ı filtreleme arasındaki farkı anlamak için sorun yaşıyorum. Anladığım kadarıyla, PREROUTE, filtreden kaçınarak paketi başka bir sunucuya gönderebilir. NAT bunu PREROUTE aracılığıyla halledebiliyorsa, filtrede İLERİ kuralı kullanmanın amacı nedir?

Yanıtlar:


25

NAT Tablosu :

Bu tablo yalnızca farklı paketlerdeki NAT (Ağ Adres Çevirisi) için kullanılmalıdır. Başka bir deyişle, yalnızca paketin kaynak alanını veya hedef alanını çevirmek için kullanılmalıdır.

Filtre Tablosu :

Filtre tablosu esas olarak paketleri filtrelemek için kullanılır. Paketleri eşleştirebilir ve istediğimiz şekilde filtreleyebiliriz. Burası aslında paketlere karşı harekete geçtiğimiz ve içeriğine bağlı olarak neleri içerdiklerine ve DROP veya / ACCEPT'e baktığımız yerdir. Tabii ki önceden filtreleme de yapabiliriz; ancak, bu özel tablo filtrelemenin tasarlandığı yerdir.

Gelen tablo ve zincirlerin Traversing nat en PREROUTING zincir hem iletilen geçtiği iken biz bu filtrenin İLERİ zincirini görebilirsiniz, bilgisayarınız bir yönlendirici gibi davranıyor, yani sadece iletilen paketler (ağından kaynaklanan VE ağa çıkmak paketler) ile geçilen yerel ana bilgisayar olan paketler ve paketler.

Nat'ın PREROUTING işlevini yalnızca paketlerin hedef adresini ve filtrenin FORWARD'ı yalnızca filtreleme (paketleri bırakma / kabul etme) için değiştirmek için kullanmalısınız.

Yerel makinenin kendisi için hedeflenmeyen ilk yönlendirme kararına bir paket alırsak, FORWARD zincirinden yönlendirilecektir. Paket, diğer taraftan, yerel makinenin dinlediği bir IP adresine yönelikse, paketi INPUT zinciri ve yerel makineye göndeririz. resim açıklamasını buraya girin Paketler yerel makine için hedeflenebilir, ancak hedef adresi NAT yapılarak PREROUTING zinciri içinde değiştirilebilir. Bu, ilk yönlendirme kararından önce gerçekleştiği için, pakete bu değişiklikten sonra bakılacaktır. Bu nedenle, yönlendirme kararı verilmeden önce yönlendirme değiştirilebilir. Tüm paketlerin bu görüntüdeki bir veya diğer yoldan geçeceğini unutmayın. Bir paketi geldiği ağa geri gönderirseniz, yine ağa geri dönene kadar zincirlerin geri kalanından geçer.


5

PREROUTING : Bu zincir, herhangi bir paket göndermeden ( PRE ) önce yönlendirmeyle ilgili kararlar vermek için kullanılır . Her zaman PREROUTING/POSTROUTINGyani NATtabloda ACCEPT/DROP/REJECTvarsayılan FILTERtablonun etc hedeflerinin çalışmadığını unutmayın. NATMasa yönlendirme kararları almak için sadece kullanılır. PREROUTINGHerhangi bir yönlendirme kararı alırken kullanmalısınız , yani paketin ağ üzerinden dolaşmaya başlamasından önce alınması gereken kararlar. Örnek olarak, 80 numaralı bağlantı noktasındaki sunucuya yeni ulaşan trafiği 8080 numaralı bağlantı noktasına yeniden yönlendiriyoruz:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

İLERİ : Adından da anlaşılacağı gibi, tablo FORWARDzinciri FILTERpaketleri bir kaynaktan hedefe iletmek için kullanılır, burada kaynak ve hedef iki farklı ana bilgisayardır. Yani, tahmin edebileceğiniz gibi, FORWARDkurallar temel olarak bir ana bilgisayarın sunucu aracılığıyla başka bir ana bilgisayardan trafik gönderip aldığı sunucularda kullanılır. Paket sunucudan üretildiğinde, zincir OUTPUTyani trafik kendiliğinden çıkarken INPUTzincir ise paketlerin sadece sunucunun kendisi için olduğu anlamına gelir. Burada, ana bilgisayar için tasarlanan arabirimde 80 numaralı bağlantı noktasında alınan FORWARDherhangi bir TCPtrafiğin kabul edileceği ve aşağıdakilere iletileceği bir zincir örneği verilmiştir :eth0192.168.0.4192.168.0.4

iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.0.4 -j ACCEPT

"Host" kullanımı garip görünüyor. Bir paketin geldiği ve çıkması amaçlanan öncelikle yerel arabirimlere bağlı olduğunda hangi tablo kullanılır.
guntbert

hangi kısım tuhaf görünüyor? ev sahibi kavramını gönderen ve alan tarafları belirtmek için kullandım ..
heemayl

FORWARD paragrafından bahsediyorum: bu tablo, bir arabirimden gelen bir paket başka bir arabirime (yerel ana makinenin aksine)
hedeflendiğinde kullanılır

oh..ok..i anladım .... evet arayüz kullanmalıyım .... resim yapmayı kolaylaştırmak için sadece ana bilgisayarları kullanın ... i bilgisayarımın infront olacağı zaman değişecek.
heemayl

@guntbert: başımı düzleştirdim. son yorumunuzu yeterince dikkatle okumadım. FORWARDZincir için iki farklı arayüz bağlamında yanıldığını düşünüyorum . Paketler bir LAN'ın bir ana bilgisayarından bir LAN'ın başka bir ana bilgisayarına aktarılırken, paketler sadece tek bir arayüzden geçecek ve kullanılan zincir FORWARDburada sunucu (orta) sıkı bir şekilde yönlendirici olarak davranmayacak olmasına rağmen daha ziyade bir anahtar olarak düşünülebilir.
heemayl
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.