Firewall nedir, Nasıl kurulur? (Linux) 1-Firewall nedir?
Firewall tek bilgisayarınıza veya yerel ağınıza internetten veya diğer ağlardan erişimi kısıtlayıp bilgisayarınızın veya yerel ağınızın internetten veya diğer ağlardan gelecek saldırılara karşı koruyan bir sistemdir. Firewall İnternet ile Yerel ağınızın arasında bulunur. Bu sayede internetten gelen ve internete giden paketleri mutlaka firewall kurulu bilgisayardan geçmek zorundadır. Bu sayede gelen ve giden paketleri kontrol edebilir. İstediğine izin verip , istediğinizi engelleyebilirsiniz. Bu kısıtlama paket filtreleme yöntemi ile yapılır
2-Paket Filtreleme:
Paket filtreleme Linux kernel(Çekirdek) içerisine gömülmüş durumdadır ve TCP/IP protokolünün Network Layer(Ağ Katmanı) da çalışır.Bu sayede sadece firewall kurallarının izin verdiği paketlerin geçişine izin verilir. Paketler tipine ,kaynak adresine(source address), hedef adresine (destination address) ve portlara göre filtrelenir. Paket Aynı zamanda Router görevi yapan firewall makinesine geldiği zaman paketin başlık(header) kısmı açılır ve paket başlığındaki bilgilere göre paket e izin verilir veya engellenir. Paketin başlık kısmında aşağıdaki bilgiler bulunur.
* Kaynak(source) IP adresi * Hedef (Destination) IP adresi * TCP/IP Kaynak Portu * TCP/IP Hedef Portu * ICMP Mesaj Türü * Protokol Türü
İki türlü Firewall dizayn vardır.
1- İzin verilen trafik dışındaki tüm trafiği engellemek 2- Kapatılan trafik dışındaki tüm trafiğe izin vermek.
1. Durum en iyi firewall dizayndır. Burada nelere izin verilip verilmediği bellidir. ve dahiliniz dışında herhangi bir pakete izin verilmez.
2. Burada güvenlik açığı olabilecek uygulamaları tek tek kapatmak zorundasınız ve diğerlerine izin vermelisiniz. Bu durumda bazı gözden kaçırdığınız durumlar olabilir. Bu yüzden güvenlik açısından çok iyi bir yöntem değildir. Biz burada 1. yöntemi uygulayacağız.
3- Ipchains Firewall : Ipchains, Linux 2.1.102 kernel dan itibaren kullanılmaya başlayan tüm linux çeşitlerinde bulunan ücretsiz bir firewall çeşitidir. ve binlerde $ verilip alınan diğer firewalların yaptığı (IP bazında ,Ağ bazında ,protokol bazında, port bazında filtreleme, port yönlendirme, gelen paketi reddetme) gibi tüm işleri yapmaktadır.Ama ne yazık ki ipchainsi bilmeyenler için, ipchains sadece ücretsiz basit bir firewall programından ibaret görülmektedir. Günde onlarca sitenin HACK edildiği günümüzde ,İnternette güvenliğin ne kadar önemli olduğuna anlatmaya gerek yok. Bu belgede ipchains ile neler yapılacağı anlatılacaktır ve örnek bir ağ yapısı ele alınarak ipchains firewall dizaynı yapılacaktır. Bu dokümanın binlerce $ vermek istemeyen veya veremeyen firmalar veya kişiler için sistemlerini korumakta yardımcı olacağını ümit ederim.
Linux 2.1.102 kernel dan önce ipfwadm isimli firewall vardı. Linux kernel liniz 2.0 ise ipchains kullanmak için yama(patch) yapmanız gerekiyor. Ama tavsiyem, şu an en son kararlı kernel 2.2.17 yi Linklerin Görülmesine İzin Verilmiyor Linki Görebilmek İçin Üye Ol veya Giriş Yap adresinden indirip derlemeniz olacak . Burada baştan Kernel derleme anlatılmayacaktır. sadece kernel a ipchains destegi(Yoksa !) nasıl verileceği anlatılacaktır.Eğer 2.1.102 kernel dan yukarısını kullanıyorsanız. ve /proc/net/ip_fwchains dosyası var ise ipchains kurulu demektir.Kernel derlemenize gerek yoktur. Eğer Kernel de ipchains destegi yoksa ve ipchains yüklü değilse Linklerin Görülmesine İzin Verilmiyor Linki Görebilmek İçin Üye Ol veya Giriş Yap adresinden ipchains indirip kurun ve kernelinize
Network firewalls (CONFIG_FIREFALL) [N] Y IP:Firewalling (CONFIG_IP_FIREWALL) [N] Y IP:TCP syncookie support (CONFIG_SYN_COOKIES) [N] Y
IP:Masquerading (CONFIG_IP_MASQUERADE) [N] Y IP:ICMP Masquerading (CONFIG_IP_MASQUERADE_ICMP) [N] Y
yukarıdaki destekleri vererek kernel i tekrar derleyiniz. kernel derlemek için /usr/src/linux dizin altında sıra ile # make dep && make clean && make bzImage && make modules && make modules_install komutunu veriniz ve #cp /usr/src/linux/arch/i386/boot/bzImage /boot komutu ile kopyalayın ve
xxx Linux un bulunduğu root dizini ifade etmektedir. yazdıktan sonra # lilo komutunu verdikten sonra linux reboot edin.
4: Ipchains Komutları:
İlk olarak # kullanıldığını da bunun Linux konsolu oldugunu ve Linux e root kullanıcısı ile girildigi kabul edilecektir. Kullandığınız ipchains versiyonunu ögrenmek için
Ipchains te paketler için ön tanımlı olarak 3 grup vardır.
input: (Giriş) Makinanızanın arayüzüne gelen paketller.
output: (Çıkış) Makinanızın ara yüzünden çıkan paketler.
forward: (Yönlendirme) Makinanızın bir arayüzünden gelip , diğer arayüzüne geçen paketler (MASQUARING gibi)
bunların dışında kullanıcıların kendilerine grup tanımlayabilirler. Kendi grubunuzu tanımlamak için
# ipchains -N grubadı komutu ile belirtilen grub adında bir grub oluşur.
Ipchains le kullanılan parametler şu şekildedir. -A : (Append) Yeni bir kural ekleme -D : (Delete) Tanımlanmış bir kuralı silme -R : (Replace) Bır kuralı değiştirmek için kullanılır. -I Insert) Araya kural eklemk için kullanılır -F Flush) Bir kurallar tablosunun tamamen silinmesini sağlar(tablonun içeriği sıfırlanır). -X : içeriği sıfır olan kural grublarını (input , output, forward, kullanıcının tanımladıkları)siler. -N : (New) Yeni bir kural grubu oluşturur. -L : (List) Tanımlı kural grublarındaki kuralları listeler -P : (Policy) ipchains in ön tanımlı kural grublarının kurallarını ayarlar.
-i interface(arayüz) :Hangi arayüzün kullanılacağını belirtir. -s kaynak (source) :Paketin geldiği kaynağın IP adresi veya ağ grubunu belirtilir. -d hedef (destination) :Paketin gideceği adres veya adres grubu -p protokol(protocol) :Paketin kullandığı protokol adını belirtir(tcp udp icmp gibi). -j (jump) :Paket ile ilgili hangi kararın verileceğini belirtir. -l log(kayıt) :Paket ile ilgili bilgilerin log dosyasına yazılmasını sağlar -v (verbose) :Paket ile ilgili detaylı bilgi verir. ! u parametre kuralın değilinıi (tersini) belirtilir.
Firewall makinamızda Paket için aşagıdaki Karar mekanizmaları(Policy) işler.
ACCEPT: Paketin kabul edildiğini belirtir. DENY : Paketin kabul edilmediğini belirtir. Paket blok edilir ve paketi gönderen tarafa hiç bir şey gönderilmez. REJECT: Paket reddedilir ve paketi gönderen tarafa paketin reddedildiğine dair bilgi gönderilir. MASQ : Paketin maskelendigini belirtir. (MASQUARING de kullanılır) REDIRECT: Bir porta (gelen , giden, yönlendirilen) paketin başka bir yerel porta yönlendirilmesi işini yapar.(Genelde Web isteklerini yerel makinadaki proxy portuna yönlendirmek için kullanılır.), Portlarla ilğili olarakta. 1:1000 ifadesi 1 ile 1000 arasındaki portları tanımlayabilirsiniz. 1500: ifadesi ise 1500 ile 65535 (En sonuncu port) demektir.
Bu komut eth0 arayüzüne(-i eth0), 193.12.3.100 IP adresinden (-s 193.12.3.100) gelen (-A input) , tcp (-p tcp) protokolunu kullanan ve 212.65.128.100 IP li (-d 212.65.128.100 )bilgisayarın 80 portuna gelen paketleri kabul et(-j ACCEPT) manasına gelmektedir.
# ipchains -A output -s 212.65.128.100 25 -d 0/0 -p tcp -i eth0 -j ACCEPT Bu komut ise eth0 arayüzünü kullanan 212.65.128.100 IP li makinanın 25 portundan gelen ve herhangi bir yere (0/0) giden tcp protokolu kullananan paketlerin çıkışına (-A output) izin ver (-j ACCEPT) demektir.
#ipchains -A forward -s 0/0 -i eth1 -d 200.1.2.3 -p icmp -j ACCEPT Bu ifade ise herhangi bir yerden eth1 arayüzüne gelen ve 200.1.2.3 IP li makinaya giden tüm icmp protokolu paketlerini kabul et demektir.
DeJaWuEp
Konu: Geri: Firewall nedir, Nasıl kurulur? (Linux) C.tesi Ekim 04 2008, 02:42