Linux Iptables

Günlük hayattaki siber saldırıların sayısı günden güne artmaktadır. Bu saldırılardan korumak için alınan her yöntem karmaşık olmak zorunda mıdır Aslında var olan işletim sistemlerinde bulunan bazı konfigürasyonları varsayılan olarak bırakmayıp kendimizin yapması sizce de güvenli olmaz mı

Linux işletim sisteminde oluşturduğumuz önemli bir dosyayı illaki dosya şifreleme yöntemi kullanarak mı halletmemiz gerekmektedir?

Bunun yerine dosyanın okuma izinlerini kendimizin düzenlemesi var olan bu siber saldırı olaylardan korunma yollarının ilk adımı olabilir mi? Network trafiğimizi de kendimizin ayarlamasında ne gibi sakıncalar olabilir ki? Zararlı olduğunu düşündüğümüz bir IP adresini engellemek için illaki network girişimize bir NAC cihazı mı koymamız gerekir?

Siber olaylardan korunmaya öncelikle kendi alacağımız tedbirler ile başlamalıyız. Dosya izinlerimizi kontrol etmeli, kullandığımız yazılımların güncel olup olmadığına kendimizin karar vermesi lazım. Network trafiğimizin de kontrolünü ilk aşamada kendi belirlediğimiz kuralların yazılması ile başlamalıyız. Iptables komutu işte tam bu konuda bize yardımcı olan bir yapıdır. İşletim sistemlerinde dışarıdan gelebilecek zararlara karşı koruma sağlayan bazı yapılar bulunur. Bu yapılara örnek olarak güvenlik duvarları diyebiliriz. Windows için sistemde hazır olarak bulunan güvenlik duvarı Windows Defender’dır. Linux işletim sistemlerinde ise hazırda bulunan güvenlik duvarı ise iptables’tır.


Bu güvenlik duvarı sistemde görev yapan servislerin çalıştığı portlar üzerinde çalışır. İnternete bağlandığımız zaman ağ trafiği üzerindeki bütün veriler paketler halinde gönderilir. Linux kernel yapısında bu gelen ve giden trafik üzerinde hareket eden paketlerin paket filtreleme tablosu kullanarak daha önceden yazılan kurallara göre filtreleme yapabilmemizi sağlayan bir arayüz bulunur.

  1. Iptables, bu paket filtreleme tablolarını kurmamızı, yönetmemizi ve incelememizi sağlar.
  2. Iptables ile ağınıza gelen network trafiğini kontrol edebilir veya başka bir adrese yönlendirebilir.
  3. Birden fazla tablo belirlenebilir ve her tablo birden fazla zincir yapısına sahip olabilir.
  4. Zincir kuralların bütünüdür.
  5. Her kural, ağ trafiği üzerinden gelen her bir paketin bu kurala uyduğundan ne yapılacağına karar veren bir yol haritasıdır.

Iptables tablo yapısını şu şekilde görebiliriz;

Image for post
Resim : https://www.crybit.com/what-is-iptables-in-linux/

Kuralı sağlayan veya sağlamayan pakete ne olur?

ACCEPT (KABUL ET): Paketin ağ trafiği üzerinden geçmesine izin verir

DROP (REDDET): Paketin ağ trafiği üzerinden geçmesine izin vermez. Paketi gönderen kişiye paketin engellendiği haber edilmez.

REJECT (KABUL ETME): Paketin ağ trafiği üzerinden geçmesine izin vermez. Paketi gönderen kişiye paketin engellendiği haber edilir.

RETURN (GERİ ÇEVİR): Şimdiki zincirin pas geçilmesi ve çağrıldığı zincirde bir sonraki kurala geçilmesi gerektiği anlamına gelir.


Paketlerin Yönleri nelerdir ?

Image for post
Resim : https://www.hostinger.web.tr/rehberler/iptables-rehberi

INPUT: Gelen paketlerin kontrol edileceğini belirtmek için kullanırız. Gelen paketler port numarası, protokol türü ve source IP değerine göre engellenebilir veya paketin geçişine izin verilir.

FORWARD: Sistem tarafından yönlendirilen paketlerin kontrolü için kullanılır.

OUTPUT: Giden paketleri kontrolü için kullanılır.


Iptables Genel Kural Yapısı

iptables -A <paketin yönü> -i <interface> -p <protokol tipi> -s <kaynak> — dport <port no.> -j <pakete ne olacak?>

  • A = Hangi zincir tipine eklemek istediğimizi belirtiyoruz. Input, Output, Forward zincirlerinden biri olabilir.
  • D = Belirtilen kuralın silinmesi için kullanılır. Yani daha önceden –A ile eklediğimiz kuralı bu sefer –D parametresi koyarak silebiliriz.
  • i = Hangi interface için bu kuralı uygulayacağımız söylüyoruz.
  • p = Hangi protokol için uygulayacağımız söylüyoruz. TCP, UDP vb. protokoller olabilir.
  • s = Gelen paketlerin IP adreslerini kontrol edilmesi için yazılır.
  • j = Bu paketin ne olacağı ile alakalı durumu belirtiriz. Paket ACCEPT, DROP veya RETURN edilebilir.

Iptables Örnekleri

Burada şimdi sizler için kullanışlı olan birkaç örnek göstermek istedim. Eğer anlamadığınız bir yer olursa mutlaka bana sormaya çekinmeyin 🙂

Spesifik Bir IP adresini engellemek

iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

Açıklamak gerekirse INPUT yani gelen paketlerden source IP adresi xxx.xxx.xxx.xxx olan paketleri DROP yani kabul etme diyoruz. Yani bir IP adresinin zararlı olduğunu biliyorsak bu komutu kullanabiliriz.

→ iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP

Bu örnekte ise bir IP adresinin bize TCP paketleri atmasını engellemek için yazdığımız bir kuraldır. İlk kuralda herhangi bir paket tipi atarsa paket direk DROP edilecekti. Ama buradaki kuralda sadece TCP paketi atarsa engellemeyi tercih etmişiz.

Engellenen IP adresinin Engeleni Kaldırmak (Kural Silmek)

iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP

Bir önceki slaytta –A parametresi ile bu kuralı eklemiştik. Şimdi daha sonra eğer karar değiştirirsek yani kuralı silmek istersek bu önceden yazmış olduğun kuralın aynısını yazarak bu sefer –D parametresi ile silebiliriz.

Belli bir portu engellemek

iptables -A OUTPUT -p tcp — dport xxx -j DROP

Kullanmadığınız portların durumunu belirtin. Kendiniz için alabileceğiniz en büyük güvenlik önlemi budur. Eğer bir portu kullanmayacaksınız onu manuel olarak kapatmanız gerekir. Böylelikle olası bir saldırı durumda dışarıya veri sızıntısını engelleyebilirsiniz.

→iptables -A INPUT -p tcp — dport xxx -j DROP

Bu kuralda ise benim bilgisayarımdan dışarıya giden ve xxx portunu kullanan tüm paketler drop edilir. Bu kuralın mantığı ise dışarıdan gelen herhangi bir paketin xxx numaralı port ile olan iletişimini kesiyorum. Gelen paketleri DROP ediyorum.

Ping İsteklerinin Engellenmesi

→iptables -A INPUT -p icmp -i eth0 -j DROP

Ping paketini niye engelleriz ki? Günümüzde zafiyet taraması yapan araçlar bir ağda çalışan bilgisayarın varlığını tespit edebilmek için o bilgisayarlara ping paketi gönderir. Bu pakete cevap verilirse de saldırgan sizin o ağ içinde olan bir bilgisayar diye işaretleyerek hedef haline gelirsiniz. Biz de bu durumdan kurtulmak için gelen ping paketlerini engelleyebiliriz. Ping paketleri icmp protokolünü kullanır ve eth0 ise bizim kendi netwok kartımızın interface değeridir.

DoS ataklardan korunmak

iptables -A INPUT -p tcp — dport 80 -m limit — limit 25/minute — limit-burst 100 -j ACCEPT

Iptables ile network kartımıza gelen trafiği yönetebileceğimiz söylemiştik. DoS saldırılarından korunmak üzere kendimiz de bir şeyler yapabiliriz. 80 portunu HTTP bağlantısı kullanır. Dışarıdan gelen ve 80 portunu kullanan paketlerden sayısı dakika başına belirledğimiz sayısı aşmadığı sürece kabul edilmesini söylediğimiz kuralı yazdık.


Bu konu hakkında öğrendiklerim ve bildiklerim bu kadar arkadaşlar. Umarım okurken öğrendiğiniz bir anlatım olmuştur.

Umarım konuyu bir bütün olarak anlatabilmişimdir. Umarım sizler için faydalı olmuştur. Soru, görüş ve geri bildirimleriniz için fatihturgutegitim@gmail.com adresine mail atabilirsiniz.

Ayrıca bana linkedin üzerinden de ulaşabilirsiniz. Okuyan herkese teşekkür eder sağlıklı günler dilerim. Bir sonraki yazımda görüşmek üzere…

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

WordPress.com'da Blog Oluşturun.

Yukarı ↑

%d blogcu bunu beğendi: