Iptables ile NAT (Network Address Translation) İşlemleri
Önceki Iptables'ın Basit Kullanımı Sonraki
Iptables ile NAT (Network Address Translation) İşlemleri
Bu kısımda ise elimden geldiğince Iptables ile NAT (Network Address Translation) işlemlerine değineceğim. Iptables'ın NAT özelliğini:
  • Internet bağlantısını paylaştırmak,
  • Sunucu yükünü dağıtmak/paylaştırmak,
  • Şeffaf vekil tanımlamak,
gibi işlemlerde kullanırız.
NAT özelliği temel olarak iki bölümden oluşur. Kaynak NAT (SNAT) ve Hedef NAT (DNAT).
SNAT (POSTROUTING) kaynak adres üzerinde bir değişiklik yapılmak isteniyorsak kullanılır. Maskeleme (Masquerading) işlemi SNAT ile yapılır. İç ağdan gelen paket SNAT işlemi sonucunda dış ağa sanki bizim ip adresimizden gelmiş gibi iletilir ve gelen sonuç ise bizim tarafımızdan, istek yapılan IP'ye iletilir.
DNAT (PREROUTING) ise hedef adres üzerinde bir değişiklik yapılmak isteniyorsa kullanılır. Örneğin makinamıza gelen bir paketi iç/dış ağdaki bir başka makinaya yönlendirmek istiyorsak DNAT kısmı ile işlem yaparız. Paket bize gelir fakat bu işlem sonucunda paket hedef adres değiştirilmiş olarak yoluna devam eder. Transparent proxy, port yönlendirme, yük paylaşımı (load sharing) gibi işlemlerde bu kısmı kullanıyoruz.
Bu işlemler için -t nat parametresi ile belirlediğimiz iptables'ın NAT ile ilgili tablosunu kullanıyoruz. O yüzden nat işlemlerini kullanmak için ilk olarak -t nat parametresini kullanmamız gerekiyor. Daha sonra ise yapacağımız işlem cinsine göre -A parametresinden sonra POSTROUTING yada PREROUTING'i kullanıyoruz.
Fakat burada dikkat edilmesi gereken nokta PREROUTING işleminde sadece giriş parametrelerinin, POSTROUTING işleminde ise sadece çıkış parametrelerinin kullanılması gerektiğidir.
PREROUTING işlemlerinde:
-j [DNAT,REDIRECT] pakete uygulanacak işlemi belirler.
DNAT: Paketin hedef adresini değiştirir ve yollar.
REDIRECT: Paketi hedef adresini değiştirmeden başka bir adrese iletir. (Şeffaf vekil işlemleri)
POSTROUTING işlemlerinde:
-j [SNAT, MASQUERADE] pakete uygulanacak işlemi belirler.
SNAT: Paketin kaynak adresini değiştirme işlemini gerçekleştirir.
MASQUERADE: Pakete maskeleme işlemini uygular. Bu işlem sonucunda paketin kaynak adresi ve kaynak portu, sunucu adresi ve boş bir port ile eşlenerek hedefe yollanır.
Önceki Üst Ana Başlık Sonraki
Zincirlerde kullanılan seçenek ve parametrelere genel bakış Başlangıç Zincir Uygulamaları
Bir Linux Kitaplığı Sayfası