Nedir.Org
Soru Tara Cevapla Giriş


Cevap Ara?

14.756.348 den fazla soru içinde arama yap.

Sorunu Tarat
Kitaptan resmini çek hemen cevaplansın.

IpTables Nedir

IpTables yani Linux Firewall Nedir

Bu soruya 1 cevap yazıldı. Cevap İçin Alta Doğru İlerleyin.
    Şikayet Et Bu soruya 0 yorum yazıldı.

    İşte Cevaplar


    Admin

    • 2015-11-24 05:41:47

    Cevap : 1. IPTables Nedir?
    İnternete bağlanan her sistem potansiyel saldırı tehlikelerine gebedir. Bir saldırgan direkt olarak veya kendini gizleyerek sisteme sızmak isteyebilir. Güncel Linux çekirdeklerinde kullanılan firewalllarin son gözdesi iptables, paket filtrelemesi yaparak erişim yetkisini belli bir seviyede tutar. Bilinmelidir ki sistem kurulmaya başladığı andan itibaren, yönetim politikasinin belirlenmeye başlaması ve firewall'in bu politika üzerine inşası şarttır. Netfilter (iptables) kurulmadan önce, kullanıcının gereksiz servisleri çalıştırmaması ve gerekli olanlarda daha seçici davranması gerekir. Daha seçici davranmasından kasıt bir servisin her zaman bir kaç tane daha alternatifi olmasıdır (sendmail yerine postfix gibi). Sendmail eski günlerdeki verdiği güveni artık verememektedir.
    Aslında iptables Linux'un 4. nesil paket filtreleme yönetim aracı. İlk olarak Alan Cox tarafından 1994'de BSD'den uyarlanan ipfw aracı vardı ve Linux 1.1 serisi çekirdekten bu yana paket filtreleme sistemine sahip durumda.
     
    2. IPTables Komutu
    IPtables komutunun temel kullanım betikleri ve prosedürü şu şekildedir ;
     
    #iptables <İŞLEM> <PROSEDÜR>   < DENETİM>
     
    IPTables kural seçenekleri aşağıdaki gibidir:
    !                             Kuralı tersine çevirir.
    -s [!]                             Kaynak adresini belirtir.127.0.0.1/255.0.0.0 gibi..
    -p [!]                             UDP, TCP, ICMP, ALL protokollerinden biri kullanılır. ALL hepsi içindir.
    --sport [!]               Kaynak portu belirtir.etc/services da listelenen port isimleri olabilir ya da numarasıyla yazılabilir. --source-port --sport ile aynı
    -d [!]                             Varış adresidir.
    --dport [!]               Varış portudur.
    --icmp-type               ICMP (Internet Control Message Protocol) tipini belirtir.
    -i [!]                             arabirim eth1, ppp0 gibi..
    -j                             Kural için belirtilen zincirde hedef belirtir. -j ACCEPT gibi..
    --to-source               Yeni kaynak ip'si yazar SNAT ile kullanılır.
    -o [!]                             Çıkan ve yönlendirilen zincirlerde kullanılır.(-o ppp1 gibi)
    -t                             Tabloyu belirtir.Nat tablosu için -t nat şeklinde yazılır.
    -m                             Kullanılacak modülü belirtir.-m limit gibi
    --state                             State (durum) modülü içindir. NEW, INVALID, RELATED ve ESTABLISHED seçenekleri içindir.
    --tcp-flags               TCP flag'laridir. ACK, FIN, RST, URG, SYN, PS veya ALL.
    --syn                             SYN paketlerini kontrol etmek içindir.
    --limit                             Saniye başina eşleşme hızını kontrol etmek için kullanılır.
    -V                             Iptables'ın versiyonunu öğrenmek için kullanılır.
    --mac-source[!] Belirtilen fiziksel adres için işleme alınır yada alınmaz.

    2.1. İşlem
    Bir diğer adıyla zincir. IPTables için en temel işlemler aşağıdaki gibidir:

    N - Yeni İşlem Ekleneceğini belirtir ( New ) 
    X - Silme işlemini belirtir. ( Eks ) 
    L - Listeleme İşlemini belirtir ( List ) 
    F - Tüm Kuralların silineceğini belirtir ( Flush ) 
    Z - Sayaçların sıfırlanacağını belirtir ( Zero ) 
    A - Yeni Kural eklentileri için kullanılır ( Add ) 
    I - Bir aralığa kural eklemek için kullanılır ( Insert ) 
    D - Belirtilen kuralı silmek için kullanılır ( Delete ) 
    R - Belirtilen kuralı değiştirmek için kullanılır ( Replace )

    2.2. Prosedür
    İşlemin yapılacağı prosedürü belirtir. Burası için üç temel Prosedür vardır:
     
    "INPUT - OUTPUT - FORWARD"
     
    Sistemimiz üzerinden geçecek tüm trafikler ya giriş, ya çıkış yada yönlendirmedir. Dışarıdan sistemimize gelecek paketler için "INPUT", sistemimizden dışarıya çıkacak paketler için "OUTPUT", başka bir sistemden, diğer bir sisteme gidecek ve bizim üzerimizden geçecek paketler için "FORWARD" prosedürlerini kullanırız.

    2.3. Protokol
    Denetimi hangi protokol üzerinde yapacağımızı, "Tcp, Udp" bu betikte belirtiriz.
    Örneğin "-p tcp"

    2.4. Hedef
    Yapacağımız denetim işleminin hedefini belirtir. Örneğin "-d 212.174.199.71"

    2.5. Kaynak
    Yapacağımız denetimin kaynağını belirtir.
    Örneğin "-s 127.0.0.1"
    Burada 127.0.0.1 IP adresini kaynak olarak belirtiyoruz.

    2.6. Denetim
    Yapacağımız denetimin türünü belirtir.
    Örneğin, yasaklamak istiyor isek "DROP", izin vermek istiyor isek "ACCEPT", kabul etmeyip red cevabını göndermek istiyor isek "REJECT", işlemin kaydını tutmak istiyor isek "LOG"seçenklerini kullanırız.
     
    3. Uygulama
     
    Sistemimizde HTTP, FTP, Pop3, Smtp servisleri çalışıyor olsun. Sistemimiz dışarıdan gelecek Ping'lere yanıt vermesin ve belirtilen servisler dışındaki hiçbir porta talep gönderilemesin.
     
     
    3.1. Prosedürleri sil
    #iptables –F
     
    Öncelikle daha önce girdiğimiz tüm betikleri temizliyoruz.
     
    root@localhost ~]# 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         
     
    3.2. Tüm girişleri yasakla
    #iptables -A INPUT -p tcp -j DROP
     
    Daha sonra IPtables -A INPUT diyerek dışıradın gelen tapeler hakkında bir kayıt gireceğimiz belirterek protokolümüzü "-p tcp" diyerek seçiyoruz. Eğer kaynak ve hedef belirtmezsek tüm kaynak ve tüm hedefleri kapsar yaptığımız işlem. Ozaman kaynak belirtmiyoruz ve "-j DROP" diyerek denetimlerimizi yasaklıyoruz. Böylelikle sistemimize dışarıdan hiç kimse ulaşamaz hale geliyor.
     
    [root@localhost ~]# iptables -A INPUT -p tcp -j DROP
    [root@localhost ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    DROP       tcp  --  anywhere             anywhere           
     
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
     
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
     
    NOT: Browserınızla bir web sayfasına bağlanmaya çalışarak kuralın çalışmasını test edin. 
     
    3.3. Ping'leri yasakla
    #iptables -A INPUT -p ICMP -j DROP
     
    Şimdi Dışarıdan sistemimize Ping atılmasını engelleyelim. Bunun için yine "IPtables -A INPUT" diyoruz ve yeni bir işlem gireceğimizi belirtiyoruz. "-p ICMP" diyoruz ve üzerinde işlem yapacağımız protokolün "ICMP" olduğunu gösteriyoruz. Akabinde "-j DROP" diyoruz ve tüm kaynak ve hedefleri içine kapsayacak bir kural ile bu prosedüre engel kuyoyoruz.
     
    [root@localhost ~]# iptables -A INPUT -p ICMP -j DROP
    [root@localhost ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    DROP       tcp  --  anywhere             anywhere           
    DROP       icmp --  anywhere             anywhere           
     
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
     
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        

    NOT: Bilgisayarınızın IP adresine ping atmaya çalışarak kuralın çalışmasını test edin.
     
    3.4. 80 nolu portu (HTTP portunu) aç
    #iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT
     
    IPtables -A diyoruz, ve bir denetim gireceğimiz gösteriyoruz. "-p tcp" diyoruz ve işlemin hangi protokol üzerinde uygulanacağını belirtiyoruz. "-s 0/0" diyoruz ve kaynağı tüm network olarak gösteriyoruz. Burada hiçbirşey belirtmeyebilirdikte. "-s" kullanımına örnek olması açısından gösteriyoruz. "-s 0/0" diyerek tüm IP aralıklarını içine kapsayacağını gösteriyoruz. "--dport 80" diyerek sistemimizdeki 80 nolu portu belirtiyoruz ve "-j ACCEPT" diyerek bu porta erişimleri olanaklı kılıyoruz.
     
    [root@localhost ~]# iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT
    [root@localhost ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    DROP       tcp  --  anywhere             anywhere           
    DROP       icmp --  anywhere             anywhere           
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
     
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
     
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
     
    NOT: Browserınızla bir web sayfasına bağlanmaya çalışarak kuralın çalışmasını test edin. 
     
    3.5. 21 Nolu Portu aç
    #iptables -A INPUT -p tcp -s 0/0 --dport 21 -j ACCEPT
     
    [root@localhost ~]# iptables -A INPUT -p tcp -s 0/0 --dport 21 -j ACCEPT
    [root@localhost ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    DROP       tcp  --  anywhere             anywhere           
    DROP       icmp --  anywhere             anywhere           
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
     
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
     
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
     
    3.6. 25 Nolu portu aç
    #iptables -A INPUT -p tcp -s 0/0 --dport 25 -j ACCEPT
     
    [root@localhost ~]# iptables -A INPUT -p tcp -s 0/0 --dport 25 -j ACCEPT
    [root@localhost ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    DROP       tcp  --  anywhere             anywhere           
    DROP       icmp --  anywhere             anywhere           
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
     
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
     
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
     
    3.7. 110 Nolu portu aç
    #iptables -A INPUT -p tcp -s 0/0 --dport 110 -j ACCEPT
     
    [root@localhost ~]# iptables -D INPUT -p tcp -s 0/0 --dport 110 -j ACCEPT
    iptables: Bad rule (does a matching rule exist in that chain?)
    [root@localhost ~]# iptables -A INPUT -p tcp -s 0/0 --dport 110 -j ACCEPT
    [root@localhost ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    DROP       tcp  --  anywhere             anywhere           
    DROP       icmp --  anywhere             anywhere           
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3
     
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
     
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
     
    4. Referanslar
    www.fatih.edu.tr/~gulshatk/linux_II/IPTABLES%20SERVISI.pdf
    https://www.wardom.org/iptables-nedir-genis-bilgi-t274001.html

    Diğer Cevaplara Gözat
    Cevap Yaz Arama Yap

    Cevap Yaz







    Başarılı

    İşleminiz başarıyla kaydedilmiştir.