netfilter / iptables: neden ham tabloyu kullanmıyorsun?


22

Linux altında, genel filtreleme yapmak için genellikle "filtre" tablosunu kullanırız:

iptables --table filter --append INPUT --source 1.2.3.4 --jump DROP
iptables --table filter --append INPUT --in-interface lo --jump ACCEPT

Aşağıdaki netfilter akış şemasına göre, paketler önce "raw" tablosundan geçerler:

görüntü tanımını buraya girin

Böylece yazabiliriz:

iptables --table raw --append PREROUTING --source 1.2.3.4 --jump DROP
iptables --table raw --append PREROUTING --in-interface lo --jump ACCEPT
  • Paketler ertelemeye gerek kalmadan ertelenir, kontör + mangle + nat + yönlendirme. Çok az CPU / bellek kullanıldı (ve sırayla iptable_raw modülünün yüklenmesi gerektiğinden hafifçe telafi edildi)
  • Kutunun da bir yönlendirici olması durumunda sadece bir kural (her kural için açık olmaz), çünkü filtre / iletme için aynı kuralı eklemeye gerek yoktur

Sadece hızlı testler yaptım ve bu mükemmel çalışıyor.
Bulduğum belgeler her zaman katı durumlarda kullanılacak ham masayı tanımlar. Ancak hiçbiri en küçük gerekçeyi bile vermez.

Soru: Ham masaları kullanmamanın, dogmatik olanları ayırmanın bir nedeni var mı?


Tüm trafiği belirli IP adreslerinden düşürmek istiyorsanız, ham tablo iyi durumdadır. Bununla birlikte, güvenlik duvarı genellikle bundan biraz daha iyi tanelidir, bu nedenle ham bazı kurallara ve filtredeki bazı kurallara son verirsiniz. Bu, bakımın baş ağrısına neden olur ve basitleştirilmesi birkaç CPU işlemine değer.
wurtel

1
Eğer sadece bir baş ağrısı problemi ise, ham tablo hakkında konuşan bazı örnekler bulmalıyız. Durum böyle olmadığından başağrısı teorisi muhtemelen ana faktör değildir.
Gregory MOUSSAT

1
İpset'in yazarı, ipset iptables kuralları için ham tablonun kullanılmasını tavsiye eder ipset.netfilter.org/tips.html
Stuart Cardall 17.06

Yanıtlar:


17

Gönderen adam iptables :

raw: This table is used mainly for configuring exemptions from connection
     tracking in combination with the NOTRACK target. It registers at the
     netfilter hooks with higher priority and is thus called before
     ip_conntrack, or any other IP tables.
     It  provides the following built-in chains:

     - PREROUTING (for packets arriving via any network interface)
     - OUTPUT (for packets generated by local processes)

Analiz :

Bu yüzden, RAW tablosu konturdan öncedir ve netfilter'de izlemek istemediğiniz paketlerde NOTRACK işaretini ayarlamak amacıyla kullanılmak üzere tasarlanmıştır.

-J hedefleri yalnızca NOTRACK ile sınırlı değildir, bu nedenle evet, ham tablodaki paketleri daha az CPU / bellek tüketiminin yararları ile filtrelersiniz.

Çoğu zaman, sunucuların tüm bağlantıları takip etmesi gerekmez. Sadece önceden kurulmuş bağlantılara dayanarak paketleri iptables içinde filtrelemeniz gerekiyorsa izlemeye ihtiyacınız vardır. Yalnızca 80 numaralı (ve belki 21) açık bağlantı noktası gibi basit bir amaca hizmet eden sunucularda, buna gerek yoktur. Bu gibi durumlarda, bağlantı izlemeyi devre dışı bırakabilirsiniz.

Bununla birlikte, bir NAT yönlendiricisini çalıştırmaya çalışıyorsanız, işler biraz karmaşıklaşır. Bir şeyi NAT yapmak için bu bağlantıları izlemeniz gerekir, böylece paketleri dış ağdan iç ağa iletebilirsiniz.

Tüm bir bağlantı NOTRACK ile ayarlanırsa, o zaman ilgili bağlantıları izleyemezsiniz, bağlantı noktası ve nat yardımcıları takip edilmeyen bağlantılar için çalışmaz, ya da ilgili ICMP hataları yapmaz. Bunlar için elle başka bir deyişle açmanız gerekecek. FTP, SCTP ve diğerleri gibi karmaşık protokoller söz konusu olduğunda, yönetimi çok zor olabilir.

Kullanım durumlarda :

Bunun bir örneği, gelen ve giden trafiği güvenlik duvarında açmak, ancak yönlendirilmiş trafiğe güvenlik duvarı vermek istemediğiniz ağır trafikte bulunan bir yönlendiriciniz varsa olabilir. Ardından, işlem gücünden tasarruf etmek için iletilen trafiği yoksaymak için NOTRACK işaretini ayarlayabilirsiniz.

NOTRACK kullanılabildiğinde başka bir örnek, çok sayıda ticareti yapılan bir web sunucunuz varsa, daha sonra yerel olarak sahip olunan tüm IP adreslerinde veya gerçekte web trafiğine hizmet verenler için 80 numaralı bağlantı noktasını izleyen bir kural oluşturabilirsiniz. Daha sonra aşırı yüklenmiş bir sistemde işlem gücü tasarrufu sağlayabilecek web trafiği hariç, diğer tüm servislerde durum izlemenin keyfini çıkarabilirsiniz.

Örnek -> özel ağ için çalışan bir yarı vatansız linux yönlendirici

Sonuç : Ham tabloyu kullanmamak için güçlü bir neden yoktur, ancak ham tabloda NOTRACK hedefini kullanırken dikkat etmeniz gereken bazı nedenler vardır.

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.