IPTABLES Kullanımı

Firewall(Güvenlik Duvarı) Nedir?

En basit anlatımı ile Firewall(Güvenlik duvarı), ağ sistemlerini internet ortamından gelebilecek saldırılara karşı korumak için tasarlanmış bir çözümdür. Güvenlik duvarları bir yazılım veya donanım olabilmektedir. Güvenlik duvarları gelen verilerden hangisinin zararlı hangisinin zararsız olduğunu bulmak için gelişmiş yazılımlar kullanmaktadır. Zararlı yazılımların tespitinde başarı sağlamak için bu yazılımların sürekli güncel tutulması gerekmektedir. Fakat güvenlik duvarları tamamıyla güvenlik sağlayamamaktadır. Örnek vermek gerekirse, binaların girişindeki güvenlik görevlilerine benzetilebilir. Güvenlik görevlisi içeriye girmek isteyen kişiyi dışarıdan kontrol edebilir, fakat saldırgan kişi biyolojik hastalık taşıyorsa bunu fark edememektedir. Güvenlik personeli, saldırganı sadece genel kontrolden geçirebilmektedir. Güvenlik duvarları da paketlerin içeriğiyle ilgilenemez sadece paket filtrelemesi yapabilmektedir. Bu nedenle tam güvenlik sağlayamamaktadır.

Iptables Nedir?

IPTables, Linux, Unix ve BSD sistemleri için geliştirilmiş, Linux-2.3.15 ve sonraki tüm çekirdek sürümlerinde aktif olarak çalışabilen bir güvenlik duvarıdır. Iptables, network interfaces kartı üzerinden geçen trafiğin ve dataların başlıklarına bakarak erişim denetimi yapmaktadır. Linux çekirdekli işletim sistemlerinde varsayılan güvenlik duvarı olarak gelen iptables ile;

  • Paket bazlı filtreleme yapabilirsiniz,
  • NAT özelliği sayesinde transparent proxy kuralabilirsiniz,
  • NAT ve maskeleme özellikleri sayesinde internet bağlantınızı paylaşabilirsiniz.

NOT: Iptables büyük/küçük karakter hassasiyetine sahiptir. Bu nedenle büyük/küçük harf kullanımına dikkat edilmelidir.

Iptables Temelleri

Iptables kuralları zincir mantığı ile çalışır. Zincir, temelde input,output ve forward olmak üzere 3 adettir. Zincirler kuralların bütünüdür. Zincirlerden detaylı olarak aşağıda bahsedilecektir.
Iptables if-then-else yapısıyla kontrol işlemini gerçekleştirir. Herhangi bir zincire gelen paket, kurallardan herhangi biri ile uyuşana kadar devam eder. Paket, hiçbir kuralla uyuşmazsa işleme sokulmaz. Kurallar, herhangi bir paket ile eşleşirse ne yapması gerektiğini, protokolü, kaynağı ve hedefi de içerebilmektedir.
Iptables’da kural oluşturmak için;

iptables

komutu kullanılır. Iptables komutunun genel kullanımı

iptables İŞLEM ZİNCİR PROTOKOL HEDEF KAYNAK DENETİM

şeklindedir. Iptables komutuna verilebilecek temel parametreler aşağıda listelenmiştir;

  • Kuralda kullanılacak protokolü belirtmek için:

-p

–protocol

  • Kuraldaki kaynak adresi belirtmek için:

-s

–source

  • Hedef adresi belirtmek için:

-d

–destination

  • Belirli bir ağ arayüzünden gelen bağlantılara kuralı uygulamak için:

-i

–n-interface

  • Belirli bir ağ arayüzünden giden bağlantılara kuralı uygulamak için:

-o

–out-interface

İŞLEM: Iptables’ın, zincire hangi işlemi yapacağını belirtmektedir. Iptables’da bulunan temel işlemler şu şekildedir;

  • N(New): Yeni bir zincir oluşturur.
  • X: Zincir siler.
  • L(List): Belirtilen zincirdeki kuralları listeler.
  • F(Flush): Zincirdeki tüm kuralları siler.
  • Z(Zero): Sayaçları sıfırlar.
  • A(Add): Zincire yeni kural ekler.
  • I(Insert): Zincirde verilen aralığa kural ekler.
  • D(Delete): Belirtilen kuralı zincirden siler.
  • R(Replace): Zincirde belirtilen kuralı değiştirir.

İşlemlerin kullanımına örnek verecek olursak;

iptables –A

dediğimizde yeni bir zincir eklemek istediğimizi belirtiriz.

ZİNCİR: İşlemin yapılacağı zinciri belirtir. Belli zincirler şunlardır;

  • INPUT: Gelen paketleri kontrol etmektedir.
  • OUTPUT: Giden paketleri kontrol etmektedir.
  • FORWARD: Başka sistemden gelip bizim üzerimizden, başka sisteme gidecek paketleri kontrol etmektedir.
  • PREROUTING: Sadece NAT içindir. Gelen paketlerin değiştirilmesi içi kullanılır.
  • POSTROUTING: Sadece NAT içindir. Giden paketlerin değiştirilmesi içi kullanılır.

PROTOKOL: Kontrolün hangi protokol üzerinden yapılacağını belirtmektedir. TCP,UDP,ICMP gibi protokoller bu argüman ile belirtilmektedir.
HEDEF: Kontrolün hangi kaynağı hedef alacağını göstermektedir.

-d 123.123.123.123

şeklinde gösterebileceği gibi daha özel bir komut girmek istenirse

-d 123.123.123.123 –dport 443

şeklinde de hedef port ve hedef ip adresi belirtilmektedir.

KAYNAK: Kontrolün kaynağını göstermektedir.

-s 123.123.123.123

şeklinde gösterebileceği gibi daha özel bir komut girmek istenirse

-s 123.123.123.123 –sport 443

şeklinde de kaynak port ve kaynak ip adresi belirtilmektedir.

DENETİM: Paket zincirdeki herhangi bir kural ile uyuşursa pakete ne yapılacağını belirtmektedir. Temel denetim parametreleri şu şekildedir;

  • DROP: Paket kural ile uyuşursa paketin geçişine izin vermemektedir.
  • ACCEPT: Paket kural ile uyuşursa paketin geçişine izin vermektedir.
  • REJECT: Paket kural ile uyuşursa paketin geçişine izin vermeyip, göndericiye red cevabı göndermektedir.
  • LOG: Paket kural ile uyuşursa paketin kaydını tutmaktadır.

Iptables Kurulumu

Güncel Linux sürümlerinde kurulu olarak gelen iptables’i kurulu olmayan sistemlerde kurmak için

apt-get install iptables

komutu kullanılmaktadır. Firewall servisi kurulduktan sonra

service iptables start

komutu ile servis başlatılmaktadır.

Iptables Kullanımı

iptables

iptables –F

komutu ile sistemimizde olan bütün iptables kurallarını siliyoruz. Sonrasında

iptables –A INPUT –p tcp –s 123.123.123.123 –dport 80 –j DROP

komutundaki –A INPUT ile INPUT zincirine ekleme yapacağımızı belirtmektedir, –p tcp , kurala işlenen protokolü belirtmektedir, –s 123.123.123.123 ile kaynak makinenin ip adresini verilmektedir, -j DROP ile de paketin red edileceği belirtilmektedir. Sonuç olarak 123.123.123.123 ip adresinden makinemizin 80 portuna tcp paketleri red edilmektedir.

iptables –A INPUT –p ICMP –J DROP

kuralı ile de makineye gelen ICMP paketleri red edilmektedir.

iptables –A INPUT –p tcp –s 123.123.123.123 –dport 443 –J DROP

kuralı da makinenin 443. portuna gelen istekleri kayıt altına almaktadır. Son olarak da kurallar listelenmiştir.

Örnek bazı komutlar aşağıda belirtilmiştir.

iptables –F

komutu ile bütün kurallar silinmektedir.

iptables –L

komutu ile bütün kurallar listelenmektedir.

iptables –A INPUT –j DROP –p tcp –dport 80

komutu ile 80 portuna gelen bütün paketler red edilmektedir.

iptables –A OUTPUT –j DROP –p tcp –dport 80

komutu ile 80 portundan giden bütün paketler red edilmektedir.

iptables –A INPUT –j ACCEPT –p tcp –dport 80

komutu ile 80 portuna gelen bütün paketler kabul edilmektedir.

iptables -A INPUT -s 172.23.34.1 -j ACCEPT

komutu 172.23.34.1 adresinden gelen bütün paketleri kabul etmektedir.

iptables -A INPUT -j ACCEPT ! -s 172.23.34.1

komutu 172.23.34.1 adresinden gelen bütün paketleri red etmektedir.

iptables -P INPUT DROP

komutu ile gelen paketleirn hepsi red edilmiştir.

iptables -P OUTPUT ACCEPT

komutu ile giden paketlerin hepsi kabul edilmiştir.

iptables -P FORWARD ACCEPT

komutu ile yönlendirilen paketlerin hepsi kabul edilmiştir.

iptables -A INPUT -j DROP -m mac –mac-source 00:99:88:99:88:77

komutu ile mac adresi bazlı paket engellemesi yapılmaktadır.

iptables –A INPUT –p tcp –source ! 192.168.2.32 –j DROP

komutu ile 192.168.2.32 adresi dışındaki bütün iplerden gelen paketler red edilmektedir.

NOT: Yazılan iptables kurallarının kalıcı olması için

iptables-save > /etc/sysconfig/iptables

komutu girilerek iptables dosyasına yazılmalıdır.

Size nasıl yardımcı olalım?

İhtiyacınız olan her an Prisma danışmanları yanı başınızda. Bizimle 7/24 iletişime geçebilirsiniz.


    Sızma testi hizmetlerimizi incelediniz mi?