|
|||||||
| ||
![]() |
|
|
Seçenekler | Arama | Stil |
![]() İptables kullanımı | ||||||||||
|
(#1)
|
||||||||||
|
[0]Banlı Üye
Mesaj Sayısı: 1,007
Açtığı Konu: 111
Level: 28 [ ![]() ![]() ![]() ]Paylaşım: 135 / 677 Üyelik tarihi: Apr 2007
Kullanıcı No: 15
Nerden: UnDeRgRoUnD
Yaş: 19
Tecrübe Puanı: 0
REP Puanı : 188
REP Seviyesi :
![]() ![]() |
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. Not:Alıntıdır. |
|||||||||
|
||||||||||
|
|
![]() Cevap: İptables kullanımı | ||||||||||
|
(#2)
|
||||||||||
|
Mesaj Sayısı: n/a
Açtığı Konu: 5365
Level: -INF [ ]Paylaşım: NAN / -INF |
hiç kullanmadım senin saydende isallh kullncam
|
|||||||||
|
||||||||||
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | Arama |
| Stil | |
|
|