iptables -1- iptables’a giriş
Firewall Nedir ?
Firewall ( Ateş duvarı ), Internet ve local ağ trafiğinin , kontrol ve denetlemesini yapan yazılımlardır ( hardware firewall’lar olsada içlerinde bir yazılım olmak zorunda olduğunu unutmayın ) . Firewall sayesinde Internet ve local ağ üzerinden belirli portlar, yada belirli ip adresi veya ip gruplarının erişimini engelleyebiliriz. Sanırım iptables ile ilgili bir yazı okumaya karar veren kişi firewall nedemek konusunda hali hazırda fikir sahibidir o yüzden fazla uzatmayacağım
Packet filtering firewall :
Bildiğimiz en basit haliyle firewall’dir, istek yapan kişinin ip adresine, port adresine veya gidecek olduğu hedefin port ip adresine yada komple bir ip blok’u için kurallar tanımlamamızı sağlarlar.
örneğin :
1.1.1.1 ip adresinden 80 nolu TCP portu üzerinden erişimi engellemek bu tür bir firewall uygulamasıdır. en yeteneksiz ve basit firewall’dir. bunun yanında en az cpu ve ram ihtiyacı duyan firewall yapısıdırda. diğer firewall yapılarıyla birlikte kulanıldığında kesin olarak bildiğimiz erişimleri bu şekilde denetleyerek engellemek firewall üzerinde cpu ve ram avantajı yaratacaktır. ( etkin bir saldırı veya yanlış yapılandırmada en güçlü firewall cihaz yada yazılımlarının yetersiz kalacağını göz ardı etmeyiniz )
Aplication level firewall : Uygulama Seviyesi firewall
Bu firewall lar Sadece port veya ip yani temel ağ bilgilerine bakmazlar. http://alper.web.tr adresine ulaşmak istediğinizde hedef http://alper.web.tr port 80 ulaşım serbest demek yerine, web sayfasını ziyaret etmek için browserinizin koyduğu içeriği analiz ederek http bilgisisnin olup olmadığınıda kontrol eder.
Statefull firewall :
Statefull firewall yukarıdaki Packet filtering firewall ile aynı mantıkla çalışır, farkı örneğin TCP bağlantıdaki 3 way handshaking dediğimiz olayı kontrol edebilirsiniz. 3 way handshaking de a makinasından b makinası syn paketi daha sonra b den a‘ ya syn/ack ve yeninden b ye ack paketi gelerek bağlantı kurulmuş olur. Statefull firewall in çalışma şekli genel olarak , istenilen şartlar ( 3way handshaking gibi ) yerine getirildiğinde sadece o bağlantıya özel bir kural eklenerek iletişim sağlanır. herhangi bir saldırı anında saldırganın devamlı olarak syn paketi göndererek sisteminize zarar vermesi bu şekilde önlenmiş olur. Söz konusu eklenen kurallar ram’de yer işgal etsede Aplication lvl firewall lar kadar sistem kaynağı tüketmezler.
Firewall’lar tüm bu özelliklerinin yanında hala bir ip paketinin gerçekten kötü amaçlı olup olmadığını analiz edemezler. Bunları sağlamak için IPS/IDS denilen yazılımlar kullanılırki şu an için bunlara çok fazla giremeyeceğim. günümüzde UTM denilen , ( Unified Threat Management ) firewall,antivirüs, antispam, ids/ips, vpn,router,gibi özellikleri içerisinde barındıran yazılımsal ve donanımsal firewallar çıkmıştır. ilk çıktıkları tarihlerde çok başarılı olamasalarda günümüzde oldukça etkin şekilde kullanılıyorlar. Statefull firewall Checkpoint firması tarafından bulunmuş ve standart halini almıştır.
Netfilter nedir ?
Linux kernelinde ( 2.3 ve sonrasında ) , Standart firewalling işlemlerini ( filtering nat mangle ) yapan kısımdır.
iptables nedir ?
Linux Netfilter için kullanıcı arayüzüdür en basit anlatımıyla.
iptables gerçektende bize standart firewall ihtiyaçlarını fazlasıyla sağlamaktadır. iptables yukarda saydığımız tüm özellikleri Extensions ( genişleme paketleri )sayesinde sağlayabilir. Linux sistem içerisinde bulunan diğer proğramlarla etkileşimli olarak çalışması için yapılandırılabilir. özellikle iptroute2 paketi ile beraber kullanıldığında routing ve QOS özellikleriyle birlikte paralı bir çok firewall ürününün özelliklerinden fazlasını sağlar.Snort gibi yazılımlarla beraber kullanarak IPS ve IDS gibi özellikleri elde etmeyi mümkün kılar. Günümüzde hemen hemen tüm linux sürümlerinde iptables ve iproute2 paketleri hazır gelmektedir. ( en azından paket yöneticinizle ekleyebilirsiniz ), Bu ilk yazımda iptables oldukça geniş bir konu olduğu için sadece temel bir kaç şeye değineceğim.
iptables ile kuralları görüntülemek :
bash-3.2# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
bash-3.2#
açıklaması :
iptables -L komutu ile daha önceden girilmiş iptables kurallarını görüntüleyebilirsiniz. eğer natd kuralları tanımlı ise görmek için iptables -t nat -L kullanılır.
Chains nedir ?
Chains yani zincirler iptables kuralları arasında grupları temsil eder, örneğin default olarak iptables ile beraber gelen 3 tane chain ( grup ) vardır. INPUT bilgisayara gelen ler için tanımladığımız kuralları , FORWARD bilgisayarımız üzerinden başka bir kaynağa yönlendiren kuralları. OUTPUT ise bilgisayarımızdan çıkıp başka yerlere giden bağlantılar için koyduğumuz kuralları temsil eder. ( nat ve raw a daha sonra değineceğim )
Yeni bir Chain nasıl oluşturulur?
kendi firewall kurallarımızın içerisinde olduğu yeni bir chain ( grup) nasıl oluştururuz ?
bash-3.2# iptables -N yenibirchain
bash-3.2# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain yenibirchain (0 references)
target prot opt source destination
bash-3.2#
‘iptables -N ‘ diyerek yeni bir chain oluşturabilriz oluşturduğumuz chainleri silmek istediğimizde -X yada –delete kullanabiliriz.
Not : Aynı isimde ikinci bir chain oluşturulamaz !
Oluşturmuş oldğumuz bir chain’i silmek :
bash-3.2# iptables -X yenibirchain
bash-3.2# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
bash-3.2#
Chain’lerin oluşturulması sanırım anlaşıldı, ( iptables kullanmış olduk
) bu gruplar ilerde düzenleyecek olduğunuz kompleks firewall yapılarında yönetimi önemli ölçüde kolaylaştırmaktadır. söz konusu örneklerde bu daha iyi anlaşılacaktır. Burada iptables kullanımını bir yazı ile anlatıp geçmeyi düşünüyordum ama internet okadar çok iptables dökümanı ile doluki ne gönlüm razı oluyor nede bir tane daha yazmaya gerek var. Diğer yazılarımı sabırlı olarak okuyacaklara iptables’i etkili şekilde kullanmaları için yardımcı olabileceğimi sanıyorum. iptables hakkında çok geniş bilgiye ihtiyaç duymayıp basitçe kullanmak isteyen arkadaşlara Enver Altın ( Skyblue ) tarafından yazılmış dökümanı tavsiye ederim.