Erdal YAZICIOGLU

Everything ends up as electrical signal anyway

IPTABLES Temelleri…. Sızmalara karşı ücretsiz sistem bekçimiz.

with one comment

Çoğumuz sistemimizin güvenliğini  dışarıdan sızmalara karşı birçok değişik donanımsal yada yazılımsal araçlar ile sağlıyoruz.
Şirketler güvenlik amacı ile inanılmaz harcamalar yapıyor.
Güvenliğe gerek yok mu diyorsunuz? O zaman bu yazı sizin için değil 🙂

Linux çekirdeğinde gelen ücretsiz, ücretsiz olduğu kadar kaya gibi sağlam bir firewall vardır. IPTables…
İptables durumlu bir güvenlik duvarıdır. Yani daha önceki paketlere dayanarak kararlar verir. İptables kullanabilimeniz için Linux kernel’nız 2.4 ve üstü olması gerekmektedir.
IPTables için resmi adres http://www.netfilter.org dur.

İptables ile yanıltıcı adresleri engellemek:
Diyelim ki uzak makinelerinin kendi ağınızda yerel makine olarak görünmesini istemiyorsanız..Önce iptables kurallarımızın nasıl listelendiğini görelim…

[root@cehturk /]# iptables -L
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

Yukarıda kullandığımız iptables  -L komutu ile sistemizde daha önce tanımlamış olduğumuz tüm poliçeleri listeliyoruz.
Chain INPUT         Gelen paket poliçelerini
Chain Forward        Yönlendirilen paket poliçelerini
Chain Output         Giden paket poliçelerini listeler….

Örneğin elimizde Firewall olarak çalışan bir Linux makinemiz var. Üzerinde iki adet network kartımız var. Birinci network kartı dış dünya bağlantımızı yapıyor ve adresi 212.xxx.xxx.xxxx, ikinci network kartımız ise iç network ile haberleşmemizi sağlıyor ve adresi 192.168.0. Uzak ana makinelerin harici ara birime giden dahili IP adreslerinin yanıtılmalarını engellemek istiyorsanız;

[root@cehturk /]# iptables –A INPUT dış_bacak –s 192.168.0.0/24 –j REJECT

Eğer sistemizdeki tüm ağ trafiğini engellemek istiyorsanız(UYARI: Şitket ortamında denemeyin. Kendi yarattığınız özel bir test cihazında deneyin ve network dışında olduğundan emin olun )

[root@cehturk /]# iptables  -F
[root@cehturk /]# iptables  -A INPUT  -j REJECT (Gelen paketleri REJECT ediyoruz)
[root@cehturk /]# iptables  -A OUTPUT –j REJECT(Giden paketleri REJECT ediyoruz)
[root@cehturk /]# iptables  -A FORWARD –j REJECT(Yönlendirilmiş paketleri REJECT ediyoruz)

Yukarıda komutlar ile tüm ağ trafiğini engellemiş olduk…
Sunucumuza gelen tüm HTTP trafiğini engelleyelim…:)

[root@cehturk /]# iptables –A INPUT –p –tcp –dport www –j REJECT

Yada gelen HTTP trafiğini engelleyelim ama yerel HTTP trafiğine izin verelim

[root@cehturk /]# iptables –A INPUT –p –tcp  -i lo –dport www –j ACCEPT
[root@cehturk /]# iptables –A INPUT –p –tcp –dport www –j REJECT

Uzak bir sistemden sunucumuza erişimi engellemek için…

[root@cehturk /]# iptables –A INPUT  -s uzak_makine_IP –j REJECT

Uzak makineden gelen belirli bir servisi mesela SMTP servisini engellemek için

[root@cehturk /]# iptables –A INPUT –p –tcp –s uzak_makine_IP  –dport smtp –j REJECT

Iptables ile erişimi yasaklamak istediğiniz sitelerin IP adresleri yerine host adlarını kullanabilirsiniz. Örneğin google erişimini kapatalım, insanlar çıldırsın 

[root@cehturk /]# iptables -A OUTPUT -d http://www.google.com -j REJECT
[root@cehturk/]# iptables -L OUTPUT

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
REJECT     all  —  anywhere             nf-in-f103.google.com reject-with icmp-port-unreachable
REJECT     all  —  anywhere             nf-in-f99.google.com reject-with icmp-port-unreachable
REJECT     all  —  anywhere             nf-in-f147.google.com reject-with icmp-port-unreachable

IPTABLES KURALLARINIZI LİSTELEMEK
IPTABLE ile yarattığımız poliçeleri listelemek için iptables –L komutunu girin.

[root@cehturk/]# iptables -L
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
REJECT     all  —  anywhere             nf-in-f103.google.com reject-with icmp-port-unreachable
REJECT     all  —  anywhere             nf-in-f99.google.com reject-with icmp-port-unreachable
REJECT     all  —  anywhere             nf-in-f147.google.com reject-with icmp-port-unreachable

Daha ayrıntılı listeleme için –v anahtarını ekleyin…

[root@cehturk/]# iptables -L –v

Chain INPUT (policy ACCEPT 2891 packets, 348K bytes)
pkts bytes target     prot opt in     out     source               destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 566 packets, 57095 bytes)
pkts bytes target     prot opt in     out     source               destination;
0     0 REJECT     all  —  any    any     anywhere             nf-in-f103.google.com reject-with icmp-port-unreachable
0     0 REJECT     all  —  any    any     anywhere             nf-in-f99.google.com reject-with icmp-port-unreachable
0     0 REJECT     all  —  any    any     anywhere             nf-in-f147.google.com reject-with icmp-port-unreachable

FIREWALL KURALLARINIZI SİLMEK

İptables kurallarının her biri numaralar ile belirlenir…
Tüm kurallarınızı silmek için

[root@cehturk/]# iptables –F komutunu kullanın

Eğer 4 numaralı kuralı silmek isterseniz…

[root@cehturk/]# iptables –D INPUT 4 komutunu kullanın

FIREWALL KURALLARI EKLEMEK
İptables kural zincirlerine yeni bir kural eklemek için –I, değiştirme yapmak için ise –R anahtarlarını kullanın…
Örneğin kural tablomuzun 4.cü konumuna yeni bir kural eklemek istiyoruz…

[root@cehturk/]# iptables –I INPUT 4  ………..kural………

Bu konutu girdikten sonra 4.cü konumda bulunan eski kural 5.ci konuma, 5.ci konumda bulunan kural 6.cı konuma kayacaktır. Yani basit mantık ile N+1 kuralı…

FIREWALL YAPIMIZI KAYDETMEK

Bu kadar iş yaptık…Artık ayarlarımız kayıt edelim…
Ayarlarımızı /etc/sysconfig/iptables dosyasına kayır ediyoruz…
[root@cehturk/]# iptables-save >/etc/sysconfig/iptables

İptables-save komutu kurallarınızı sırası ile iptables-restore komutunun okuyabileceği metin dosyası formatında kayıt eder…

FIREWALL YAPILANDIRMANIZI GERİ YÜKLEMEK….

[root@cehturk/]# iptables-restore </etc/sysconfig/iptables

komutunu girin ve yüklemenizin tamamlandığını

[root@cehturk/]# iptables –L
komutu ile onaylayın…

Bir sonrraki yazıda IPTables ile log tutma ve basit fakat çalışan bir IPTables kuralı yaratıyor olacağız…

Hepimize güvenli günler… 🙂

Written by Erdal Yazicioglu

27 Mayıs, 2007 7:42 pm

IT Security kategorisinde yayınlandı

Bir Yanıt

Subscribe to comments with RSS.

  1. harbi ellerine saglık ama bu yazdığınız komutların biraz mantığını akılda kalıcı şekilde bana verebilirisniz? eger dokumanınız varsa tabi teşekkur ederim paylaşımınız için
    Kolay gelsin H. OKUMUŞ

    huseyin

    11 Kasım, 2008 at 12:28 pm


Yorum bırakın