IP TABLES Linux, Unix yada BSD tabanlı sunucular üzerinden geçen ağ trafiğinin denetimini sağlayan Açık Kaynak ( Open Source ) bir uygulamadır.

Eskiden Linux üzeride çalışan en popüler güvenlik duvarı çözümü ipChain diye adlandırılan bir programdı.  Bu programı bazı eksikleri olduğu görüldü ve Netfilter Organizasyou tarafından ipTables uygulaması geliştirildi. ipTables programının ipChain den temel farkı:

iptables Linux çekirdeğini daha iyi kullanması ile performans ve kararlılık sağlanması
iptables Gelişmiş paket denetimi
iptables MAC adresine ve TCP başlık bilgisine göre filtreleme.
iptables Sistem loglama ve özelleştirme
iptables Daha iyi ağ adresi çevirimi  ( Network Address Translation  - NAT )
iptables Saydam Vekil Sunuculara destek. ( Transparent Proxy Servers )

     

    ipTables doğru kullanıldığıda çok güçlü bir güvenlik duvarı çözümü olabilir.

    ipTables konusunda daha fazla ilerlede bazı kavramları öğrenmemiz gerekiyor.

     


    PREROUTING :
    Her paketin uğradığı ilk kural alandır.Paket bu alanda filtre işlemine girmez.

    Routing :
    Çekirdeğin paket bilgisine bakarak yönlendirme yaptiğı alandır.Yerel işlemleri (Local process) 'i ilgilendiren bir paketse INPUT alanına gönderilir.

    INPUT :
    Yerel İşlemleri (Local process) 'i ilgilendiren paketler burada kontrol edilir.Filitre işleminden geçirilebilir.

    FORWARD :
    İletilen paketler bu alandan geçer.Paket filitre işlemine sokulabilir.

    OUTPUT :
    Local process'den gönderilen paketlerin uğradığı ilk alandır.


    POSTROUTING :Giden paketlerin son noktasidir.Filtre alanı değildir.Kural alanıdır.

    AĞ ADRESİ ÇEVİRİMİ : ( Network Address Translation  - NAT )
    Ağdan gelen paketler üzerindeki kaynak sunucu bilgisinin değiştirilmesi işidir. ( Detaylı bilgi için  http://www.thgtr.com/network/20060120/ adresine bakabilirsiniz.)

     

    Yan tarafta bulunan resimde ( http://acacha.dyndns.org/mediawiki/index.php/Netfilter/iptables adresinden alınmıştır. ) iptables programının çalışma prensibi anlatılmıştır.

     

    iptables çalışma şekli

    ipTables kuralları bir sincirin halkaları gibi peşpeşe dizili kurallardır. Herhangi bir zincire gelen paket kurallardan birine uyana kadar zincirdeki kurallar üzerinde çalıştırılır. Herhangi bir kurala uymayan paket çalıştırılmaz.

    iptables içerisinde bazı ön tanımlı zincirler bulunmaktadır. INPUT,OUTPUT, FORWARD ,PREROUTING ve POSTROUTING ön tanımlı zincirlerdir ,kullanıcı isterse kendi tanımladığı bir zinciride ekleyebilir.

    ipTables kullanım şekli:

    iptables [-t table] -[AD] chain rule-specification [options]
    iptables [-t table] -I chain [rulenum] rule-specification [options]
    iptables [-t table] -R chain rulenum rule-specification [options]
    iptables [-t table] -D chain rulenum [options]
    iptables [-t table] -[LFZ] [chain] [options]
    iptables [-t table] -N chain
    iptables [-t table] -X [chain]
    iptables [-t table] -P chain target [options]
    iptables [-t table] -E old-chain-name new-chain-name

    Daha detaylı bilgi için Linux işletim sistemi konsol ekranında  man iptables komutunu çalıştırabilirsiniz.

    IPTABLES HEDEFLERİ
    ACCEPT Paketlerin geçisine izin verilir.
    DROP Paketlerin geçişine izin verilmez.
    REJECT Paketlerin erişimi reddedilir ve gönderen bilgilendirilir.
    RETURN Zincirin sonuna gönderilir.
    QUEUE Paketler kullanıcı alanına gönderilir.

    IPTABLES PARAMETRELERİ
    -A ZİNCİR Zincire kural ekler.
    -E ZİNCİR Zinciri yeniden adlandırır.
    -D ZİNCİR Zincirden bir kural siler.
    -D ZİNCİR Zincirden belirtilen numaradaki kurali siler.
    -L ZİNCİR Belirtilen zincirdeki kurallari gösterir.
    -E ZİNCİR Zinciri yeniden adlandirir.
    -l ZİNCİR Zincirde belirtilen numaralı alana kuralı ekler.
    -R ZİNCİR Zincirde kuralın yerine başkasını koyar.
    -R ZİNCİR Zincirde belirtilen numaralı alana bir başkasını koyar.
    -N ZİNCİR Yeni bir zincir oluşturur.
    -X ZİNCİR Kullanıcının eklediği bir zinciri siler.
    -F ZİNCİR Zincirdeki kuralların tümünü siler.
    -P ZİNCİR Zincire genel politika ekler.

     

    IPTABLES PROTOKOLLERİ
    UDP
    TCP
    ICMP
    ALL

    ÖRNEK UYGULAMA:

    iptables -N BENIM_ZINCIRIM
    BENIM_ZINCIRIM isimli bir zincir tanımı yaptım

    iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    eth1 den gelen tüm paketleri eth0 a yönlendir

    iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
    eth0 da varolan veya eth0 dan gelen tüm paketleri eth1 e gönder

    iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    Bağlanılan veya ilişkili bağlantılara izin ver

    iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 80 --syn -j ACCEPT
    80 nolu portu herkese aç. ( Genelde web siteleri için kullanılır. Varsayılan HTTP protokolü portudur)

    iptables -A INPUT -p tcp -s 0/0 -d 192.168.0.0/24 --destination-port 25 --syn -j ACCEPT
    192.168.0.0/24 ağındaki bilgisayarlardan 25 nolu porta bağlanmaya izin ver. ( Varsayılan SMTP portudur.  )

     

     

     

Tasarı Web Sitesini Zorunlu Kılmakla Neyi Amaçlıyor? Hiç Web Sitesi Yaptırmayan ya da Yasaya Uygun Web Sitesi Yaptırmayan Sermaye Şirketleri Ne Olacak?Tasarı Web Sitesini Zorunlu Kılmakla Neyi Amaçlıyor?[Detay]
Hangi Şirketler Web Sitesi Yapmak Zorunda Kalacaklar? 1502 nolu madde, Anonim Şirketler, Limited Şirketler, Sermayesi Paylara Bölünmüş Komandit ŞirketlerHangi Şirketler Web Sitesi Yapmak Zorunda Kalacaklar?[Detay]
1502 Madde Sayılı Web Sitesi Yaptırma Zorunluluğu Hakkında Kanun ; 1502 Madde Sayılı Web Sitesi Yaptırma Zorunluluğu Hakkında Kanun ; [Detay]
5651 Sayılı Kanun5651 Sayılı Kanun[Detay]
Linux Güvenliği ve ipTablesLinux Güvenliği ve ipTables[Detay]
Linux Güvenliği ve ipTablesLinux Güvenliği ve ipTables[Detay]