[ Odevi.Org ]

  • 
  • 
  • 


3
Okunma
323
Cevap
1
Soru :

IpTables Nedir

IpTables yani Linux Firewall Nedir
Bölüm: Bilgisayar
Durum: Çözüldü
Tarih: 1 yıl önce
0 kişi takip ediyor

Cevap Ver

Verilmiş Cevaplar


En İyi Cevap
0



1 yıl önce # 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
http://www.wardom.org/iptables-nedir-genis-bilgi-t274001.html
0 kişi beğendi



Hareket Dökümü

Online Üyeler

Ayarlar
Bu bölüm hazırlanıyor..

Birşey Unutmadın mı ?

Bizi sonra tekrar bulmak için sitemizi aşağıdan beğenmelisin