Türkiye'deki alternatiflerine nazaran ucuz ve performanslı olması ADSL'yi hemen cazip hale getirdi. Tabi bununla birlikte pek çok yeni terim de hayatımıza girdi. Şöyle bir senaryo yazalım. ADSL modem almaya gittik. Bir baktık üzerinde Yönlendirici (Router), ateş duvarı (firewall) gibi terimler yazıyor. Bilgisayarımıza bağladık yok IP vereceğiz ağ geçidi (gateway) yazacağız derken ortalık biraz karıştı. İlk bakışta pek önemsemedik. İnternete bağlanayım yeter dedik. Peki, bunlar nedir? Bu yazıda merak edenler için temel ağ bileşenlerini kısaca açıklamaya çalışacağız. Burada anlatılan bazı terimler havada kalabilir. Onlar üstünde pek durmayın. Bilgisayarlar arasındaki iletişim başlı başına bir uzmanlık işidir bu yüzden şimdilik sadece öyle bir şey olduğunu bilmek yeterli.
Yönlendirici (Router)
Yönlendiriciler (Router) farklı ağlar (network) arasında IP/IPX/Appletalk vs gibi iletişim kurallarını (protocol) yönlendirmeye yarayan aletlerdir. Bununla beraber bazı iletişim kurallarını da yönlendiremezler. (Örneğin: Netbeui). Biz Internet ortamında IP iletişim kuralını (protocol) kullanırız. Zaten açılımı da Internet Protocol'dür. Yönlendiriciler donanım veya yazılım olabilirler. Donanım demişken gelişmiş yönlendiriciler üzerinde de bir yazılım yüklüdür. Bu basit bir gömülü yazılım da (firmware) olabilir, özel olarak üretilmiş bir işletim sistemide olabilir. Mesela Cisco yönlendiriciler üzerlerinde IOS (Internetwork Operating System) adında bir işletim sistemi mevcuttur. Bu tip gelişmiş yönlendiriciler üzerinde tıpkı bilgisayarımızdaki gibi bir anakart, işlemci, bellek gibi bileşenler bulunabilir.
Bir yönlendirici en az iki ağa bağlıdır. Çoğu zaman bunlar iki tane yerel ağ (LAN) ve iki tane geniş ağ (Geniş Ağ) veya yerel ağ ve servis sağlayıcı arasındaki ağ olur (evde kullandığımız basit ADSL yönlendiricilerimiz yerel ağımız ve Türk Telekom (servis sağlayıcı) arasındaki yönelendirici konumundadır). Yönlendiriciler yönlendirme işlemi yaparken NAT/PAT (Port Address Translation - Port Adres Çevirimi), Unicast yönlendirme, Multicasting, Demand-Dial gibi teknolojiler kullanırlar. Kısaca biz NAT'ı (Network Address Translation - Ağ Adres Çevirimi) birden fazla istemciyi (client) tek bir IP üzerinden Internete çıkarırken kullanıyoruz. Bunun terside olabilir. Evde kullandığımız ADSL yönlendiriciler genelde NAT yaparlar ancak bu NAT işlemi nasıl gerçekleşiyor olayına şimdilik girmeyelim.
İstek üzerine çevirim (Demand-Dial) ise herhangi bir istek geldiğinde başlayan yönlendirmedir. Bu yönlendirmede ISDN, çevirmeli ağ (dial-up) gibi teknolojiler kullanılır. İstek üzerine çevirim (Demand-Dial) genelde yedekleme amaçlı veya VPN geçişi sağlamak amacıyla kullanılır. Numara çevrilir, bağlantı kurulur ve yönlendirme başlar.
Son olarak kısaca Unicast yönlendirme için iki farklı nokta arasında olan multicast içinse bir noktadan çıkıp belli noktalara dağılan yönlendirme diyebiliriz. Daha başkaları da var ama yönlendirme teknolojileri üzerinde fazla durmak istemiyorum. Yoksa yönlendirici nedir onu unutacağız.
Yönlendiriciler iki veya daha fazla ağın birleştigi yer olan ağ geçidine (gateway'e) yerleştirilir. Ağ geçitleri mutlaka yönlendirici olmak zorunda değildirler. Ağ geçidi konusunda daha ayrıntılı bilgiyi ilgili başlıkta vereceğiz. Yönlendiriciler paketin gideceği yeri IP başlıklarından (header) anlarlar. Diğer özelliklere de bakarlar ama şimdilik bunları bilmek yeterli. Üzerinde bulundurduğu yönlendirme tablolarından (Routing Table - Hangi IP'nin hangi ağda olduğunu ve o ağa nereden gidileceğinin bilgisinin tutulduğu tablolardır) istenilen adresi bulurlar ve en iyi, en verimli, en hızlı, en kısa yolu bulmak içinde RIP,RIPv2,IGRP, IGRP, OSPF gibi iletişim kuralları kullanırlar. Kendileri ile haberleşmek için ICMP (Internet Control Messaging Protocol - İnternet Denetim Haberleşme İletişim Kuralı) gibi iletişim kuralları kullanırlar. Örneğin çoğu kişi için tanıdık olan "ping" komutu ICMP iletişim kuralını kullanır.
Ağ geçidi (gateway) başka bir ağa geçiş hizmeti veren bir noktadır. Büyük şirketlerde genelde ağ geçitleri bir istemciyi (client) internet ortamına yönlendirme görevi üstlenirler. Bu durumda ağ geçidi bir vekil (Proxy) sunucu veya bir ateş duvarı (firewall) olabilir.
Ağ geçitleri yönlendiriciler ile de ilgilidir. Yönlendiricilerde paket başlıklarına ve yönlendirme tablolarına bakarak geçişi sağlarlar. Ayrıca yönlendiriciler veya Ateş duvarları VPN ile geçişi sağlayabilir. Bu durumda ismi VPN Ağ Geçidi olacaktır veya bir e-postalarımızın geçtiği SMTP sunucusu olabilir. Bu seferde ismine SMTP ağ geçidi diyeceğiz. Vekil (Proxy) sunucuları üzerinden internete çıkabiliriz. Yine bizim ağ geçidimiz olurlar.
Bu örnekleri vermemin sebebi ağ geçidinin bir kavram olduğunu anlatmak. Biz farklı bir ağa nereden ulaşıyorsak orası bizim ağ geçidimizdir. Evde kullandıgımız ADSL yönlendiricimiz, sayesinde internete çıktığımız ağ geçitlerimizdir, aynı zamanda bir yönlendiricidir. Başlat/çalıştıra gelip "cmd" yazdığımızda gelen komut isteminde "ipconfig" yazarsak orada varsayılan ağ geçidi yanında ADSL yönlendiricimizin IP adresinin yazdığını görebiliriz.
Sonuç olarak ağ geçitlerini bulunduğumuz yerden farklı bir yere giderken kullandıgımız çıkış kapısı olarak düşünebiliriz. Bu çıkış kapısının vekil sunucu, ateş duvarı veya yönlendirici falan olması hiçbir şeyi değiştirmez. Bu arada not olarak söyleyeyim ağ geçitleri farklı ağlar arası geçişin yanında farklı iletişim kurallarının da (protocol) birbiriyle anlaşmasını sağlayan noktalar da olabilirler.
Ateş duvarları ağın içinden veya dışından gelen yetkisiz erişimleri engelleyen, süzen ve izin denetimi sağlayan yazılımlar veya donanımlardır. Ateş duvarlarını yazılımsal, donanımsal veya her ikisinin de bir arada oldugu gruplara ayırabiliriz. Aslına bakarsanız donanımsal olanların üstünde de bir çeşit gömülü yazılım (firmware), BIOS vs ismi altında yazılımlar çalışmaktadır.
Ateş duvarı deyince sadece bizi dışarıdan gelen saldırılara karşı koruyan birşey düşünmemek gerekir. Gelişmiş ateş duvarları bunların dışında NAT (Ağ Adres Çevrimi), VPN (Virtual Private Networking - Sanal Özel Ağ) gibi teknolojileri de bize sunarlar. Fakat şimdilik bu konulara girmeyeceğiz.
Koruma sağlamak için çeşitli ateş duvarı tipleri/teknolojileri vardır. Bunlardan en çok kullanılanları şunlardır;
Uygulama Katmanlı Ateş Duvarı - Application Level Firewall
Bu tip ateş duvarları içeri veya dışarı gidecek OSI modelinde uygulama (application) katmanında çalışan belli iletişim kurallarına bakarlar (OSI modeli ağ ortamında bilgisayarların birbirleriyle haberleşirken kullandıkları yedi katmanlı bir standarttır). Programcılar ve ağ cihazlarını üreten firmalar bu standarta uyarak ürünleri bize sunarlar. İsteseler uymazlar da ama o zamanda standart dışında kalacakları için yaptıkları bir işe yaramayacaktır. OSI modelini daha fazla uzatmayalım. Başka bir makalede yedi katmanı da detaylı anlatırım. Konumuza dönelim. FTP,HTTP,SMTP,POP3,IMAP,TELNET,FINGER,DNS.... Uygulama katmanında çalışan iletişim kurallarından bazılarıdır.
Yazılım dış ağdaki (Internet) sunucuya bağlanmak isteyecektir ve 80 numaralı portu hedef olarak gösterecektir. Bu paket ateş duvarına geldiğinde tamam iyi güzel paket 80 numaralı porta gidiyor ama içinde HTTP var mı yok mu ona bakar. Varsa HTTP'nin içinde istemediğim bir şey var mı yok mu ona da bakabilir.
İstemciler bunu yapabilmek için bir yazılım kullanırlar. Bu yazılımda IP paketi içerisine kendisi ile ilgili bilgiyi yerleştirir. Bu sefer yönlendirici bölümünde bahsettiğimiz gibi IP başlığına değil de uygulama başlığına (application header) koyar. Ateş duvarı da IP paketini açar bakar ve bu başlık ile ilgilenir (Bütün ateş duvarları paketleri açıp içlerine bakarlar. Sadece baktıkları yerler veya kullandıkları teknolojiler farklılık gösterir). Bu tip ateş duvarlarını MSN'yi dışarıya engellemek için kullanılabiliriz.
Katmanİletişim Kuralları ve Yapılan İşler7.Uygulama (Application)HTTP, DNS, FTP, TFTP, BOOTP, SNMP, POP3, SMTP, MIME, NFS, FINGER, TELNET, SMB6.Sunum (Presentation)Şifreleme varsa burada gerçekleşir.5.Oturum (Session)NetBIOS, Names Pipes, Mail Slots, RPC4.TaşımaTCP, ARP, RARP, SPX, NWLink, NetBIOS, NetBEUI3.AğIP, IPX (Yönlendiriciler burası ile ilgilenir)2.Veri BağlantısıMantıksal bağlantı kontrolu : 802.1,802.2
Media Access Control(MAC) : 802.3CSMA/CD (Ethernet) 802.5 Token Ring1.FizikselIEEE 802,IEEE 802.2,ISDN
Burada siz MSN'de A harfine bastınız diyelim. Dünyanın her yerinde yediden bire kadar olan sıra izlenir. Bire gelindiğinde A harfiniz artık elektriğe dönüşmüştür ve karşı tarafa gönderilir. Karşı taraf da birden yediye kadar olan sırayı izler ve karşısında A harfini (uygulama katmanında) görür. Her katman bir üst veya alt katman ile ilgilenir. İki üstü ile ilgilenmez. Bir sıra izlenmelidir. İletişim kuralları (protocol) ve yapılan işlemler sadece örnek olsun diye yazılmıştır. Bunların dışında daha pek çok işlem ve iletişim kuralı vardır.
Bu tip ateş duvarları IP iletişim kuralını (protocol), IP adresini ve port numarasını denetleyen eden bizim tarafımızdan belirlenen bazı kurallar (rule) içerirler. O yüzden ayarlarını çok iyi yapmamız gerekmektedir. Diğer türlere nazaran daha zahmetlidir. Bu tip ateş duvarları paketlerin uygulama olup olmadığıyla değil ağ tarafı ile ilgilenirler. IP paketini açıp IP başlığına yani kaynak (source) hedef (target), iletişim kuralı, port vs bakarlar.
Bunun bir kötü tarafı vardır. Örneğin ağ sunucunuz var diyelim. Her şeyi engelleyip sadece web trafiğini açarsınız. Buraya kadar her şey güzel. Herkes web sunucunuza erişiyor. Başka hiçbir şey yapamıyorlar ama sizin web sunucunuza saldıran da erişiyor gezinti yapan da. Bunu ayırt edebilmesi için IDS (Intrusion Detection System - Saldırı Denetleme Sistemi) veya IPS (Intrusion Prevention System - Saldırı Önleme Sistemi) özelliginin olması gerekir. Paket süzen ateş duvarları bu farkı algılayamazlar. Ayrıca bu tip ateş duvarları stateful packet inspection (ip paket denetleme) yapamazlar. Yani paketlerin gerçekten istenilen iletişim kuralı (protocol), port ve ip den gelip gelmediğini anlayamazlar. Biraz daha açmak gerekirse paketin daha önceden kurulmuş bir bağlantıdan mı geldiğini anlayamazlar. Eklediğimiz kural ne diyorsa ona bakarlar. Yani bu tip ateş duvarına "sadece dışardan gelen paketlere izin ver ama bağlantı daha öncedenkurulmuş olsun" diyemiyoruz.
Bu biraz kafa karıştırıcı olabilir. Burada şunu anlamamız gerekiyor. Mesela A ve B makinası TCP bağlantısı kurduğunda üç yollu el sıkışma (3-way handshake) diye bir işlem gerçekleşir. Basit olarak anlatacak olursak, bu işlemde A makinası B makinasına (1)SYN paketi gönderir. B makinası karşılık olarak (2)SYN/ACK gönderir. Ondan sonra A makinası B'ye (3)ACK paketi gönderir ve bağlantı kurulmuş olur. Siz bilgisayarınızda başlat/çalıştır a "cmd" yazıp komut isteminde "netstat -an" yazarsanız gördüğünüz "ESTABLISHED" bağlantılar bu işlemin gerçekleştigini göstermektedir. Daha fazla ayrıntıya girmek istemiyorum. Sonuç olarak herhangi bir A makinası böyle bir işlem olmadan paket süzen bir ateş duvarının zaafından yararlanabilir. Mesela saldıran biri durmadan SYN gönderebilir. IP yanıltma (spoofing) yapabilir.
Bunlar paket süzen ateş duvarları gibilerdir ama daha akıllılardır. 90'larda Checkpoint firması tarafından geliştirilmiştir. Zamanla bir standart haline gelmiştir. OSI modelinde ağ katmanına ve iletim katmanına bakarlar (bazen tüm paketi daha iyi incelemek için üst katmanlara da bakarlar).
Örnek verecek olursak yine bir ağ sunucunuz var diyelim. Siz kural eklersiniz ve kullanıcılar sunucuya bağlanır. Bu noktada bu tip ateş duvarları gelen isteğin gerçekten bağlantı kurulacak IP olup olmadığına, iletişim kuralına, kaynak ve hedef portlarına bakarlar. Ondan sonra üç yollu el sıkışma (3-way handshake) gerçekleşir ve bağlantı kurulur. Mesela saldırgan yanıltma (spoofing) yapıyorsa (yani kendi ip adresini, iletişim kuralını veya portunu olması gerektiğinden farklı gösteriyorsa) bunu anlarlar ve karşı tarafa SYN/ACK göndermezler ve paket karşı tarafa herhangi bir bilgi göndermeden düşürülür (Drop). Bu olmasa ne olurki diyeceksiniz. Mesela eğer böyle bir şey olmazsa saldırgan on binlerce yanıltıcı paket gönderip sizin ağ sunucunuzu gelecek gerçek SYN paketlerine SYN/ACK gönderemez hale getirebilir. Sonuç olarak kimse sunucuya erişemez.
Yine de bu ateş duvarları hala iyi ve kötü trafiği algılayamazlar. IDS veya IPS gereklidir. Bu noktada IDS veya IPS'inde tabiri caizse kul yapımı olduğunu belirtmek gerekiyor. Yani bunlar bilmedikleri kötü trafik için bişey yapamazlar. Bazı firmalar kendi IDS veya IPS sistemlerinin akıllı olduklarını ve bilinmeyen saldırılara karşı önlem alabildiklerini iddia etseler de ne kadar başarılı olduğu konusunda şüphe duymak gerekir. IDS/IPS demişken ateş duvarı ile ilgili bir teknoloji daha var. Buna da Deep Packet Inspection(Derin Paket İnceleme) diyoruz. Bu IDS/IPS ile tümleşik çalışan bir teknolojidir. Şimdilik bu konuya değinmeyeceğiz. Durum denetimi yapan (Stateful) ateş duvarına tanıdık bir örnek verecek olursak Windows'umuzun o basit ateş duvarı bu türdendir
Anlatacak daha çok şey var ama konuyu fazla uzatmaya gerek yok. Bu yazının amacı aklınızda yönlendirici, ağ geçidi ve ateş duvarı konusunda bir fikir oluşturmaktı. Daha fazla ayrıntıya ihtiyacı olan varsa THGTR forumlarında sorularına cevap arayabilirler.
Sonuç olarak ev kullanıcılarına gelecek olursak. Evde bilgisayarımızda kullandığımız yazılımsal ateş duvarları genelde bunların hepsini bir arada bulundururlar veya birkaç tanesini içlerinde bulundururlar. Zaten ürünün özelliklerine baktınızda görürsünüz uygulama denetimi yaparım, durum denetimi (stateful) yaparım, IP kuralları ekleyebilirsiniz vs. Bende her şey var bana bişey olmaz derler. Çok beklenmedik bir terslik olmadıkça ve ayarlarınız düzgün olduğu sürece buna katılabilirim.
ADSL yönlendiricilerimize gelince orada ufak bir ateş duvarı bilmecesi mevcut. Bazıları bende ateş duvarı var derken ADSL yönlendiricilerimizdeki NAT özelliğini içeriden bir bağlantı olmadığı sürece dışardan gelenleri engellediği için ateş duvarıymış gibi öne çıkarıyorlar. Ateş Duvarı ile NAT ayrı ayrı şeylerdir. Buraya dikkat etmek gerekiyor. Gerçekten ateş duvarı olanlarda var tabi ki. Bunlarda genelde paket süzme yapıyorlar. Uygulama katmanlı olanları da mevcut.
Bu noktada evde kullandıgımız ateş duvarını da kullanmayı bilmiyorsak oda bir işe yaramaz. Ona hangi kuralı ekleyeceğimizi, hangi uygulamaya izin verecegimizi bilmedikten sonra olmaz. Bir virüs bulaştı diyelim. Ateş duvarı uyarı verdi. İnternete bağlanmak isteyen bir uyugulama var izin vereyim mi vermeyim mi? Sizde bunun ne olduğuna dikkat etmeden izin verirseniz ne kadar ateş duvarınız olsa da bir işe yaramaz.
Bu arada bu işi kötü niyetle yapanlar evde kullandığımız yazılımsal ateş duvarlarına (kişisel ateş duvarları-personal firewalls) yakalanmamak içinde sızma (leaking) gibi yöntemler kullanmaktadırlar. Bu sayede ateş duvarını etkisiz hale getirip istediklerini yapabilmektedirler. Ateş duvarı üreticileri de buna karşı önlemlerini almaya devam ediyorlar tabi ki.
Internet'in ülkemizde yaygınlaştığı şu günlerde internette geçirdiğimiz vakit de artmakta. Artık bilgisayarlarımızı yalnızca bir oyun aracı değil özel işlerimizi, alış verişimizi, banka aktarımlarını hatta işimizi yaptığımız para kazandığımız cihazlar olarak kullanmaktayız. Sonuç olarak artık hayatımızın önemli bir parçası haline geldiler. O yüzden kullandığımız bu cihazlara iyi bakmak, korumak, nasıl haberleştiklerini öğrenmek gerekmektedir. Yazıda anlattıklarım yönlendiricinin, ağ geçidinin, ateş duvarının sadece aklınızda bir fikir oluşturması amacı ile yazılmıştır. Hepsi tek başlarına onlarca sayfa tutar. Elimizin altında internet gibi bir kaynak varken değerinin farkına varalım.