İPUCU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

Seçenekler

İptables kullanımı

By-CyL1nD3r - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2008
Nereden:
BuRs4
Mesajlar:
1.490
Konular:
1115
Teşekkür (Etti):
0
Teşekkür (Aldı):
547
Ticaret:
(0) %
19-09-2008 20:08
#1
Thumbs down
İptables kullanımı
Yararlı olması temennisiyle..İptables Kullanımı
iptables ın çok detaylı bir manuel sayfası vardır (man iptables) ve eger özellikler hakkında
daha fazla detay istiyorsanız bu sayfaya bakabilirsiniz. ipchains'i bilenler sadece 'iptables ve
ipchains Arasındaki Farklar' a bakmak isteyebilirler; ikisi çok benzerdir.
iptables ile yapabileceginiz birçok sey vardır: bunların basında zincirleri yönetmek gelir. lk
olarak silemeyeceginiz üç gömülü zincir (built-in chains) input, output ve forward ile ise
baslayacaksınız.
1. Yeni bir zincir yarat (-N).
2. Bos bir zinciri sil (-X).
3. Gömülü bir zincir için idareyi (policy) degistir (-P).
4. Bir zincirdeki kuralları listele (-L).
5. Bir zincirdeki kuralları temizle (-F).
6. Bir zincirdeki bütün kuralların paket ve byte sayaçlarını sıfırla (-Z).
Bir zincirdeki kuralları yönetmek için birçok yol vardır.
1. Bir zincire yeni bir kural ekle (-A).
2. Bir zincirin herhangi bir pozisyonuna yeni bir kural ilave et (-I)
3. Bir zincirin herhangi bir pozisyonundaki bir kuralı degistir (-R)
4. Bir zincirin herhangi bir pozisyonundaki bir kuralı sil (-D).
5. Bir zincirdeki eslesen ilk kuralı sil (-D).
Bilgisayarınız Basladıgında Ne Göreceksiniz
Su anda (Linux 2.3.15) iptables 'iptables.o' isimli bir modüldür. iptables komutlarını
kullanmadan önce bu modülü çekirdeginize ilave etmeniz gerekecek. Gelecekte, çekirdekte
gömülü olabilecektir.
Hiçbir iptables komutu kosmadan önce (dikkatli olun: bazı dagıtımlar iptables ı baslangıç
dosyalarında kostururlar), gömülü zincirlerin (INPUT, OUTPUT, FORWARD) hiçbirinde
hiçbir kural bulunmayacak, INPUT ve OUTPUT 'ACCEPT' idaresine, FORWARD zinciri ise
'DROP' idaresine sahip olacaktır (iptables modülüne 'forward=1' özelligi sagla***** bunu
iptal edebilirsiniz)
Basit Bir Kural Üzerinde slemler
Bu paket filtrelemenin temelidir; kuralları yönetmek. Genel olarak, ekle ('-A') ve sil ('-D')
komultarını kullanacaksınız. Digerleri (ilave etmek için -I ve degistirmek için -R) bu
kavramın basit uzantılarıdır.
Her kural, paketlerin uyması gereken kosullar kümesini ve uydugu zaman ne yapması
gerektigini ('hedef': target) belirtir. Örnegin: 127.0.0.1 IP adresinden gelen bütün ICMP
paketlerini düsürmek (drop etmek) isteyebilirsiniz. Bu durumda kosullarımız protokolun
ICMP ve kaynak adresin 127.0.0.1 olmasıdır. Hedefimiz ise 'DROP' dur.
127.0.0.1 gerçek bir ag baglantınız olmasa bile sahip olacagınız 'loopback' arayüzüdür. Böyle
paketler üretmek için 'ping' programı kullanabilirsiniz (basitçe bütün birlikte çalısan
bilgisayarların zorunlu olarak bir ICMP type 0 (echo reply=yankı cevabı) ile cevap verecegi
ICMP type8 (echo request=yankı istegi) paketi yollar). 'ping' baglantıyı test etmek için
oldukça yararlı bir progr*****tır.
#ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms
---127.0.0.1 ping statistics---
1 packets transmitted ,1 packets received ,0% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms
#iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
#ping -c 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
---127.0.0.1 ping statistics---
1 packets transmitted , 0 packets received ,100% packet loss
Burada ilk ping in basarılı oldugunu görebilirsiniz ('-c 1' ping e sadece bir paket göndermesini
söyler).
Daha sonra, 127.0.0.1 ('-s 127.0.0.1') den ICMP ('-p icmp') ile gelen bütün paketler için
DROP a atlamamız ('-j DROP') gerektigini belirten bir kuralı 'INPUT' zincirine ekledik ('-A').
Sonra, ikinci ping i kullanarak kuralımızı test ettik. Program hiç gelmeyecek bir cevabı
beklemeyi bırakana kadar bir ara olacaktır.
Kuralı iki yoldan biriyle silebileriz. lki, bunun input zincirindeki tek kural oldugunu
bildigimizden INPUT zinicirdeki 1 numaralı kuralı silmek için asagıdaki gibi bir
numaralandırılmıs silme kullanabiliriz:
#iptables -D INPUT 1
#
kinci yol, -A komutunu tekrarlamak ama -A yı -D ile degistirerek. Bu yol, karmasık zincir
kurallarınız oldugunda ve temizlemek istediginiz kural 37 yi hesaplamak için saymak zorunda
kalmak istemediginizde yararlıdır. Bu durumda asagıdaki komutu kullabiliriz:
#iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
#
-D in sözdizimi -A (veya '-I' veya '-R') komutu ile tamamen aynı özelliklere sahiptir. Eger
aynı zincirde çoklu tanımlı kurallar varsa sadece ilki silinir.
Filtreleme Belirtmeleri
Protokolu belirtmek için '-p' ve kaynak adresi belirtmek için '-s' kullanımını daha önceden
görmüstük ama paket karakteristiklerini belirtmek için daha baska özellikler vardır. Asagıda
bu özelliklerin ayrıntılı bir açıklamasını bulacaksınız.
Kaynak (source) ve Hedef (target) IP Adreslerini Belirtme
Kaynak ('-s', '--source' veya '--src') ve hedef ('-d', '--destination' veya '--dst') IP adreslerini
belirtmenin dört yolu vardır. En ortak yol 'localhost' veya 'w w w .linuxhq. c o m' gibi bütün isim
kullanımıdır. kinici yol '127.0.0.1' gibi IP adresleri belirtmedir.
Üçüncü ve dördüncü yollar '199 .95 .207 .0/24' veya '199.95.207.0/255.255.255 .0' gibi IP
adresleri grubunu belirtmeyi mümkün kılar. Her ikisi de 199.95.207.0 dan 199.95.207.255 e
herhangi bir IP adresi belirtirler; '/' den sonraki dijitler IP adresin anlamlı bölümünü söylerler
(yani IP adresin ag gösteren dijitlerinin sayısını). '/32' veya '/255.255.255.255' default'tur
(bütün IP adreslerini eslestirme). Hiçbir IP adresi belirtmemek için '/0' asagıdaki gibi
kullanılabilir:
#iptables -A INPUT -s 0/0 -j DROP
#
Etkisi '-s' özelligini hiç belirtmemekle aynı oldugu için bu çok az kullanılır.
Ters Çevirme
'-s' ve '-d' bayrakları da dahil olmak üzere birçok bayrak verilen adrese esit OLMAYAN
adresleri eslestirmek için '!' ('not' telaffuz edilir) ile baslayan argümanlara sahiptirler. Örnegin,
'-s ! localhost' localhost tan gelmeyen her paketi eslestirir.
Protokol Belirtme
Protokol '-p' bayragı ile belirtilebilir. Protokol bir rakam (eger IP için sayısal protokol
degerlerini biliyorsanız) veya 'TCP', 'UDP' veya 'ICMP' gibi özel durumlar için bir isim
olabilir. Harflerin büyük veya küçük olması önemli degildir, yani 'tcp', 'TCP' ile aynıdır.
Protokol adı '-p ! TCP' gibi ters çevirmek için '!' önekini alabilir.
Arayüz Belirtme
'-i' (veya '--in-interface') ve '-o' (veya '--out-interface') özellikleri eslesecek bir arayüz adını
belirtir. Arayüz paketin ('-i') üzerinden geldigi ve ('-o') üzerinden çıktıgı bir fiziksel
donanımdır. 'up' olan (su an çalısan) arayüzleri listelemek için ifconfig komutunu
kullabilirsiniz.
INPUT zincirinden geçen paketler bir output arayüzüne sahip degillerdir, yani bu zincirde '-o'
kullanan herhangi bir kural hiçbir zaman eslesmeyecektir. Benzer olarak, OUTPUT
zincirinden geçen paketler bir input arayüzüne sahip degillerdir, yani bu zincirde '-i' kullanan
herhangi bir kural eslesmeyecektir.
Sadece FORWARD zincirinden geçen paketler hem input hem de output arayüzüne
sahiptirler.
Su anda var olmayan bir arayüzü belirtmek tamamen serbesttir; arayüz çalısıncaya kadar kural
hiçbir sey ile eslesmeyecektir. Bu PPP baglantıları (genellikle arayüz ppp0) ve benzerleri için
oldukça yararlıdır.
Özel olarak, '+' ile biten bir arayüz bu karakter diziyle baslayan bütün arayüzler (var olsalar da
olmasalar da) ile eslesecektir. Örnegin, bütün PPP arayüzleri ile eslesen bir kural belirtmek
için -i ppp+ özelligi kullanılmalıdır.
Belirtilen arayüz(ler) ile eslesmeyen bir paket ile eslesmek için arayüz adı '!' ile baslayabilir.
Segmentleri Belirtme
Bazen paketler bir defada iletilmek için çok genistir. Böyle bir durumda, paket segmentlere
ayrılır ve çoklu paket olarak yollanır. Diger taraf, bütün paketi yeniden kurmak için bu
segmentleri birlestirir.
Segmentler ile problem, internal paketin bir parçası olan IP baslıgından sonra ortaya çıkar:
protokol baslıkları (örnegin TCP, UDP ve ICMP uzantıları tarafından olusturulanlar) sadece
ilk segmentte bulundugundan protocol baslıkları için paketin içine bakmak mümkün degildir.
Eger baglantı izleme veya NAT yapıyorsanız, o zaman segmentler paket filtreleme koduna
erismeden önce tekrar birlestirilirler, yani segmentler hakkında endiselenmenize gerek yoktur.
Aksi takdirde, aynı islevi gören 'ip_defrag.o' modülünü ilave edebilirsiniz (not: buna ancak iki
ag arasında tek baglantı iseniz izin verilir).
Aksi takdirde, segmentlere filtreleme kuralları tarafından nasıl davranıldıgını anlamanız
önemlidir. Bilmedigimiz bir bigiyi soran herhangi bir filtreleme kuralı eslesmeyecektir. lk
segmente diger paketlere davranıldıgı gibi davranılır, ikinci ve sonraki segmentlere öyle degil.
Bu sebeple -p TCP --sport w w w ('w w w' nin bir kaynak portunu belirtme) kuralı bir segment
(ilk segment dısındaki) ile hiç eslesmeyecektir. Ters kuralı -p TCP --sport ! w w w de öyle.
Bunula birlikte, '-f' ( veya '--fragment') bayragını kullanarak ikinci ve sonraki segmentleri
belirten bir kuralı belirtebilirsiniz. kinci ve sonraki segmentlere uygulanmayan bir kuralı '-f !'
ile baslatarak belirtmek serbesttir.
Genellikle, filtreleme ilk segmenti etkileyeceginden ve bu sebeple karsı tarafta segmentlerin
birlesmesini önleyeceginden ikinci ve sonraki segmentlerin geçisine izin vermek güvenli
görülür, oysa sadece segmentler yolla***** makinelerin çökmesine imkan veren bug'ların
oldugu bilinmektedir. Siz arastırınız.
Ag-basları için not: 'malformed' paketler (firewall kodunun, portları ya da ICMP kodu ve
tipini okuyabilmesi için çok kısa olan TCP, UDP ve ICMP paketleri) böyle incelemeler
yapıldıgında drop edilir. Pozisyon 8 de baslayan TCP segmentleri de dahil.
Örnek olarak, asagıdaki kural 192.168.1.1. e giden bütün segmentleri drop edecektir:
#iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
#
iptables'a Uzantılar: Yeni Testler
iptables uzatılabilir, yani yeni özellikler saglamak için hem çekirdek hem de iptables araçları
uzatılabilirler.
Bu uzantıların bazıları standarttır, digerleri daha egzotiktir. Uzantılar baska insanlar
tarafından yapılıp kullanıcılara ayrı olarak dagıtılabilir.
Çekirdek uzantıları normalde /lib/modules/2.3.15/net gibi çekirdek modülü altdizinlerinde
bulunurlar. Su anda (Linux 2.3.15) istek üzerine yüklenme özellikleri yoktur. Yani istediginizi
elinizle ilave etmeniz gerekecektir. Gelecekte istek üzerine yüklenebilir olabilirler.
Bazı dagıtımlar iptables program uzantılarını /lib/iptables veya /usr/lib/iptables a yerlestirse
de genelde /usr/local/lib/iptables/ de bulunan kütüphaneleri paylasırlar.
Uzantıların iki çesidi vardır: yeni hedefler ve yeni testler; asagıda yeni hedeflerden söz
edecegiz. Bazı protokoller otomatik olarak yeni testleri saglar: su anda bunlar asagıda
gösterildigi gibi TCP, UDP, ICMP dir
Bunlar için, uzantıları yükleyecek '-p' özelliginden sonra komut satırında yeni testleri
belirtebilirsiniz. Açık (explicit) yeni testler için, sonrasında uzatılmıs özelliklerin geçerli
olacagı, uzantı yüklemeye yarayan '-m' özelligi kullanılabilir.
Bir uzantı hakkında yardım almak için, onu yüklemek için kulanılan parametre olan '-p' veya
'-m' nin yaninda '-h' veya '--help' i kullanın.
TCP Uzantıları
Eger '--protocol tcp' belirtilmisse ve baska eslesme belirtilmemisse TCP uzantıları otomatik
olarak yüklenir. Asagıdaki özellikleri (hiçbiri segmentlerle eslesmemistir) saglar.
--tcp-flags
'!' ile kullanılabilir. Daha sonra bayrakların iki karakter dizisi belirtilen TCP bayraklarını
filtreleyi mümkün kılar. Bayrakların ilk dizisi maskedir: incelemek istediginiz bayrakları
listeler. Bayrakların ikinci dizisi hangisinin(lerinin) 'set' olacagını söyler. ncelenen diger
bayraklar 'unset' olmalıdır. Örnegin:
#iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
Bu komut bütün bayrakların incelenecegini ('ALL' 'SYN,ACK,FIN,RST,URG,PSH' ile
esanlamlıdır), ama sadece SYN ve ACK bayraklarının 'set' gösterir. Ayrıca bayrak yok (no
flags) anl***** gelen 'NONE' argümanı da bulunmaktadır.
--syn
'!' ile kullanılablir. '--tcp-flags SYN, RST,ACK SYN' nin kısayoludur.
--source-port
'!' ile kullanılabilir. Daha sonra tek bir TCP potu yada bir TCP port aralıgı yazılabilir. Bu
portlar /etc/services da listelenen port isimleri olabilir ya da direk numaralarıyla yazılabilir.
Port aralıgı verilirken arada '-' kullanılmalıdır (ör: 21-80). Eger '-' nin herhangi bir tarafı bossa
o porttan öncesi (o port dahil) (ör: -80) ya da o porttan sonrası (o port dahil) (ör: 80-)
anl***** gelir.
--sport
'--source-port' ile aynı.
--destination-port
ve
--dport
yukarıdaki durumla aynı, ancak kaynak yerine hedef portu belirtiyorlar.
--tcp-option
'!' ile kullanılabilir, ardından paketi TCP option'ına göre eslestirmek üzere bir sayı gelmelidir.
Eger TCP baslıgı tam olmayan bir paket bu sekilde incelenmek istenirse otomatik olarak
DROP edilir.
TCP Bayraklarının Açıklaması
Bazen TCP baglantılarının bir yönde kurulması fakat diger yönde kurulamaması istenir.
Örnegin dısardaki bir W W W sunucusuna baglanmak isteyebilir ancak bu sunucudan gelecek
baglantıları reddetmek isteyebilirsiniz.
Çözüm sadece baglantı kurmak isteyen paketlerin reddedilmesidir. Bu paketlere SYN
paketleri denir. Bu paketlerin SYN bayrakları 'set', FIN ve ACK bayrakları 'unset'tir. Yalnızca
bu paketleri engellersek o sunucudan gelen tüm TCP baglantılarını engellemis oluruz.
ste '--syn' bunun için kullanılır ve sadece TCP protokolünden gelen paketler için geçerlidir.
192.168.1.1 den gelen TCP baglantı isteklerini eslestirmek için:
-p TCP -s 192.168.1.1 --syn kullanılabilir.
'!' ile kullanılırsa baglantı kurmak isteyen paketler dısındaki tüm paketler anl***** gelir.
UDP Uzantıları
Bu uzantılar '--protocol udp' kullanıldıgı zaman otomatik olarak yüklenir. '--source-port' ya da
'-sport' ve '--destination-port' ya da 'dport' olmak üzere 2 tane opsiyonu bulunur. Bunlar TCP
için olanlarla aynı sekilde kullanılırlar.
ICMP Uzantıları
Bu uzantılar '--protocol icmp' kullanıldıgı zaman otomatik olarak yüklenir. Sadece bir
opsiyonu bulunur:
--icmp-type
'!' ile kullanılabilir, daha sonra icmp tür ismi (ör. 'host-unreachable') ya da nümerik tür (ör. '3')
ya da '/' ile ayrılmıs nümerik tür ve kod (ör. '3/3') gelmelidir. Dilerseniz icmp tür isimlerini '-p
icmp --help' parametrelerini kullanarak görebilirsiniz.
Diger Eslestirme Uzantıları
Netfilter paketindeki diger 2 uzantı (extension) eger kurulmuslarsa '-m' parametresi ile
kullanılabilirler.
mac
mac modulu '-m mac' ya da '--match mac' parametreliyle kullanılmalı. Gelen paketleri kaynak
MAC adreslerine bakarak eslestirmek için kullanılır. Dolayısıyla sadece INPUT ve
FORWARD zincirlerinde kullanılabilir. Sadece 1 opsiyonu vardır:
--mac-source
'!' ile kullanılabilir, daha sonra iki nokta üstüstelerle ayrılmıs "hexadecimal" lerden olusan
Ethernet (MAC) adresi gelmelidir, ör. '--mac-source 00:60:08:91:CC:B7'.
limit
Bu modül '-m limit' ya da '--match limit' parametreleriyle kullanılmalı. Paketlerin koyulan
kuralla eslesme oranını sınırlar. Özellikle kütüklerin çok fazla uzamaması için kullanılır. 2
tane opsiyonu bulunur:
--limit
ardından '1/second' gibi bir eslestirme oranı gelmelidir. '/second', '/minute', '/hour', '/day' ya da
kısaca '/s', '/m', '/d', '/h' kullanılabilir. Eger bu opsiyon kullanılmazsa default olarak '3/hour'
kullanılır.
--limit-burst
ardından limit devreye girmeden önce kaç kere eslestirme yapılacagını gösteren bir sayı
gelmelidir. Bu opsiyon kullanılmadıgı takdirde default u 5'tir.
Default limit parametreleriyle log tutan su kuralı inceleyelim:
#iptables -A FORWARD -m limit -j LOG
Default burst 5 oldugundan, eslesmeye uyan ilk 5 paket log edilecek. Daha sonra her 20
dakikada 1 paketin log u tutulacak. Eger 20 dakika boyunca eslesen bir paket bulunmazsa
sıfırlanmıs olan burst 1 artacak ve dolayısıyla daha sonra gelen ilk paketin log u tutulacak.
Eger 100 (5*20) dakika boyunca hiçbir paket eslesmezse burst yine maximum olan 5 e
erisecek ve kuralın ilk koyuldugu ana geri dönülmüs olacak.
Biraz önceki örnegimizde burst'ün tekrar maksimuma ulasması için gereken süre 100
dakikaydı. Eger bu sürenin 60 saati geçtigi bir kural koyarsak iptables tarafından kabul
edilmeyecektir.
unclean
Bu modül '-m unclean' ya da '--match unclean' parametreleriyle kullanılmalı. Bozuk ya da
'garip' (malformed or unusual) paketleri eslestirmek için kullanılır. Henüz deneme asamasında
oldugu için kullanılması tavsiye edilmiyor. Herhangi bir opsiyonu yok.
Hedef (target) Belirtme
Paketleri kurallarla eslestirmeyi ögrendik, simdi eslesen paketlere neler yapabilecegimizi
görecegiz. Buna kuralın hedefi (rule's target) diyoruz. ki tane çok basit gömülü hedefimiz
var: DROP ve ACCEPT. Eger paket hedefi bu ikisinden biri olan bir kuralla eslesirse artık
akıbeti belli olmustur: ya yapı önüne konur ya da içeri alınır. Hedef olarak bu iki gömülü
hedefin yanında kendi kurdugumuz zincirleri de kullanabiliriz.
Kullanıcı tanımlı zincirler (user-defined chains)
iptables'ın en güçlü özelliklerinden biri gömülü gelen zincirlerin yanında kullanıcılara da
zincir kurma olanagı vermesidir. Karısıklık olmaması için bu zincirlerin isimleri küçük
harflerden olusmalıdır.
Eger bir paket hedefi kullanıcı tanımlı bir zincir olan bir kuralla eslesirse yolculuguna o
zincirden devam eder. Eger paket bu zincirde bir kuralla eslesemezse, kendisini oraya
gönderen zincire geri döner ve az önce eslestigi kuralın altındaki kuraldan yolculuguna devam
eder.
INPUT test
Kural 1 : -p ICMP -j
DROP
Kural 1 : -s
192.168.1.1
Kural 2 : -p TCP -j test
Kural 2 : -d
192.168.1.1
Kural 3 : -p UDP -j
DROP
Simdi 192.168.1.1 den bir TCP paketinin geldigini düsünelim. lk önce INPUT zincirine
girecek ve Kural 1 ile karsılasıcak: eslesme yok. Daha sonra Kural 2 ile karsılasıcak ve
eslesecek: 'test' zincirine gönderilecek. Kural 1 ile eslesecek ancak bir hedef belirtilmedigi
için paket üzerinde bir islem yapılmayacak. Kural 2 ile eslesme yok: paket INPUT zincirine
geri dönecek ve Kural 3 ile karsılasacak: eslesme yok. Burdan sonra paketin akıbetine
INPUT zincirinin 'policy'si karar verir. Paketleri zincirler arasında dolastırırken loop
olmamasına dikkat edin. Eger paketin sonsuz bir döngüye girdigi anlasılırsa otomatik olarak
DROP edilir.
iptables'a Uzantılar: Yeni Hedefler
Diger hedef türü ise uzantıdır. Hedef uzantısı bir çekirdek modülü ve opsiyonel olarak
iptables'a yeni komut satırı seçenekleri kazandıran uzantılardan olusur. Default netfilter
sürümünde çesitli uzantılar bulunur:
LOG
Bu modül eslesen paketlere kernel logging sunar. 2 tane opsiyonu bulunur.
--log-level
Seviye numarası ya da ismiyle kullanılır. Geçerli isimler 'debug', 'info', 'notice', warning', 'err',
'crit', 'alert' ve 'emerg' 7'den 0'a kadar olan seviye numaralına karsılık gelirler. Bu seviyelerle
ilgili açıklamaları syslog.conf un manuelinde bulabilirsiniz.
--log-prefix
Maksimum 14 karakter uzunlugunda bir string ile kullanılır. Bu string log mesajının basına
eklenir.
REJECT
Bu modul DROP ile aynı etkiye sahiptir, tek farkı göndericiye bir de ICMP 'port unreachable'
mesajı göndermesidir. Ancak asagıdakilerden biriyle karsılasılması durumnda ICMP hata
mesajı gönderilmez:
• Filtrelenen paket zaten bir ICMP hata mesajıysa ya da bilinmeyen bir ICMP
türündeyse.
• Filtrelenen paket baslıgı olmayan bir segment ise.
• Aynı göndericiye zaten çok sayıda ICMP hata mesajı gönderilmis ise.
Özel Gömülü Hedefler
2 tane özel gömülü hedef bulunur: RETURN ve QUEUE.
RETURN paketi zincirin sonuna gönderir. Dolayısıyla ya zincirin policy'si paketin akıbetini
belirler ya da paket kendisini oraya gönderen zincire geri döner ve yolculuguna oradan devam
eder.
QUEUE paketi 'userspace processing' için kuyruga sokar. Paketi bekleyen bir process yoksa
paket DROP edilir.
Zincir slemleri
Kuralları zincirler içerisinde guruplamak iptables'ın oldukça kullanıslı olan bir özelligidir.
Zincire istediginiz ismi verebilirsiniz, fakat daha önce de belirtildigi gibi karısıklıkları
önlemek amacıyla küçük harfleri kullanmanız tavsiye edilir. Zincir isimleri maksimum 16
karakter uzunlugunda olabilir.
Yeni Bir Zincir Eklemek
'test' isminde bir zinciri '-N' ya da '--new-chain' parametresiyle yaratabiliriz, ör: iptables -N
test
Bir Zinciri Silmek
Zinciri silmek için ise '-X' ya da '--delete-chain' kullanılabilir, ör: iptables -X test
Zinciri silerken dikkat etmemiz gereken birkaç nokta var: öncelikle zincir kullanıcı tarafından
tanımlanmıs zincirlerden biri olmalı ve zincirin içinde hiçbir kural olmamalı. Ayrıca
zincirimiz herhangi bir kuralın hedefi olmamalı. Yani INPUT zincirindeki bir kural 'test'
zincirini hedefliyorsa, o kuralı silmeden 'test' zincirini silemezsiniz. Son olarak eger zincir
silerken isim belirtilmezse silinebilen tüm zincirler silinir.
Zinciri Bosaltmak
Bir zincirin içindeki tüm kuralları silmek istiyorsak '-F' (ya da '--flush') parametresi
yardımımıza kosuyor, ör: iptables -F FORWARD
Eger bir zincir ismi belirtilmezse tablodaki tüm zincirler bosaltılır.
Bir Zinciri Listelemek
Bir zincirin içindeki tüm kuralları listelemek için '-L' kullanılır, ör: iptables -L OUTPUT
Kullanıcı tarafından tanımlanmıs zincirlerdeki 'refcnt' hedefi o zincir olan kural sayısını
gösterir. Az önce belirtildigi gibi o zincirin silinebilmesi için bu sayının 0 olması gerek.
Eger zincir ismi belirtilmezse tablodaki tüm zincirler listelenir.
'-L' ile birlikte kullanılabilen 3 tane daha parametre vardır. Bunlardan '-n' (numeric) iptables'ın
IP addreslerini çözümlememesini saglar. Eger bu parametreyi kullanmazsanız listeleme
oldukça uzun sürebilir. '-n' ayrıca TCP ve UDP portlarının da isim yerine numaralarla
listelenmesini saglar.
'-v' parametresi listeleme isleminin daha ayrıntılı yapılmasını saglar. Bunlar paket ve byte
sayaçları, TOS (Type Of Service) karsılastırmaları ve arayüzlerdir.
Paket ve byte sayaçları 'K', 'M', 'G' gibi soneklerle listelenirler. '-x' (expand numbers) ile bu
soneklerin kullanılmamasını ve sayıların tam olarak yazılmalarını saglayabiliriz.
Sayaçları Sıfırlamak
Sayaçları sıfırlamak için '-Z' (ya da '--zero') kullanılabilir. Eger sayaçları nerede sıfırladıgınızı
tam olarak bilmek istiyorsanız '-L' ve '-Z' parametrelerini beraber kullanabilirsiniz.
Policy'leri(idare) Ayarlamak
POLICY, paketin gömülü zincirin sonuna ulastıgında ne olacagıdır. Yalnızca gömülü
zincirlerin 'policy' leri olabilir ve bunlar da ACCEPT ya da DROP'tan ibarettir.
---------------------
§§§§§§§§§_§§§___§§§_§§§§§§§§§_§§§__§§§
___§§§____§§§___§§§_§§§___§§§_§§§_§§§_
___§§§____§§§___§§§_§§§§§§§§§_§§§§§§_
___§§§____§§§___§§§_§§§__§§§__§§§_§§§
___§§§____§§§§§§§§§_§§§___§§§_§§§__§§§

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı