iptables -3- iptables temel komutları.
iptables genel kullanımı :
iptables [-t table] command [match] [target/jump]
iptables komutunun en temel kullanımı yukarda görüldüğü şekildedir.
-t table :
“-t table” kullanılarak default table harici başka bir table’a eklemek için kullanılır. kullanılması zaruri bir parametre değildir. table belirtilmediği müddetçe rule default table a eklenir. “-t table” kural içerisinde hernangi bir yere konulabilir, kural başlangıcına konulmak zorunda değildir.
command :
command ( komut ) herzaman en başa gelmelidir. sadece “-t table” kullanıldığında table parametresinden sonra kullanılabilir. command iptables ‘a ne yapacağını söyledeğimiz yerdir örneğin : kural ekle, kural sil gibi.
match :
kernel’e kural için geçerli olan ip paketinin karakteristiği hakkında bilgi vermek için kullanılır örneğin : şu ip adresinden gelen, şu protokol, şu port vb gibi.
target :
paketler için gerekli şartlar sağlandığında match gibi kurallar tuttuğunda kernel’e söz konusu paket ile ne yapacağını söylemek amacı ile kullanılır. örneğin : paketi başka bir hain e yönlendir, paketi göz ardı et, başka bir kaynağa yönlendir gibi.
Commands ( Komutlar ) :
Şimdi iptables ile kullanabileceğimiz komutlara bir göz atalım ;
-A –append
iptables -A INPUT
Bu komut belirtilen zincir’in en sonuna belirtilen kuralı ekler. Başka bir deyişle daha sonra bir kural daha eklenmediği müddetçe bu kural zincir içerisinde en son paketin kontrol edileceği yer olur.
-D –delete
iptables -D INPUT –dport 80 -j DROP, iptables -D INPUT 1
Bir zincirdeki belirtilen kuralı siler. İki türlü kullanımı vardır , Silmek istediğiniz kuralı aynen belirterek silebilirsiniz veya kurallar eklenirken tüm kurallara 1 den başlayarak bir numara verilir söz konusu rule numarası belirtilerek’de silinebilir.
-R –replace
iptables -R INPUT 1 -s 192.168.0.1 -j DROP
Yer değiştirmek. daha önceden girilmiş olan bir kuralı silmek yerine yenisi ile değiştirmek amacı ile kullanılır. kullanımı -D ile aynı olup farkı silmek yerine yeni eklediğiniz kural ile yerdeğiştirmesidir. yukarıdaki örnekde INPUT içerisindeki 1 nolu kuralı yer değiştiriyor.
-I –insert
iptables -I INPUT 1 –dport 80 -j ACCEPT
Belirtilen zincirde belirtilen kural sıralamasında araya bir kural eklemek için kullanılır. örneğin yeni bir kural eklemek istiyoruz. daha önceden eklediğimiz bir yada bir kaç kural söz konusu paket için farklı işlemleri daha önceden gerçekleştirdiği için bu kural kullanılmaz duruma düşüyorsa söz konusu kurallardan önce bu kuralı araya girmemiz gerekebilir. daha basit anlatımıyla 192.168.1.1 den gelen tüm paketleri drop eden bir kuralımız varsa sonradan ekleyeceğimiz bu ip adresinden gelen http isteklerine izin veren kural tamamen işlevsiz olacaktır. söz konusu drop kuralından öncesine rule numarası girerek “insert” ederiz.
-L –list
iptables -L INPUT
Belirtilen tablo veya zincirdeki kuralları listeler. örneğimizde INPUT zinciri içerisindeki tüm kuralları listeliyoruz. Çıktı sonuçları opsiyonlara göre değişebilir -n -v gibi opsiyonlar kullanılabilir. ( opsiyonlara az sonra değineceğim )
-F –flush
iptables -F INPUT
Bir zincir’in içerisindeki tüm kuralları silmek için kullanılır. Söz konusu zincir içerisindeki kuralların hepsini silmek istediğimizde tek tek -D komutu kullanmaktan hızlı olduğu için eklenmiştir. zincir belirtilmediği takdirde belirli tabloların içerisindeki tüm kuralları siler.örneğimizde INPUT zinciri içerisindeki tüm kuralları siliyor.
-Z –zero
iptables -Z INPUT
iptables kuralları sayaçlara sahiptir. Bu sayaçlar söz konusu kural ile eşleşmiş olan paketler hakkında bilgileri içerir. herhangi bir amaç için bu sayaç bilgilerini resetlemek istediğinizde -Z kullanılır. -Z sayaçların değerlerini göstermeden sildiği için genelde -L ile beraber kullanılır. Belirli bir kuralın veya komple bir zincirin içerisindeki kuralların sayaçlarını sıfırlamak için kullanılabilir.
-N –new-chain
iptables -N izinliler
Yeni bir chain eklemek için kullanılır ( bir önceki yazımda görmüştük )
-X –delete-chain
iptables -X izinliler
Belirtilen zinciri silmek için kullanılır. Bu komutun kullanılması için , söz konusu zincir içerisinde herhangi bir kuralın bulunmaması gerekmektedir. Herhangi bir zincir adı belirtilmediğinde belirli tablo içerisindeki tüm zincirleri siler. -X şeklinde değişik bir parametrenin kullanılma sebebini coder daha iyi tüm harflerin daha önceden başka amaçlar için kullanılması olarak belirtmiş. rneğimizde izinliler zinciri siliniyor.
-P –policy
iptables -P INPUT DROP
Daha önceki yazımda policy nedemek görmüştük. -P parametresi ile belirtilen zincir ierisinde paket herhangi bir kurala uymazsa pakete nasıl davranılacağını belirtmek için kullanılır. Buradaki örnekte INPUT zincirinde herhangi bir kural tarafından işlenmeyen paketin default olarak drop edileceği belirtiliyor.
-E –rename-chain
iptables -E izinliler izinsizler
Belirtilen zincir isminin yeni bir isimle değiştirilmesi için kullanılır. izinliler zincirinin izinsizler olarak yeniden adlandırılması gibi.
Opsiyonlar :
opsiyon : -v –verbose
Beraber kullanılabileceği komutlar : –list, –append, –insert, –delete, –replace
İlgili komutlarla beraber daha ayrıntılı çıktı almak için kullanılır. örneğin –list ile birlikte kullanıldığında, kuralin ilgili olduğu interface adresini , rule opsiyonlarını, TOS marklari da gösterir. aynı zamanda byte ve paket sayaçlarını da gösterir. sayaçlar -K X1000 -M X1000000 -G X1000000000 gibi değerlerle görünebilir. bunu engellemek için -x opsiyonu ile beraber kullanarak tam sonuçlar alınabilir.
opsiyon : -x –exact
Beraber kullanılabileceği komutlar : –list
verbose çıktının kısaltmalar halinde değil tam değerini görmek için kullanılır.
opsiyon : -n –numeric
Beraber kullanılabileceği komutlar :–list
list ile beraber kullanılır sadece, söz konusu görüntülenen kuraldaki değerlerin numara olarak görüntülenmesi amacı ile kullanılır örneğin hostname yerine ip adresi www yerine tcp 80 şeklinde görünmesi gibi. söz konusu değerler şayet numeric değerlere değiştirilebiliyorsa numeric olarak gösterilir. örneğin çözümlenemeyen dns adresleri isim olarak görünmeye devam edecektir.
opsiyon : –line-numbers
Beraber kullanılabileceği komutlar : –list
Sadece –list ile beraber kullanılan bu opsiyon kuraları listelerken başlarına Satır numaraları verir. Söz konusu satır numaraları kural numarasına eşittir. insert komutu ile yeni bir kural ekleneceği zaman kuralın hangi numara ile ekleneceğini belirlemek gibi amaçlarla kullanılır.
opsiyon : -c –set-counters
Beraber kullanılabileceği komutlar : –insert, –append, –replace
Yeni bir kural oluştururken yada yapılandırırken kuralın sayaçlarını modifiye etmek için kullanılır. örneğin : –set-counters 20 4000 şeklinde kullanarak paket counter’i 20 ye ve byte counter’ını 4000′e ayarlayabiliriz.
opsiyon : –modprobe
Beraber kullanılabileceği komutlar : Hepsi
iptables kuralı herhangi bir modüle gerek duyarsa yüklemek amacıyla kullanılır. Tüm komutlarla beraber kullanılabilir.
iptables ile kullanılan komut ve opsiyonları kısaca görmüş olduk.