Güvenlik duvarları günümüz de çok büyük önem taşımaktadır. İnternet ortamında gelebilecek potansiyel saldırılara karşı savunma adına önemli bir görev üstlenmiştir. Güvenlik duvarların da zaman zaman zararlı yazılımlar çıkabilmektedir. Bunun tespiti ise gelişmiş programlar yolu ile sağlanmaktadır. Lakin bu zararlı yazılımları tespit edebilmek için gelişmiş programları her zaman güncellememiz gerekmektedir. Bu da zahmetli bir işlemdir. Eğer zararlı yazılım tespiti yapılmaz ise güvenlik duvarı tam koruma sağlayamaz. Bunun sebebi ise Güvenlik duvarlarına gelen/giden paketler sadece filtrelenir, paketin içeriğine bakılmaz bu yüzden tam koruma yapamaz. Lakin bugün öğreneceğimiz program bu sorunu ortadan kaldırabilecektir.





İptables Nedir?

İptables Linux veya Unix gibi sistemlerde bulunan sunucuların trafiğini erişimini sağlayan bir uygulamadır. İptables şu an ki zamanda bulunan çoğu güvenlik duvarı uygulamaların da entegre halinde bulunmaktadır. İptables sunucuya gelen, giden ve yönlendirme yapılan paketler için bir zinciri vardır. Bu zincirlere kural ekleme, kural silme ve kural değiştirme için belli komutları mevcuttur.

İptables'te üç tane zincir vardır. Bunlar, INPUT (Gelen paketleri kontrol eder), OUTPUT (Giden paketleri kontrol eder) ve FORWARD (Başka sistemden gelen ve bizim sistemimiz üzerinden geçiş yapan paketleri kontrol eder) olarak adlandırılırmıştır.
Zincirlere gelen paketler gelebilir ve eşleşebilir.
Bir paket bir zincir ile eşleştiğini varsayalım, eğer eşleştiği zincirde ilk kural zinciri terk etmek ise paket zinciri terk edecektir. Bu paket ya kullanıcı tarafından başka bir zincire yönlendirilir ya da paket rastgele bir zincire yönelir. Rastgele zincir ile eşleştikten sonra Drop (Paket geçişine izin, vermez) veya Accept (paket geçişine izin verir) komutları kullanılabilir.

Bir paket, zincirde bulunan kurallardan herhangi bir tanesi ile eşleşmez ise default adı altında bir aksiyon uygulanır. Bu aksiyon Accept veya Drop sonuçlarını verebilmektedir.






Iptables Özellikleri Nedir?

Iptables kullanırken büyük/küçük harfler çok önemlidir. Tek bir büyük veya küçük harf hatası ile uygulama çalışmayabilir.

Iptables'te NAT özelliği mevcuttur. Bu özellik sayesinde Proxy kurabilirsiniz.

Iptables'te bulunan paketleri filtreleme işleminden geçirebilirsiniz.

NAT özelliği sadece Proxy kurmakta değil internet paylaşımında da yardımcı olabilmektedir.






İptables'in Basit Komutları

Iptables'i Sistemde Göstermek


Sistemde Iptables olup olmadığına bakmamız için kullanmamız gereken bir parametredir. Bu parametreyi terminale gelip şunu yazıyoruz.

Kod:
sudo iptables -L -v


Görüldüğü üzere sistemde İptables olup olmadığını gösterdi. Eğer sistemde Iptables yok ise şu komutla indirebilirsiniz.

Kod:
sudo apt-get update
Sudoyu güncelledikten sonra Iptables'i indirelim.

Kod:
sudo apt-get install iptables
Bu konuttan sonra Iptables inecektir. Sistemde göstermek için ise ilk başta yazdığım komut ile sistemde görebilirsiniz.


Kural Ekleme, Kural Silme Ve Kural Değiştirme

Iptables'te kurallar olduğunu söylemiştik ve bunları silme, ekleme ve değiştirme gibi yetkilerimiz olduğunu da söyledik. Şimdi bu işlemleri yapalım.

Eğer ilk başta kuralları görüntülemek isterseniz yukarıda yazdığım parametreyi kullanabilirsiniz.

Kod:
sudo iptables -L -v
Bu komut hem Iptables'in sistemde olup olmadığını hem de var olan kuralları gösterecektir.

Şimdi gelelim kural ekleme kısmına, kümeye kendi kurallarınızı eklemek için zincirde bulunan kurallara uygun bir biçimde kural eklemeniz gerekmektedir.

Mesela TCP üzerinden 9001 numaralı bağlantı noktasına bir kural ekleyelim. Bu kurala bağlantı noktamıza gelen bağlantılarla izin vermek kuralı olsun. Lakin bu kuralı eklerken giriş zincirlerine uygun olması gerekmektedir.

Kod:
sudo iptables -I INPUT 1 -p TCP --dport 9001 -m state --state NEW -j ACCEPT
Bu parametre ile kural eklenecektir. Bu kuralı sistemde görüntülemek için ise yukarıda yazdığımı parametreyi yazıyoruz.

Kod:
sudo iptables -L -v
Şimdi gelelim kuralı değiştirmeye, kuralın işlevini, çalışma biçimine ekleme veya çıkarma yapılmasına kural değiştirme denir. Yukarıda eklenen kuralı gelen bağlantıları kabul etmeyecek şekilde değiştirelim.

Kod:
sudo iptables -R INPUT 1 -p TCP --dport 9001 -m state --state NEW -j REJECT
Kural ekleme ve kural değiştirme komutları birbirine çok benziyor. Bunu ayırt etmek için ise kural ekleme de -I yazarken, kural değiştirme de - R yazıyoruz.

Son olarak da kural silmeye gelelim, sistemde istemediğimiz bir kuralı silmeye yetkimiz vardır. O da şu komut ile silinir.

Kod:
sudo iptables -D INPUT 1
Bu komutu yazdıktan sonra kural silenecektir.




Iptables güvenlik duvarları için önemli bir uygulama haline gelmektedir. Sadece bugün gördüğümüz özelliklere sahip değil daha pek çok özelliklere sahiptir. Sisteminiz de kuralları sizin belirlemeniz ve yönetmeniz çok kullanışlı bir şeydir.