Konular

İptables

IP Tables, güvenlik duvarı için Linux'ta kullanılan temel araçlardan birisidir. Linux'un çekirdek uzayındaki güvenlik duvarı gerçekleştirimi olan netfilter ile etkileşime giren, kullanıcı uzayında çalışan bir takım araçların bir araya gelmesinden oluşmuştur.

IP Tables bir takım kurallar(rules) ve eylemlere(actions) göre davranır. Kurallar hangi paketler (ör. belli bir ağdan gelen paketler) için hangi eylemlerin (ör. paketlerin düşürülmesi) gerçekleştirileceğini belirlerler. Netfilter her paket için bütün kuralları sırasıyla işletecektir. Eşleşen bir kural bulduğunda bu kural için tanımlanan eylemi işletir.

 

$man iptables


ile kılavuzu okuyabilirsiniz.

Tablolar
iptabes ismi iptables'ın tablolar üzerinde çalıştığı gerçeğinden gelmektedir. Tabloların her biri belli bir paket davranışı üzerinde özelleştirilmiştir. Aşağıdakiler Linux 2.6.8 çekirdeği üzerinde varolan tablolardır(değişik çekirdek sürümlerinde değişik tablolar olabilir):
 

Tablo Anlamı
raw Paketlerin düşük seviye ayrıştırılması.
nat Paket başlığında değişiklikler (where NAT takes place).
mangle Özelleştirilmiş paket ayrıştırması.
filter Paket filtreleme.


Paketle ne yapmak istediğinize bağlı olarak uygun bir tablo bulunmaktadır.

Zincirler (Chains)
Ip Tables'ta, her tabloya yapışık ve herbiri farklı trafik tipiyle ilişkili birçok zincir vardır:

 

Zincir Anlamı
PREROUTING Yönlendirmeden(routing) devreye girmeden makineye gelen trafik.
INPUT Makinenin kendisine gelen trafik.
FORWARD Makine üzerinden geçen trafik (başka makinede üretilen, hedefi başka makine olan).
OUTPUT Yerel olarak yaratılmış trafik (hedef yerel ya da dış bir makine olabilir).
POSTROUTING Dışarı giden trafik.


Ayrıca kendi zincirlerinizi oluşturmak da mümkün.

Veri Akışı
Linux çekirdeğinde her tablo/zincirde veri akışı aşağıdaki grafikte gösterilmiştir. Her kutuda zincir ve o zincir için geçerli tablolar gösterilmiştir. Trafik her zincir için geçerli her tablodan sırasıyla geçmektedir. Örneğin,  PREROUTING zincirinde raw, mangle ve nat tabloları var. Trafik akışı sırasıyla bu tabloların üçünden de geçer.


 

       Incoming
       Traffic
          |
          |
          V
     +----------+
     |PREROUTING|
     +----------+
     |   raw    |  <--------------+
     |  mangle  |                 |
     |   nat    |                 |
     +----------+                 |
          |                       |
          |                       |
       Routing                    |
    +- Decision -+                |
    |            |                |
    |            |                |
    V            V                |
  Local        Remote             |
Destination   Destination         |
    |            |                |
    |            |                |
    V            V                |
+--------+  +---------+           |
| INPUT  |  | FORWARD |           |
+--------+  +---------+           |
| mangle |  | mangle  |           |
| filter |  | filter  |           |
+--------+  +---------+           |
    |            |                |
    |            |                |
    V            |                |
  Local          |                |
 Machine         |                |
    |            |                |
    |            |                |
    V            |                |
 Routing         |                |
 Decision        |                |
    |            |                |
    |            |                |
    V            |                |
+--------+       |                |
| OUTPUT |       |                |
+--------+       |                |
|  raw   |       |                |
| mangle |       |                |
|  nat   |       |                |
| filter |       |                |
+--------+       |                |
    |            |                |
    |      +-------------+        |
    |      | POSTROUTING |      Local
    +----> +-------------+ --> Traffic
           |   mangle    |
           |     nat     |
           +-------------+
                 |
                 |
                 V
              Outgoing
              Traffic



Örnek olarak makinede üretilen ve yine makineye dönen bir trafik şu şekilde bir yol izler:
 

  1. Paket yerel bir süreç ya da çakirdek tarafından üretilir
  2. Yönlendirme kararı
  3. OUTPUT: raw
  4. OUTPUT: mangle
  5. OUTPUT: nat
  6. OUTPUT: filter
  7. POSTROUTING: mangle
  8. POSTROUTING: nat
  9. PREROUTING: raw
  10. PREROUTING: mangle
  11. PREROUTING: nat
  12. Yönlendirme kararı
  13. INPUT: mangle
  14. INPUT: filter
  15. Paket yerel bir süreç ya da çekirdek tarafından alınır

 Kurallar (Rules)
Belli zincir/tablolar için hangi paketlere hangi eylemlerin uygulanacağını belirlemek için kurallar tanımlamak yeterlidir. Bütün kurallar bütün zincirlere uygulanmaz.

Zincir yönetiminde kullanılan bazı seçenekler ve parametreler
Zincir yönetiminde kullanılan seçenekler:

-N: Yeni zincir ekleme
-X: Boş zincir silme
-P: Temel zincirlerdeki kuralı (policy) değiştirme
-L: Zincir kurallarını listeleme
-F: Zincirlerdeki kuralları boşaltma
-Z: Zincirlerdeki paket ve byte sayacını sıfırlama


Zincirlere kural tanımlamak için:

-A: Zincire yeni kural ekleme
-I: Zincirde herhangi bir konuma kural eklemek için
-R: Zincirde herhangi bir konumdaki kuralı değiştirmek için
-D: Zincirden herhangi bir kural silmek için


Zincirdeki kuralların yönetiminde kullanılan parametrelerden bazıları:

-p: protokol
-s: kaynak makine
-d: hedef makine
-i: Giriş işleminde kullanılacak arabirim
-o: Çıkış işleminde kullanılacak arabirim
-j: Uygulanacak kural
-t: Kullanılacak zincir


Basit Komutlar

sudo iptables -L


komutu iptables'taki kurallarınızı listeler. Eğer henüz herhangi bir kural tanımlamadıysanız şu şekilde bir çıktıyla karşılaşıcaksınız:
 

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Kurulu Oturumlara İzin Vermek:
Halihazırda kurulu oturumların trafiğine izin vermek için:

$sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Belli Bir Porttan Gelen Trafiğe İzin Vermek
Öntanımlı SSH portundan (22) gelen trafiğe izin vermek için, iptables'a bu porttan gelen bütün TCP trafiğine izin vermesini söyleyebilirsiniz:

$sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Komutu incelersek:

  • -A INPUT: Gelen trafiğe bakmak için kuralı girdi zincirine ekliyoruz
  • -p tcp: TCP olup olmadığına bakıyoruz
  • --dport ssh: Eğer öyleyse, girdinin ssh portuna gidip gitmediğine bakıyoruz
  • -j ACCEPT: Eğer öyleyse, girdiyi kabul ediyoruz

Bu eklemelerden sonra kuralları tekrar kontrol edersek:

$sudo iptables -L
 Chain INPUT (policy ACCEPT)
target     prot opt source               destination       
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh


Şimdi gelen bütün web trafiğine izin verelim:

$sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Kurallarımızı tekrar kontrol edelim:

$sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

Özel olarak ssh ve web trafiğine izin verdik ama herhangi bir engelleme yapmadığımız için bütün trafik devam edecektir.

Trafiği Engelleme
Bir paketi kabul etmek için bir kural tanımladığımızda, diğer kurallar onu etkilemez. Ssh ve web trafiğine izin veren kurallarımız önce geldiği sürece bütün trafiği engellesek de bu portlardan gelen trafik devam edecektir. Önemli olan bu kuralı sona eklemektir:

$sudo iptables -A INPUT -j DROP
$sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  anywhere             anywhere

Özel olarak herhangi bir arayüz(interface) belirtmediğimiz için, ssh ve web haricinde bütün portlardaki ve arayüzlerdeki trafik engellenir.
iptables Düzenleme
Son tanımladığımız kuralla loopback arayüzü de engellenmiş oldu. Engelleme kuralını özel olarak -i eth0 ile sadece eth0 için tanımlayabilirdik. Bunun yanında loopback için de bir kural ekleyebiliriz. Kuralımızı eklediğimizde en sona geleceği ve onun öncesinde bütün trafiği engellediğimiz için bir işe yaramayacaktır. Bu yüzden bu kuralı dah önceye eklemeliyiz:

$sudo iptables -I INPUT 1 -i lo -j ACCEPT
$sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  anywhere             anywhere

Bu açıdan bakınca ilk ve son satır neredeyse aynı. Daha detaylı bakmak için:

$sudo iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere           
 2661  616K ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
  222 24504 DROP       all  --  any    any     anywhere             anywhere



Kaynaklar

 

Yorumunuzu Ekleyin

Iptables Örnekleri

Iptables kullanımı hakkında güzel örneklerin olduğu bir site

25,654 Okunma Henüz yorum yapılmamış 06/06/2011 11:56:23 24/10/2014 11:57:25

Ipcop Kurulumu

Özellikle bir yerel ağı internet için filitrelemek istiyorsanız Ipcop aradığınız çözümlerden biri olabilir.

23,223 Okunma 1 Yorum 27/04/2011 11:07:41

Iptables Nasıl Kullanılır?

Internete bağlanan her sistem potansiyel saldiri tehlikelerine gebedir.Bir saldirgan direkt olarak veya kendini gizleyerek sisteme sızmak isteyebilir.Güncel Linux çekirdeklerinde kullanılan firewall'larin son gözdesi iptables, paket filtrelemesi yaparak erişim yetkisini belli bir seviyede tutar.Bilinmelidir ki sistem kurulmaya başladigi andan itibaren, yönetim politikasinin belirlenmeye başlamasi ve firewall'un bu politika üzerine inşası şarttır.Netfilter ( iptables ) kurulmadan önce, kullanıcının gereksiz servisleri çalıştırmaması ve gerekli olanlarda daha seçici davranması gerekir.

20,666 Okunma Henüz yorum yapılmamış 06/06/2011 09:32:30

SmoothWall Express 3.0 Kurulumu

Açık Kaynak Kodlu Firewall Projesi 3.0 Kurulum Bilgileri

20,081 Okunma Henüz yorum yapılmamış 13/10/2011 22:23:16 24/10/2014 11:50:48

Smoothwall URL Filter Kurulumu

Dosya, Kelime, Site, Url, İp bazlı erişim ve yasaklama işlemleri

19,934 Okunma Henüz yorum yapılmamış 13/08/2012 11:51:41 20/01/2014 14:37:04

Ipcop ile Ultrasurf Engellemek

Transparent modda 443 portunu squid acl leri ile engelleyemezsiniz. Iptables kullanarak kısıtlma yapabilirsiniz. Bu işi iptables ile yapabilirsiniz.

18,740 Okunma Henüz yorum yapılmamış 18/05/2011 11:57:30 24/10/2014 11:51:18

Smooth Wall İle Ağ Protolü Yasaklamak

smootwall ile ağ üzerinde kullanılan Remote access, File transfer, Email and News, Instant Messaging, Multimedia, Gaming, Web gibi protokollerden dilediğinizi yasaklayabilirsiniz.

17,205 Okunma Henüz yorum yapılmamış 10/08/2012 12:10:56 24/10/2014 12:06:40

SmoothWall Express Kullanımı

SmoothWall Express Menüleri ve Kullanımı

17,087 Okunma Henüz yorum yapılmamış 13/10/2011 13:04:34 24/01/2014 13:06:24

Icop Add On server Kurulumu

IPCop tan daha iyi verim alabilmek için addon server kurup diğer addonları (eklentileri) kurmanız gerekiyor.

16,969 Okunma Henüz yorum yapılmamış 02/05/2011 11:44:35

Smoothwall ile Transparent Olmayan Proxy Kullanmak

Genel olarak transparent proxy kullanılsada, transparent olmayan proxy daha gelişmiş içerik filitrelemesi yapmaktadır. Aynı zamanda UltraSurf gibi HTTPS üzerinden webe çıkan uygulamalarda engellenmektedir.

16,720 Okunma Henüz yorum yapılmamış 17/10/2011 12:51:44 24/10/2014 11:52:42

Cop Filter Eklentisi

İçerisinde Clamav ve Fprot virüs tarayıcıları olan ve spam maillere kadar filitreleyen bir ipcop eklentisi

16,412 Okunma Henüz yorum yapılmamış 31/05/2011 14:39:30

URLFilter Eklentisi

SmoothWall ve IpCop için kurul aynı sadece kaynak dosyalar farklıdır...

16,114 Okunma Henüz yorum yapılmamış 31/05/2011 15:44:45

SmoothWall Express 3.1 Kurulumu

Açık Kaynak Kodlu Firewall Projesi SmoothWall Express 3.1 Kurulum Bilgileri

16,087 Okunma Henüz yorum yapılmamış 13/01/2014 11:29:29 20/01/2014 11:32:27

Smootwall ile Ultrasurf Engellemek

Ultrasurf, Hotspotshild gibi https üzerinden veri çekebilen ve böylelikle web filitrelerini aşan yazılımlara karşı smoothwall ile başa çıkmanız mümkün.

14,181 Okunma Henüz yorum yapılmamış 04/04/2013 12:52:14 24/10/2014 11:54:49

smoothwall ile Web Hızını Adil Dağıtmak

Toplam internet hızınızı var olan bilgisayarlarınıza adil olarak paylaştırmak için smoowwall Download throttling ayarlarını kullanabilirsiniz.

12,663 Okunma Henüz yorum yapılmamış 24/01/2014 11:23:13 11/04/2014 11:25:07

Iptables ile Web Filitreleme

iptables ile youtube.com, facebook.com gibi bazı özel adresleri nasıl engelleyebilirsiniz?

12,403 Okunma Henüz yorum yapılmamış 20/02/2014 13:11:40 24/10/2014 11:48:37

Smoothwall Ayar Detayları

Çeşitli smoothwall sorunları için çözümler

11,644 Okunma Henüz yorum yapılmamış 11/02/2014 14:54:15 02/12/2015 14:54:34

Pfsense Squid ve SquidGuard Paketlerinin Kurulması

Makalemizin bu kısmında sizlere web filtreleme, kullanıcı bazlı kısıtlama yapabileceğimiz squid ve squidguard paketlerinin kurulumu ve yapılandırması hakkında bilgi vereceğim. Makale serimizin önceki bölümlerinde Pfsense hakkında yeteri kadar açıklama ve ön bilgi verdiğim için lafı fazla uzatmadan konun anlatımına geçmek istiyorum.

1,231 Okunma Henüz yorum yapılmamış 07/01/2020 10:56:37 07/01/2020 10:57:07

Pfsense Kurulum ve ilk Ayarlar

Sistem güvenliği ve kullanıcıların kontrol altında tutulması için piyasada bir çokfirewall ve benzeri gerek donanımsal gerekse yazılımsal olarak bir çok ürün bulunmaktadır. Pfsense ?de BSD tabanlıyazılımsal bir firewalldır. Ürününmsn yada program yasklama,web içerik filtreleme,kullanıcı kısıtlama ve vpn gibi çok kullanışlı özellikleri bulunmaktadır.

1,169 Okunma Henüz yorum yapılmamış 05/02/2020 11:17:43 06/02/2020 14:37:06

Smoothwall 3.1 ile Ip Yasaklama

Httpsli URLleri engelemek için bu sitelerin ipsini yasaklamak yeterli.

1,140 Okunma Henüz yorum yapılmamış 05/03/2020 13:50:44 05/03/2020 13:51:17

Pfsense ile Messenger Yasaklama

Pfsense konulu makalemizin serimizin bu bölümünde 5651 yasalı kanun gereği kullanıcılarımız internet log ?larının kayıt altına alınması konusunu inceleyeceğiz.

1,115 Okunma Henüz yorum yapılmamış 07/01/2020 10:53:20

Yükleniyor...