Site icon NetworkKampüS

CentOS FIREWALL: iptables

firewall-linux

Dikkat: Bu yazıda geçen komutlar hem Linux tabanlı Centos hem de Linux tabanlı  Red Hat (RHEL) işletim sisteminde geçerlidir.

iptables Nedir?

Linux kernel’inde paket filtreleme anlamına gelen “netfilter” vardır. Bu “netfilter”in komut satırı ara yüzü “iptables”dir.

iptables Ne İşe Yarar?

“iptables” ile paket filtreleme kuralları yönetilir.

iptables Nelerden Oluşur?

iptables yapısında tablolar vardır. Tablo içerisinde de zincirler vardır.

Tablolar:

  1. Filter tablosu :
  1. Nat tablosu :
  1. Mangle tablosu :
  1. Raw tablosu :

Zincirler:

Örneğin makinanız üzerindeki web sunucuda bulunan web sayfalarını görüntülemek için diğer bilgisayarlardan gönderilen talepler…

“input Zinciri”
“output Zinciri”

Eğer paket bir interface’ye gelip diğer bir interface’den geçerek yoluna devam edip gidecekse kural filter tablosunun FORWARD zincirine yazılmalıdır.

Örneğin makinanızı lokal ağınızda bulunan diğer kullanıcı bilgisayarlarını internete çıkarmak için Gateway/Firewall olarak yapılandırdığınızda, lokal ağınızda bulunan diğer bilgisayarların internetteki herhangi bir web sayfasına bağlanmak için sizin üzerinizden gönderdiği paketler…

“forward Zinciri”

Kuralların İşleme Mantığı Nedir?

Kurallar sırasıyla işlenmektedir. Bundan dolayı kuralların yazılı sırasına dikkat edilmelidir. Yan paket zincir içerisinden yukardan aşağı doğru kontrol edildiğinde uyduğu ilke kurala göre zincirden çıkar. Aşağıdaki diğer kurallara bakılmaz.

Grafiksel Ekranda Firewall

Bunun için terminal ekranda “system-config-firewall” komutu kullanılabilir. “Root” şifresi ile ayarlara devam edilir ve “ctrl+c” ile de firewall grafiksel ara yüzü kapatılabilir.

“Grafiksel Ekranda Firewall”

Veya GUI uyani grafiksel ekranda system > Administration > Firewall şeklinde açılabilir.

“Grafiksel Ekranda Firewall”

Trusted Services:

Grafiksel arayüzde “Trusted Services” kısmında yaygın kullanılan portlar ve servisler görünmektedir.

“Trusted Services”

Other Ports:

Eğer izin vereceğimiz servis veya port bu listede yok ise “Other Ports” kısmında port ekleyebiliriz.

“Other Ports”

Trusted Interfaces:

Tursted Interface kısmında istediğiniz interface için firewall kapatabilir veya açabilirsiniz. Örneğin eth0 interface’i için firewall kapalı olsun diyebilirsiniz. Bir interface’den gelen tüm paketleri kabul etmek için;

komutu da kullanılabilir. Ayrıca “Trusted Interfaces” kısmında sistemde hiç olmayan veya olduğu halde firewall tarafında listelenmeyen interface’ler de “Add” ile eklenebilir.

“Trusted Interfaces”

Masguerading (NAT):

NAT işlemi için Masguerading kısmı kullanılmaktadır. Bu kısımdan seçilen interface NAT yapılacak paketlerin çıkacağı interface’dir. Başka interface’lerden gelen paketler bu seçilen interface’den dışarıya natlanarak gönderilir.

NAT uygulanırken paketler interface değiştirir yani bir interface’den diğerine geçerler. Iptables GUI kullanmıyorsanız yani terminal ekran kullanılıyorsa; interface’ler arası paket forwarding işlemi yapılmaz. Bundan dolayı ilk önce /etc/sysctl.conf dosyası içerisinde bulunan;

satırını aşağıdaki gibi değiştirmek gerekir.

Bu değişikliğin etkili olabilmesi için de;

komutu kullanılır. Iptables GUI kullanıyorsanız yani grafiksel ekranda kullanıyorsanız paket forwarding işlemi NAT yaptığınızda otomatik aktifleştirilir. Burada kullandığımız Masquerade işlemi paketleri iç ve dış networkümüz arasında taşırken routing işlemi yapmaktadır. Ancak biz kernel routing tablosuna herhangi yeni bir değer girmediğimiz için burada yapılan routing işlemi için gerekli network bilgisini interface yapılandırmalarından elde etmektedir.

“Masquerading”

Port Forwarding:

Bir porta gelen trafiğin yönlendirilmesi için kullanılır. Hedef için aynı IP üzerinde bulunan bir port veya başka bir IP adresi üzerinde bulunan herhangi bir port seçilebilir. Port Forwarding, NAT işleminin bir parçasıdır.

Komut satırında aşağıdaki şekilde port forwarding yapılabilir.

“Port Forwarding”

ICMP Filter:

ICMP protokolü network testlerinde kullanılmaktadır. Default’ta yani varsayılan olarak sunucu ICMP paketlerine açıktır. Bundan dolayı bilgi çalınmasını engellemek için ICMP paketlerine karşı kısıtlama yapılabilir. Bunun için aşağıdaki seçeneklerden istenilenler

“ICMP Filter”

Örnek olarak sunucumuza doğru ping başlatalım. Sunucumuzun IP adresi 192.168.93.143’dür.

“ICMP Filter Örnek”

Ping devam ederken “Echo Request (ping)” seçeneğini işaretleyip “Apply” dediğimiz anda ping cevap vermeyi kesmektedir. Tekrar tiki kaldırdığımızda ping devam etmektedir.

“ICMP Filter Örnek”

Custom Rules:

Bu kısma kendi yazdığımız kuralları ekleyebiliriz. Örneğin “/home/nizam/Desktop” yoluna “kural” isimli bir dosya oluşturalım ve aşağıdaki satırları içerisine yazalım.

-I OUTPUT -p udp -m udp –dport 53 -j LOG

-I OUTPUT -p udp -m udp –dport 55 -j LOG

-I INPUT -p udp -m udp –dport 53 -j LOG

“Custom Rules Dosya Oluşturma”

 

Şimdi bu dosyayı “Custom Rules>Add” şeklinde seçip ekleyelim. Ardından “Apply” diyerek uygulayalım.

“Custom Rules”

Dosyada yapılan her kural değişikliğinden sonra firewall’a uygulanabilmesi için GUI üzerinde Disable & Enable butonlarını kullanmanız gerekecek.

 

Exit mobile version