Iptables'ı yapılandırmak-filtrelendirmek için kurallar(rules) oluşturulur. Oluşturacağımız kuralı nerede işlemesini istiyorsak belirtmemiz gerekir.Örneğin; nat table'da yer alan prerouting chain'de şu işlemi yap gibi. Buradaki işlem target'dır. Kuralın içeriği için ise parametreler ile belirlenir. Iptables'daki chain'de ne olacağı durumunun ne olacağı ise komutlarla(command) belirlenir.
Kurallar, konusunda bilmemiz gereken durumlar şöyledir:
Standart TARGET değerleri:
**Red Hat Enterprise Linux'ta varsayılan olarak bulunan en popüler Target'lar aşağıdaki gibidir.
Chain komutları:
-A , --append :Belirtilen chain'deki kuralların sonuna kural eklemek için kullanılır.
-I , --insert :Belirtilen chain'de belirtilen id'ye göre kural eklenir. Örneğin; 5 kuralımız var. 2.sıraya kuralımızı eklemek için bu komutu kullanırız.
-D , --delete :Berirtilen chain'deki kuralı silmek için kullanılır.
-L , --list :Belirtilen chain'deki kuralları listelemek için kullanılır.
-F , --flush :Belirtilen chain içindeki kuralların tamamını siler.
-N , --new-chain :Yeni bir chain oluşturmak için kullanılır.
-X , --delete-chain :Belirtilen chain'i silmek için kullanılır.
Yukarıda en çok kullandığım komutları paylaştım. Daha fazlası için komut satırına aşağıdaki komutları yazarak ulaşabilirsiniz.
man iptablesya da
iptables -h
Parametreler:
-p , --protocol : Protokol. TCP, UDP gibi.
-s , --source : Kaynak. Hostname, ip adresi , network adı vb verilmeli
-d , --destination : Hedef. Hostname ,ip adresi, network adı vb verilmeli
-j , --jump : Kuralın target'ını belirtirken kullanılır.
-g , --goto chain : İşlemin kullanıcı tarafından belirtilen bir chain'de devam edeceğini belirtir.
-i , --in-interface : Paketlerin alındığı arayüz ismi verilir. Örneğin:eth0
-o , --out-interface : Bir paketin gönderildiği arayüzün ismi verilir. Örneğin; ens160Daha fazlası için yine aynı şekilde man iptables 'tan bakabilirsiniz.
Kullanımı:
iptables --table [table] [chain_komut] [chain] [kural]
Basit bir kural oluşturalım.
iptables -A INPUT -j DROP
Yukarıdaki kurala göre ;
Kuralın , INPUT chain'de yazılması ve işlemesi gerekiyor. Gelen bir trafik için bir işlem yapılacağını belirtiyor.
-A diyerek INPUT chain'de yer alan kuralların sonuna bu kuralı eklemiş oluyoruz.
-j DROP diyerek gelen paketi çöpe at, engelle ve mesaj gönderme diyoruz.
Tam anlamı ise gelen trafiği engelleyen bir kural oluşturmuş oluyoruz.**Yukarıdaki kuralda dikkat etmeniz gereken nokta ,table'ın belirtilmemiş olması. Eğer kuralda yazmıyorsa default olarak Filter Table için geçerlidir.
**Yukarıdaki gibi trafik engelleyen bir kural girildiğinde , aynı kuralın izin veren halini yazsanız bile öncelik olarak engellenen komutu dikkate alacaktır. Bu sebeple en son engelleme kuralını yazmanızı tavsiye ederim.
**Son olarak yazığınız kurallardan sonra aşağıdaki komutu çalıştırmayı unutmayın.
service iptables save
IPTables
hakkında diğer konular