Ne iyidir ki, Linux kernel’ının routing (konumuz kapsamında daha doğru ifadesiyle forwarding) desteği, IPTABLES’ın da NAT desteği bulunmaktadır.
Forwarding’i aktif hale getirmek oldukça kolay:
IP forwarding’i çalışma anında aktif hale getirmek için “/proc/sys/net/ipv4/ip_forward” dosyasına “1” yazabilir veya “sysctl –w net.ipv4.ip_forward=1” komutunu çalıştırabiliriz. “/proc” dizini çalışmakta olan proses’ler ve sistem durumuna ilişkin verilerin tutulduğu sanal bir dosya sistemidir, gerçekte disk üzerinde böyle bir alan bulunmamaktadır.
Yukarıdaki komutlar çalıştırıldıkları anda forwarding’i aktif hale getirir, ancak sistem reboot ettiğinde bu ayar geçerliliğini yitirir. Forwarding’in kalıcı olması için aşağıdaki işlemin yapılması gerekir.
“/etc/sysctl.conf” dosyasındaki “net.ipv4.ip_forward=1” satırı önündeki comment işareti kaldırılarak (veya bu satır yoksa eklenerek) forwarding aktif hale getirilir. Ancak bu değişikliği yaptığınız anda “cron” servisinde olduğu gibi konfigürasyon dosyasındaki değişiklik sistem tarafından algılanmaz. Bu değişikliğin bir sonraki reboot’u veya ağ servisinin tekrar başlatılmasını beklemeden aktif olmasını istiyorsak “sysctl –p /etc/sysctl.conf” komutu ile konfigürasyonu tekrar yüklemek gerekir.
Kernel’da forwarding’i aktif hale getirdikten sonra “iptables” üzerinde 2 kural tanımlamamız gerekir:
- Forward edilecek paketleri ACCEPT et (filter tablosunun FORWARD chain’inde)
- Forward edilecek paketlerdeki kaynak IP adresini çıkış için kullanılacak arayüzünküyle değiştir (nat tablosunun POSTROUTING chain’inde)
Yukarıda öncelikle tüm tabloları flush ettikten sonra tüm chain’leri temizliyoruz. Daha sonra birinci olarak filter tablosunda (eğer tablo ismi belirtilmemişse bu tablo öntanımlı olarak “filter” tablosudur) FORWARD chain’inde eth0 arayüzünden gelen paketler için bir ACCEPT kuralı tanımlıyoruz. Bizim sistemimizde tek bir arayüz var, bu nedenle bir sonraki kuralda çıkış arayüzü olarak da eth0’ı kullanıyoruz. Eğer sistem üzerinde birden fazla arayüz olsaydı çıkış arayüzü olarak diğer arayüzü kullanmamız gerekirdi. Sonraki kural da tahmin edilebileceği gibi “nat” tablosunda bulunan “POSTROUTING” chain’ine bir MASQUERADE kuralı ekliyor. Bu kural sayesinde NAT işlemimiz de gerçekleşmiş olacak.
Bu eklediğimiz kurallar sadece mevcut oturumumuz için geçerli. Eğer sistem her reboot ettiğinde bunların geçerli kalmasını istiyorsak o halde ya bu kuralları bir dosyaya kaydetmeli (iptables-save komutu ile) ve her reboot’ta bir script ile bu kuralları uygulamalı veya “iptables-persistent” paketini kullanarak bu işi bu pakete bırakmalıyız.
“iptables-persistent” uygulaması kurulum sırasında şu andaki kurallarımızı bundan sonraki reboot’larda aktif olmak üzere saklamayı isteyip istemediğimizi soruyor.
<<Önceki Bölüm Sonraki Bölüm>>