Nedir?

iptables, gelen/giden trafiği yönetmek için kullanılan, kurallardan oluşan bir güvenlik duvarıdır. İstenmeyen iplerden gelen paketleri düşürmek, port forwarding gibi çeşitli işlemleri uygulamaya imkan tanır.

Yapısı

  1. Table
  2. Chain
  3. Rule

iptables, 3 temel parçadan oluşur:

Tables

Filter table:

iptables’daki default tablodur. Adından da anlaşılacağı gibi temel amacı paketleri filtrelemektir.

NAT table:

Network address translation kuralları için kullanılır. Paketlerin source ve destination adreslerini değiştirir.

Mangle table:

Bu tablo, paketin IP başlıklarını değiştirmek için kullanılır. Örneğin TTL(time to live) değeri değiştirilebilir.

RAW table:

Bağlantı takibi için RAW tablosu kullanılır.

Security table:

Güvenlik tablosu, SELinux veya SELinux güvenlik bağlamını yorumlayabilen diğer sistemlerin bu paketleri işleme şeklini etkileyecek olan paketler üzerine dahili SELinux güvenlik içeriği işaretleri göndermek için kullanılır.

Chains

Zincirler, kuralları uygulayabileceğiniz bir paketin rotasındaki noktalar/duraklar gibidir. iptables’da 5 zincir vardır, bunlar:

  1. Pre routing
  2. Input
  3. Forward
  4. Output
  5. Post routing

Tüm zincirler, tüm tablolarda mevcut değildir. Her zincir, paketler ve paket rotasındaki belirli bir nokta üzerinde işlem yapma seçeneği sunar.

Kurallar

Kurallar, ağ trafiğini işlemek için kullanıcı tarafından tanımlanmış komutlardır. Her zincir çağrıldığında gelen paket ile sırasıyla içinde bulunan kuralları karşılaştırır. Eğer karşılaştırılan kural paket ile uyumluysa bu kural çalıştırılır. Değilse bir sonraki kurala geçilir.

Her kural iki kısımdan oluşur:

Matching component

Kuralla eşleşecek paketi tanımlayan bilgiler: ip numarası, port numarası, interface’i

Target component

Eğer paket istenilen kriter/lerle eşleşirse tetiklenecek eylemdir. İki tip bulunur:

Terminating targets

Bu kural tetiklenince zincirden çıkar (break; gibi).

Non terminating targets

Bu kural tetiklendikten sonra, diğer kurallara bakılmaya devam edilir.

Kaynaklar:

  • https://data-flair.training/blogs/what-are-iptables-in-linux/
  • https://help.ubuntu.com/community/IptablesHowTo?action=show&redirect=Iptables


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *