19 Şubat 2017 Pazar

Temel Iptables Kullanımı

Iptables Linux bilgisayarlarda firewall olarak kullanılan bir yazılımdır.
Iptables ile sisteminize gelen ve sisteminizden giden bağlantıları engelleyebilir, farklı bir yere yönlendirebilir veya izin verebilirsiniz.
Iptables kurallar zinciri, bu kurallar zincirlerine ait parametreler ve bağlantı hedefleri ile birlikte çalışmaktadır.

Kural Zincirleri

INPUT Gelen paketleri tanımlamak için.
OUTPUT Giden paketleri tanımlamak için.
FORWARD Yönlendirilen paketleri tanımlamak için.
PREROUTING Sadece NAT için geçerlidir. Gelen paketlerin değiştirilmesi için.
POSTROUTING Sadece NAT için geçerlidir. Giden paketlerin değiştirilmsi için.

Kural Hedefleri

ACCEPT Paketlerin geçisine izin vermek için.
DROP Paketlerin geçişini reddetmek için.
REJECT Paketlerin erişimi reddedilir ve gönderici bu konuda bilgilendirilir.
RETURN Zincirin sonuna gönderilir.
QUEUE Paketler kullanıcı alanına gönderilir.

Kural Parametreleri

-A ZİNCİR Zincire kural ekler.
-E ZİNCİR Zinciri yeniden adlandırır.
-D ZİNCİR Zincirden bir kural siler.
-D ZİNCİR Zincirden belirtilen numaradaki kurali siler.
-L ZİNCİR Belirtilen zincirdeki kurallari gösterir.
-E ZİNCİR Zinciri yeniden adlandirir.
-l ZİNCİR Zincirde belirtilen numaralı alana kuralı ekler.
-R ZİNCİR Zincirde kuralın yerine başkasını koyar.
-R ZİNCİR Zincirde belirtilen numaralı alana bir başkasını koyar.
-N ZİNCİR Yeni bir zincir oluşturur.
-X ZİNCİR Kullanıcının eklediği bir zinciri siler.
-F ZİNCİR Zincirdeki kuralların tümünü siler.
-P ZİNCİR Zincire genel politika ekler.

Kural Seçenekleri

! Kuralı tersine çevirir.
-s Bağlantı sağlayacak adresi belirtmek içn kullanılır 127.0.0.1/255.0.0.0 gibi..
-p UDP,TCP,ICMP,ALL bağlantı protokollerini belirtmek için kullanılır. ALL hepsini tanımlamak içindir.
--dport İstek gelen portu tanımlamak için kullanılır.
-j Kural için belirtilen zincirde hedef belirtir.-j ACCEPT gibi
-t Tabloyu belirtir.Nat tablosu için -t nat şeklinde yazılır.
-V Iptables'ın versiyonunu öğrenmek için kullanılır.

Kural zincireleri INPUT,OUTPUT,FORWARD ve POSTROUTING PREROUTING büyük harfler ile yazılır.

Örnek olarak

[code]iptables -A INPUT -p tcp --dport 8880 -s 127.0.0.1 -j ACCEPT[/code]

127.0.0.1 IP adresinden 8880 portuna gelen TCP paketlerini kabul etmek için kullanılan bir komuttur

[code]iptables -A INPUT -p tcp --dport 8880 -j DROP[/code]

8880 portuna gelecek tüm TCP paketlerini reddetmek için kullanılan bir komuttur.

[code]iptables -A INPUT -p tcp --dport 8880 -j DROP ! -s 127.0.0.1[/code]

8880 portuna 127.0.0.1 IP adresi dışında gelecek tüm TCP paketlerini reddetmek için kullanılır. Ancak 8880 portuna bir kaç farklı IP adresinden bağlantı yapılmasına izin verecekseniz eğer bu kuraldan sonraki tanımlayacağınız veya önceki tanımlı olan izinler geçersiz kalacaktır.

Kurallarımızı tanımlarken ilk önce izin vereceğimiz kuralları tanımlamamız daha sonra gelecek bağlantıları engelleyecek kuralları tanımlamamız gerekmektedir. Yani belirli bir sıralama ile tanımlama yapmamız gerekmektedir.

Örnek olarak 8880 Plesk panel portunu ele alalım. Bu porta sadece belirli IP adreslerinden gelecek TCP bağlantılarına izin verip geri kalan bağlantıların reddedilmesi istiyorsak tanımlamamız aşağıdaki gibi olmalıdır.

[code]iptables -A INPUT -p tcp --dport 8880 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8880 -s 123.123.123.123 -j ACCEPT
iptables -A INPUT -p tcp --dport 8880 -s 321.321.321.321 -j ACCEPT
iptables -A INPUT -p tcp --dport 8880 -j DROP[/code]

Kuralları tanımladık ancak Iptables servislerini yeniden başlattığımızda tanımlı kurallar silinmektedir. Kuralların silinmemesi için aşağıdaki komutları çalıştırmamız gerekmektedir.

[code]service iptables save
chkconfig iptables on[/code]

0 yorum:

Yorum Gönder