Merhabalar, bügün sizlere Linux çekirdeği ile birlikte gelen iptables ile ilgili bilgi vermeye
çalışacağım. Iptables çekirdek ile gelen bir firewall yazılımı, internet üzerinde iptables ile ilgi
pek türkçe döküman olmadığından bende bir tane hazırlamaya karar verdim umarım birilerine yardımcı olur.
Herneyse, şimdi iptables kullanımını bir örnek üzerinden öğrenmeye çalışalım. Linux sistemlerde
uzak masaüstü bağlantısı yapılmasını nasıl engelleyebiliriz onu görelim.
Öncelikle bağlantı izinini vermek için ayarları yapalım.
Evet, şimdi bağlantı programı ile localhost’a yani kendi bilgisayarımıza bağlanalım.
Bağlantı sırasında atadığımız şifreyi giriyoruz ve şöyle bir uyarı alıyoruz bağlantı istediğini
onaylayıp onaylamadığımızı soruyor.
Bağlantıya onay verdiğimizde ise bağlantı gerçekleşiyor.
Şimdi, bu bağlantıyı iptables ile nasıl engelleyebiliriz ? Şimdi biz kendi bilgisayarımıza bağlantığımız
için bilgisayarımızdan ip’si 127.0.0.1 olan bağlantıları engellemeliyiz. Yani Iptables’de ki OUTPUT
kısmı ile ilgileneceğiz. Şimdi ip adresi 127.0.0.1 olan bir bağlantıyı engellemek için yeni bir kural
eklememiz lazım. Kural eklemek için -A parametresini kullanıyoruz, -A’dan sonra INPUT,FORWARD veya OUTPUT
seçeneği ile kuralımızın hangi durumda geçerli olması gerektiğini bilgiriyoruz OUTPUT dediğimizde sistemden çıkan
bağlantılar ile ilgileniyor.
Şimdi, kural eklemek için hazırız, şimdi hangi adresin engelleneceğini belirtelim bunun için -s parametresini kullanıyoruz
komutumuzun son hali ise şöyle
iptables -A INPUT -s 127.0.0.1
Şuan için komutumuz iptables için bir şey ifade etmiyor çünkü bu tür bir bağlantıda ne yapması gerektiğini
belirtmedik bunun için ise -j parametresini kullanacağız -j parametresi yapmak istediğiniz işleme
göre farklı değerler alıyor örneğin engellemek için DROP, kabul etmek için ACCEPT gibi. Biz engellemek istiyoruz bu yüzden drop kullanıyoruz
Komutun son hali ise
iptables -A INPUT -s 127.0.0.1 -j DROP
Evet şimdi bu komutu konsolda root hakları ile verelim eğer alt satıra geçiyorsa komut başarılı demektir.
Evet, alt satıra geçti emin olmak için iptables kurallarımızı listeleyelim bunun için iptables -L komutunu kullanıyoruz.
Evet, şimdi sistemi yeniden başlattığımızda kuralların değişmemesi için kurallarımızı kayıt edelim.
Komutumuz :
/etc/init.d/iptables save
Evet, şimdi çalışıp çalışmadığını kontrol etmek için ilk yaptığımız gibi bağlanmayı deneyelim.
Evet, artık bağlanmaya çalıştığımızda parola sormadan bekliyor bağlanamıyor. Yani komutumuz işe yaradı.
Peki bu yazdığımız kuralı silmek için ne yapacağız ? Çok basit, kural eklermiş gibi -D parametresi ile oluşturduğumuz kuralı sırasına göre silebiliriz
Önce kuralları listeleyelim,
Şimdi bizim kuralımız OUTPUT kısmında 1. sırada şimdi bu kuralı silelim bunun için şu
komutu kullanıyoruz
iptables -D OUTPUT 1
Bu işlemden sonra yeniden bağlanmyı denediğinizde bağlantı kurulacaktır.
Eğer belirli bir porttan gelen tüm bağlantıları engellemek istersek port belirtip kaynak adres belirmeyiz bu
sayede isteğimiz gerçekleşir. Bu işlem için şöyle yapıyoruz.
iptables -A INPUT -p tcp --sport 80 -j DROP
Komutun anlamı ise şudur 80 numaralı porttan (–sport 80) ve TCP protokolunü(-p tcp) gelen tüm bağlantı isteklerini(INPUT)
kabul etme(-j DROP)
Bu komuttan sonra kurallarımızı listeleyelim.
Gördüğünüz gibi kuralımız orada belirmiş.
Son olarak bir örnek verelim[1]
Iptables kullanarak sistemden sadece http ve DNS erişimini sağlayalım.
Öncelikle Policy yani kuralları tüm bağlantıları reddetmesini sağlayacak şekilde ayarlayalım.
iptables -P INPUT DROP iptables -P OUTPUT DROP
NOT: iptables’de -P parametresi ile ana kuralların genel olarak uygulayacağı davranışı belirleyeblirsiniz.
Şimdi Durumumuza bakalım.
Şimdi http ve dns’ye izin verecek şekilde ayarlayıp son durumu görelim.
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT -> Hedef portu 80 olan paketlerin çıkışına izin verir. iptables -A INPUT -p tcp --sport 80 -j ACCEPT -> Kaynak portu 80 olan paketlerin girişine izin verir. iptables -A OUTPUT -p udp --dport 53 -j ACCEPT -> Hedef portu 53 olan paketlerin çıkışına izin verir. iptables -A INPUT -p udp --sport 53 -j ACCEPT -> Kaynak portu 53 olan paketlerin girişine izin verir.
Evet, şimdi son durumu görelim.
Gördüğünz gibi istediğim kurallar hazır. Eğer kuralların hepsini aynı anda silmek isterseniz
iptables -F komutunu kullanabilirsiniz.
[1] = Bilişimin Karanlık Yüzü – Sayfa 335-336


























