IPTABLES Temelleri…. Sızmalara karşı ücretsiz sistem bekçimiz.
Ç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… 🙂
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