Internetin belkemigi olan TCP/IP ile ilgili bazi temel bilgileri bilmeden ne dönüp bittigini anlamak zordur. Bu yüzden internet savaslari konusunda ayrintiya girmeden önce kisaca TCP/IP protokolüne deginmek istedim.
Bu konuda kisaca TCP/IP'nin ne oldugunu ve nasil çalistigini görecegiz. Burda verilen bilgiler temel düzeydedir ve ileride görecegimiz konulari daha kolay anlamaniza yardimci olacaktir.
1- Nedir TCP/IP
TCP/IP internette veri transferi için kullanilan iki protokolü temsil eder. Bunlar Transmission Control Protokol (TCP) ve Internet Protocol (IP). Ve bu protokoller de daha genis olan TCP/IP protokol grubuna aittir. TCP/IP'de bulunan protokoller internette veri transferi için kullanilir ve internette kullanilan her türlü servisi saglarlar. Bunlarin arasinda elektronik posta transferi, dosya transferi, haber gruplari, WWW erisimi gibi servisler TCP/IP sayesinde kullanicilara sunulmaktadir.
TCP/IP protocol grubunu ag seviyesi protokolleri ve uygulama seviyesi protokolleri olarak iki gruba ayirabiliriz.
Ag seviyesindeki protokoller genellikle kullaniciya görünmeden sistemin alt seviyelerinde çalisirlar. Örnek olarak IP protokolü kullaniciyla uzak bir makine arasindaki paket iletimini saglar. IP ag seviyesinde diger protokollerle etkilesimli olarak çalisarak paketlerin hedef adrese gönderilmesini saglar. Çesitli ag araçlari kullanmadiginiz sürece sistemdeki IP trafigini ve neler dönüp bittigini anlayamazsiniz. Bu araçlar agda gidip gelen IP paketlerini yakalayabilen sniffer'lardir. Sniffer'lar konusuna ileriki konularda ayrintiyla deginecegiz.
Uygulama seviyesi protokolleri sistemde daha üst düzeyde çalisirlar ve kullaniciya görünürler. Örnek olarak Dosya Transfer Protokolünü (FTP) verebiliriz. Kullanici istedigi bir bilgisayara baglanti isteginde bulunur ve baglanti yapildiktan sonra dosya transferi islemini gerçeklestirir. Ve bu karsilikli transfer islemleri kullaniciya belli bir seviyede görünür, giden gelen byte sayisi, meydana gelen hata mesajlari... gibi.
Kisaca TCP/IP internette veri transferini saglayan protokoller grubudur.
Burda TCP/IP'nin tarihçesine girmeyecegim söyleyecegim tek sey TCP/IP diger protokollere göre çok fazla avantaja sahip oldugu için çok kisa sürede en yaygin kullanilan protokol haline gelmistir. Artik internetin belkemigi haline gelen TCP/IP herhalde üzerinde en çok çalisilan ag protokolüdür.
Günümüzde artik TCP/IP sadece internet degil bir çok alanda kullaniliyor. Intranet'ler mesela TCP/IP kullanilarak olusturulmaktadir. Bu tip bir sistemde TCP/IP'yi kullanmak diger protokollere göre avantajlar içerir. En basitinden TCP/IP hemen hemen her türlü sistemde desteklendigi için çok kolay bir sekilde heterojen sistemler kurulabilir. Iste internette tamamen heterojen bir sistem oldugu için TCP/IP en uygun protokoldür.
TCP/IP protokolü günümüzde artik hemen hemen tüm isletim sistemlerinde desteklenmektedir. UNIX, DOS (Piper/IP ile), Windows (TCPMAN ile), Windows 95/98/2000/Me, Windows NT, Machintosh (MacTCP), OS/2, AS/400 OS/400 sistemlerinde TCP/IP destegi gelmektedir. Tabi her sistemin TCP/IP gerçeklemesi farkli oldugundan servis kalitesi de farklilklar gösterebilir. Ancak temel olarak sunulan servisler aynidir ve birbiriyle uyumlu olarak çalisirlar.
3.2- TCP/IP'nin Isleyisi
TCP/IP protokol yiginini kullanarak çalisir. (TCP/IP Stack) Bu yigin iki makine arasindaki veri transferini saglamak için gereken tüm protokollerin birlesmis bir halidir. Bu yigin kisaca en üstte "uygulama seviyesi", daha sonra "transport seviyesi", "ag seviyesi", "datalink seviyesi" ve "fiziksel seviye"'lerden meydana gelir. Bu seviyelerde en üstte yakin olan seviyeler kullaniciya daha yakindir, alta yakin olan seviyeler ise kullanicidan habersiz olarak çalisan seviyelerdir. Örnek olarak en üst düzey olan uygulama seviyesinde FTP, Telnet gibi programlari örnek verebiliriz. Bu programlari çalistirdiginizda diger sisteme bir baglanti kurulur ve veri transferi yapilir. Siz sadece yaptiginiz islemlerle ilgili sonuçlari ve olaylari görürsünüz ancak bir veri gönderdiginizde bu veri ilk önce sizin bilgisayarinizdaki bu TCP/IP protokol yigininda asagiya dogru inmek zorundadir. Yani uygulama seviyesinden, ftp'de verdiginiz bir komut mesela, transport seviyesine, ordan ag seviyesine ve en sonunda fiziksel seviyeye iner ve artik diger bilgisayara ulasmak üzere internet aginda yada yerel bir agda uzun yolculuguna baslar. Gidecegi makinenin fiziksel seviyesine ulasana kadar veriler genellikle bir yada daha fazla ag geçidinden geçerler. (tracert komutu belirli bir hedefe hangi geçitlerden geçerek gidilecegini veren komuttur) En sonunda diger makineye ulasinca yine uygulama seviyesine ulasincaya kadar, bu sefer karsida çalisan ftp sunucusuna, yine bu TCP/IP protokol seviyelerini bir bir yukari dogru asmak zorundadir.
Bu arada bu seviyelere ne gerek var diyebilirsiniz. Ancak bu seviyelerin her biri degisik bir görevi üstlenmektedir. Bir seviye fiziksel olarak verilerin gönderilmesi isini yaparken baska bir seviye verileri ufak paket dedigimiz parçaciklara bölerek iletisim isini üstlenir, baska bir seviye ise iletisimde meydana gelebilecek hatalari tespit eder. Bu sekilde tüm seviyeler bir uyum içinde çalisirsar ve her seviye karsi tarafta bulunan yine kendi seviyesindeki protokolle karsilikli iletisim içindedir. Daha yukarida yada daha asagidaki bir seviyede ne gibi bir isin yapildigina ve sonuçlariyla ilgilenmez.
3.2.1 Protokoller
Kisaca TCP/IP protokol yigininin nasil çalistigini gördük ve simdi kullanilan protokollere bir göz atalim.
Ag seviyesi protokolleri
Ag seviyesi protokolleri veri transferi islemini kullanicidan gizli olarak yaparlar ve bazi ag araçlari kullanilmadan farkedilemezler. Bu araçlar Sniffer'lardir. Sniffer bir cihaz yada bir yazilim olabilir ve ag üzerindeki tüm veri iletisimini izlemeye yarar. Bu araçlarin kullanilis maksadi agda meydana gelebilecek hatalari tespit etmek ve çözmektir. Ancak ileride de görecegimiz gibi sniffer'lar da hacker ve cracker'lar tarafindan kullanilan ölümcül makineler haline gelmistir.
Ag protokolleri arasinda önemli olarak Adres Çözümleme Protokolü (ARP), Internet Mesaj Kontrol Protokolü (ICMP), Internet Protokolü (IP) ve Transfer Kontrol Protokolü (TCP) protokollerini verebiliriz.
Kisaca bu protokollerin ne is yaptigina bir bakalim:
ARP protokolü: internet adreslerini fiziksel adrese dönüstürmek için kullanilir. Bir paketin bir bilgisayardan çiktiginda nereye gidecegini IP numarasi degil gidecegi bilgisayarin fiziksel adresi belirler. Iste bu adreste paketin gidecegi ip numarasi kullanilarak elde edilir. Ve bu islemden sonra paket hedef ip adresine sahip bilgisayara gitmek için gerekli yönlendirmelerle yolculuguna baslar. Bilgisayara takili olan ethernet kartlarinin bir ethernet adresi vardir. Ve bu adres IP adresinden farklidir. Bir paket makineden çiktigi anda gidecegi adres diger bir makinenin ag kartidir ve bu ag karti ile IP numarasi arasinda bir bag yoktur. Paket bu karta gidebilmesi için kartin fiziksel numarasini bilmek durumundadir.
ARP adres çözümlemek istedigi zaman tüm aga bir ARP istek mesaji gönderir ve bu IP adresini gören yada bu IP adresine giden yol üzerinde bulunan makine bu istege cevap verir ve kendi fiziksel adresini gönderir. ARP isteginde bulunan makine bu adresi alarak verileri artik bu makineye gönderir.
ARP protokolünün nasil çalistigini ve daha ayrintili bilgi isteyenler RFC 826 dökümanina bakabilirler.
Internet mesaj kontrol protokolü: ICMP protokolü iki yada daha fazla bilgisayar arasinda veri transferi sirasinda meydana gelebilecek hatalari ve kontrol mesajlarini idare eder. Bu nedenle ICMP ag problemlerini tespit etmek için çok önemli bir protokoldür. ICMP protokolü kullanilarak elde edebilecegimiz bazi sorunlar: bir bilgisayarin ayakta olup olmadigini kontrol etmek, ag geçitlerinin tikanik olup olmadigini kontrol etmek gibi...
ICMP protokolünde bilinen en yaygin ag araci ping'dir. ping programi karsidaki bir bilgisayarin çalisir durumda olup olmadigini kontrol etmek için kullanilir. Çalisma mantigi çok basittir, karsi bilgisayara echo paketleri gönderir ve geri gelmesini bekler. Eger paketler geri gelmezse ping hata mesaji verir ve karsi bilgisayarin aga bagli ve çalisir durumda olmadigi anlasilir.
Internet protokolü: IP protokolü TCP/IP protokol yigininda ag seviyesine aittir ve tüm TCP/IP protokol takiminin paket iletimi islemini saglar. Kisacasi IP verilerin internetteki iletisiminin kalbini olusturan protokoldür. IP paketi çesitli kisimlardan olusmaktadir. Paketin en basinda bir paket basligi vardir ve gönderilecek olan veriyle ilgili olarak gidecegi adres, gönderen adres gibi bilgileri içermektedir. Paketin geri kalan kismi ise gönderilecek veriyi içerir.
IP paketleriyle ilgili en ilginç sey bu paketler yolculugu sirasinda daha ufak paket boyutlari kullanan aglara rast geldiginde daha küçük parçalara bölünebilmesi ve karsi tarafta tekrar birlestirilmesidir.
IP protokolü ile ilgili daha fazla bilgi RFC 760 dökümanindan edinilebilir.
Transfer kontrol protokolü: TCP prtokolü interntette kullanilan ana protokoldür. Dosya transferi ve uzak oturumlar gibi kritik isleri saglar. TCP diger protokollerden farklidir. Güvensiz bir iletisimm ortaminda verilerin ayni sekilde hedefe ulasacagindan emin olamazsiniz. Ancak TCP gönderilen verilerin gönderildigi sirayla karsi tarafa ulasmasini saglayarak güvenli veri iletimini saglar.
TCP iki makine arasinda kurulan sanal bir baglanti üzerinden çalisir. Üç kisimli bir islemden olusur bu baglanti ve three-part handshake olarak bilinir. (TCP/IP three way handshake) TCP/IP üzerinde yapilan bazi saldiri tekniklerini iyi anlayabilmek için TCP'nin çalisma mantigini iyi anlamak gerekmektedir. Bu nedenle simdi bu baglantinin nasil olduguna bir bakalim:
Three-way handshake isleminde öncelikle istemci sunucuya port numarasiyla birlikte bir baglanti istegi gönderir. Istegi alan sunucu bu istege bir onay gönderir. En sonunda da istemci makine sunucuya bir onay gönderir ve baglanti saglanmis olur. Baglanti yapildiktan sonra veri akisi her iki yönde de yapilabilmektedir. Buna genellikle full-duplex iletisim denmektedir.
TCP ayni zamanda hata kontrol mekanizmasi da sagliyor. Gönderilen her veri blogu için bir numara üretilmektedir. Ve karsilikli iki makine de bu numarayi kullanarak transfer edilen bloklari tanimaktadirlar. Basarili olarak gönderilen her blok için alici makine gönderici makineye bir onay mesaji gönderir. Ancak transfer sirasinda hata olursa alici makine ya hata mesajlari alir yada hiç bir mesaj almaz. Hata olustugu durumlarda, oturum kapanmadigi sürece, veriler tekrar gönderilir.
TCP prtokolü ile verinin iki makine arasinda nasil transfer edildigini gördük. Simdi istemcinin isteginin karsi tarafa ulastiginda ne olup bittigine bakalim. Bir makine baska bir makineye baglanti istegi gönderdigi zaman belli bir hedef adresi belirtir. Bu adres bir IP adresi ve fiziksel adrestir. Ancak sadece bu adres te yeterli degildir, istemci karsi makinede hangi uygulamayla konusmak istedigini de belirtmek durumundadir. Örnek olarak siz bir sayfaya baglanmak istediginizde URL adres kismina www.guvenlikhaber.com adresini yazip baglan dediginiz anda browser bu adresteki bilgisayara bir baglanti istegi gönderir ve o makinede bulunan HTTP uygulamasiyla konusmak istedigini de belirtir. Simdi bu HTTP isteginizin karsi tarafa gittigi zaman neler olduguna bakalim.
inetd
inetd tüm daemon'larin anasidir. Daemon'lar sistemde devamli olarak çalisan ve diger prosesleri dinleyen programlardir. Microsoft DOS platformundaki terminate and stay resident TSR programlarina benzerler. (TSR genellikle virüsler tarafindan çok kullanilan bir yöntemdi. Virüs kodunun sürekli hafizada aktif olarak kalabilmesi için TSR metodu kullaniliyordu.) Daemonlar sistem açik oldugu sürece belli bir olayi dinlemek için sürekli çalisir durumdadirlar. Iiste süper sunucu olarak ta çagrilan inetd tüm bu daemonlarin büyük büyük babasidir.
Tahmin edebileceginiz gibi bir sistemde ne kadar çok daemon varsa o kadar çok sistem kaynaklari azalacaktir. Iste her türlü islemi gerçeklestirmek için bir daemonu her zaman çalisir durumda bekletmek ve sistem kaynaklarini yemek yerine bir tane daemon yazmislar. Bu da inetd daemonudur. inetd tüm ag isteklerini dinler ve bir istek geldiginde istege bakarak hangi servisle ilgili olduguna karar verir. Daha sonra da ilgili servisi sunan uygulamayi yükleyerek istegi bu uygulamaya yönlendirir. Örnek olarak bir FTP istegi geldigi zaman inetd FTP sunucusunu baslatir ve istege cevap vermesini ister ve kendisi de baska isteklere cevap vermek üzere dinlemeye devam eder.
inetd sadece UNIX üzerinde çalisan bir uygulama degildir. Windows ortaminda çalisan sürümlerini de piyasada bulmak mümkündür. Hummingbird'ün Exceed ürünü Windows ve OS/2 platformlari için inetd'yi sunmaktadir.
inetd programi normal olarak sistem açildiginda çalismaya baslar ve sistem yöneticisi tarafindan kapatilmadigi sürece sistem kapatilana kadar da çalismaya devam eder. inetd programinin çalismasi /etc/inetd.conf konfigürasyon dosyasi ile tanimlanir. inetd'nin hangi servisleri sunacagi bu dosyada belirtilir. Bu servisler FTP, Telnet, SMTP, Finger, Netstat.. gibi servislerdir.
portlar
TCP/IP ortaminda programlarin çalistirilmasi ve servisler genellikle istemci-sunucu tabanlidir. Her baglanti istegi için inetd bir sunucu çalistirir ve sunucu da istemciyle haberlesmeye baslar.
Bu islemi gerçeklestirebilmek için her servise (FTP, Telnet.. gibi ) bir numara verilmistir. Iste istemciler bu numaralari kullanarak karsi bilgisayardaki hangi uygulamayla konusacagini belirtir. Bu numaralar port numaralari olarak adlandirilir. Bir internet sunucusunda binlerce port olabilir. Ancak etkin bir kullanim için iyi bilinen ve her zaman kullanilan servislere standart port numaralari verilmistir. Sistem yöneticisi istedigi servisi istedigi port numarasina baglayabilir ancak normal olarak iyi bilinen port numaralari (well-known ports) kullanmak akillica olacaktir. Örnek olarak asagida bazi servislerin standart port numaralari verilmistir:
Dosya Transfer Protokolü (FTP)21Telnet23Simple mail transfer protokol (SMTP)25Gopher70Finger79HTTP80NNTP119
Tüm port numaralarini adresinden görebilirsiniz.
Simdi kisaca bu uygulamalara bir göz atalim:
Telnet: Telnet protokolü RFC 854 dökümaninda anlatilmistir. Telnet uzak sistemlere login olmak ve sistemde komut çalistirmak için kullanilir. Ankarada bulunan bir kullanici Istanbulda bulunan bir makineye telnet yaparak sanki makinenin basindaymis gibi komutlar çalistirabilir. Bir telnet oturumu açmak için UNIX komut satirindan yada DOS komut satirindan:
#telnet sunucu_adi
komutu girilir ve eger bu sunucuda telnet sunucusu çalisiyorsa kullanicinin karsisina login ekrani gelecektir. Bu ekranda kullanici adi ve sifresi girildikten sonra sisteme oturum açilacaktir. Telnet protokolü text tabanli olup UNIX sisteminde ve çogu sistemde dahili olarak gelmektedir.
Dosya Transfer Protokolü: FTP protokolü RFC 0765'de tanimlanmistir ve protokol spesifikasyonu RFC 114 dökümaninda anlatilmistir. FTP internette standart olarak dosya transferi için gelistirilmis bir protokoldür. Uygun ftp istemcileri kullanilarak ftp sunucularindan yararlanilabilir. UNIX ve Windows platformlarinda standart komut satiri ftp istemcisinin yani sira, Cute-FTP (Windows), FTP Explorer (Windows), FTPTool (UNIX) gibi üçüncü parti araçlari da vardir.
FTP istemcileri karsi tarafta bir FTP sunucusuyla konusurlar. Iste karsida istemci isteklerine cevap veren standart ftp daemonu FTPD'dir. Bu daemon UNIX sistemlerinde default olarak gelmektedir. Ancak diger sistemlerde de kullanilabilecek ftp sunuculari mevcuttur. Windows'ta WFTP, Frontpage, WAR FTP Daemon, NT'de Microsoft Internet Information Server, Machintosh'ta FTPD örnek olarak verilebilir.
Basit e-posta transfer protokolü: SMTP protokolü RFC 821 dökümaninda tanimlanmistir. SMTP protokolünün amaci etkili ve güvenli bir sekilde eposta iletimini saglamaktir. Kullanici SMTP destekleyen bir istemciyle SMTP sunucusuna bir istek gönderir ve iki yönlü bir baglanti kurulur. Baglanti kurulduktan sonra eger sunucu izin veriyorsa istemci MAIL komutlari göndererek eposta gönderme islemini yapabilir. (Internette kullandigimiz Netscape ve Explorer gibi browserlar genellikle SMTP sunucularini kullanarak mail gönderirler. Browser ilk kuruldugunda kullanici posta ayarlarinda verdigimiz SMTP sunucusunun adi mail göndermek için kullanilmaktadir)
SMTP'nin bu çok basit yapisinin yani sira bir çok güvenlik açiginin kaynagi olmustur. Bunun nedeni ise SMTP'nin çok fazla parametresinin bulunmasidir. Yanlis konfigürasyonlar güvenlik açiklarinin nedeni olmaktadir.
SMTP sunucusu UNIX sistemlerinde default olarak gelmektedir.
Gopher: Gopher servisi dagitilmis döküman paylasim sistemidir. Dökümanlar ve servisler sunucularda saklaniyor ve Gopher istemci programi kullaniciya bu dökümanlara bir hiyerarsik sekilde ulasma imkani sunuyor. Dosya ve dizin yapisi dökümanlari yerlestirme ve kullanma için uygun oldugu için daha çok bu yapiya benzetilerek tasarlanmis Gopher. Günümüzde HTTP'nin akil almaz gelisimi ve kullanim yayginligi nedeniyle bu servis artik kullanilmaz hale gelmistir. Gopher ile ilgili ayrintili bilgi RFC 1436 dökümanindan edinilebilir.
Hipertext transfer protokolü: Internette kullanicilarin sörf yapmasini saglayan HTTP herhalde tüm protokoller içinde en ünlüsüdür. HTTP protokolü RFC 1945 ve RFC 2068 dökümaninda anlatilmistir.
HTTP protokolü internetin kullanimini tamamen degistiren ve herkes tarafindan kullanilabilir bir hale getirmistir. HTTP protokolü de Gopher mantigiyla çalisir. Istem ve cevap seklinde bir çalisma mantigi vardir. Telnet gibi uygulamalar istemcinin login olmasini ve islemler devam ettigi sürece de bagli kalmasini gerektirmektedir. Ancak Gopher ve HTTPde böyle bir zorunluluk yoktur. Istemci istedigi zaman istedigi istegi gönderir ve sunucuda bu istege cevap verir. Bunu internet browserdan görmek mümkündür. Siz bir adresi ziyaret ederken aslinda o siteye bagli degilsinizdir o siteden bazi dökümanlar indirmis ve bunlari yerel olarak görüyorsunuzdur. Ancak bir linke tikladiginizda o sunucuyla baglanti kurulur ve bilgiler transfer eilir bu islemin isleyisini ekrandaki durum çubugundan gözleyebilirsiniz.
Tabi HTTP sunucularina baglanmak için HTTP protokolünü ögrenip bir istemci programi yazmadiginiz sürece üçüncü parti bir HTTP istemcisi kullanmak zorundasiniz. Bunlarin arasinda Windows için, Netscape, Microsoft Interent Explorer, Opera, Mosaic, WebSurfer, UNIX için Xmosaic, Netscape, Lynx, Arena, OS/2 için Web Explorer, Netscape sayilabilir.
HTTP sunucusu artik hemen hemen tüm isletim sistemlerinde mevcuttur. Kisisel HTTP sunucularindan kurumsal sunuculara kadar genis bir yelpazede ürünler ortaya çikmistir. Örnek olarak, Windows için OmniHTTPD, Microsoft Personal Web Server, Website, Windows NT için HTTPS, IIS, Alibaba, Espanade, Expresso, UNIX için HTTPD, Apache, OS/2 için GoServe, OS2HTTPD, IBM Internet Connection Server verilebilir.
Network News transfer protokolü : NNTP en çok kullanilan protokollerden biridir. USENET olarak bilinen haber servisine erisim saglar. NNTP RFC 977 dökümaninda tanimlanmistir. NNTP protokolünün çalismasi SMTP protokolüne benzer, sunucuya gönderilen komutlar anlasilabilir bir sekildedir.
Simdi artik TCP/IP servis ve protokol ailesini ögrendik ve ayni zamanda bazi uygulama düzeyi protokolleri inceledik. Burada degindigimiz protokoller internette siklikla kullanilan protokollerdir. Ancak gerçekte bunlar buzdaginin görünen parçasidir sadece, burda deginmedigimiz daha yüzlerce protokol mevcuttur.
Kisaca TCP/IP tek basina interneti olusturan bir yapidir ve çogu kullaniciya görünmeyen protokoller toplulugudur. Simdi standart bir internet sunucusunda bulunan protokolleri siralayalim:
-Transfer kontrol protokolü (TCP),
-Internet protokolü (IP),
-Internet mesaj kontrol protokolü (ICMP),
-Adres çözümleme protokolü (ARP),
-Dosya tranasfer protokolü (FTP),
-Telnet protokolü,
-NNTP protokolü,
-SMTP protokolü,
-HTTP protokolü,
Burada verilen protokoller aslinda bazen birbiriyle iç içe girmis durumdadir. Yani internette bir noktadan bir noktaya veri transferi için bir tek yol degil bir çok yol vardir. Örnek olarak bir dosya transfer islemini için FTP protokolünü kullanabilirsiniz. Ancak bunun için eposta (SMTP protokolü), HTTP protokolü gibi diger yollari da kullanabilirsiniz.
3.3- TCP/IP ile Otel Telefon Sistemi arasindaki iliski yeni
Fazla teknik bilmeyen yada teknige inmek istemeyenler için ConSeal PC Firewall ürününün yardim dosyasindan derledigim TCP/IP açiklamasini sunmak istedim. ConSeal TCP/IP'yi bir benzetmeyle çok güzel bir sekilde anlatmis.
Not: ConSeal yardim menüsü bu konuyu anlatirken konuyu reklam amaciyla kullanmis ve kendi firewall ürününün özelliklerini vurgulamis. Ben bu reklam kisimlarini eleyerek genel olarak anlatmaya çalistim.
TCP/IP'yi bir telefon agina benzetebiliriz. Bu benzetmede benzetilen terimleri listeleyelim öncelikle:
Bilgisayar sistemiOtel (çalisanlar ve müsteriler için telefon sistemi içeren)TCP/IPIki kisi arasindaki telefon görüsmesiUDPSesli mesaj birakma islemiPortDahili telefon numarasiAddressOtelin telefon numarasiConnectionBir telefon görüsmesiFirewallOtelin telefon operatörüARPBir cadde adresinin bulunmasiBir bilgisayar sistemini bir otelin telefon sistemine benzetebiliriz zira bilgisayar sistemi çalistirdiginiz uygulamalari barindirir. Bilgisayar sistemine firewall kurmak, otelin telefon operatörüne telefonlara ve mesajlara hangi durumlarda izin verecegini söylemeye benzer. Bilgisayar kulanicisi olan siz de otel yöneticisi ve VIP müsterisi olabilirsiniz.
Kavram 1 : Uygulamalar ve Servisler
Oteller müsterilere sahiptir ve bu müsterilerine hizmet vermek için çalisanlari vardir.
Bilgisayarlar email, web browser gibi uygulamalara sahiptir ve ve bu uygulamalari desteklemek için DNS, RIP gibi isletim sistemi servislerini kullanirlar.
Kavram 2: Iletisim
Otelden bir müsteri disariyi çevirmek istiyor. Oteldeki bir telefondan baska oteldeki bir telefonu arayarak o otelde görüsmek istedigi kisinin dahili numarasini çevirir.
Bilgisayar da ise bir uygulama yada bir servis baska bir bilgisayardaki bir uygulama yada servisle konusmak istiyor. TCP/IP ve UDP/IP kullanilarak karsi bilgisayarin IP numarasini ve port numarasini kullanarak istedigi uygulamayla yada servisle konusabilir.
Kavram 3: Firewall Olmadan
Operatör olmadan herhangi bir kisi içeriyi yada disariyi arayabilir. Ve bu aradiklari dahili numarada hiç bir kimse olmayabilir yada kisi telefona cevap verebilir yada vermeyebilir.
Bilgisayar sisteminde firewall olmadan içeri ve disari olan tüm iletisim iletisim açik durumdadir. Ancak tüm portlar kendilerini kullanan bir servise bagli olmayabilirler. Yada bir uygulama bir baglanti istegini kabul edebilir yada etmeyebilir.
Kavram 4: Firewall'un görevi
Operatör çalistigi zaman, hangi dahili numaralarin görüsme yapabilecegine yada hangi otelin ve dahili numaranin aranabilecegine karar verebilir.
Bilgisayar sisteminde bir firewall çalistigi zaman, hangi sistemlerin haberlesebilecegi ve hangi port numaralarin kullanilabilecegini belirler.
Kavram 5: Diger PC tabanli Firewall'lar
Eski operatörler bazi önemli otel personelinin görüsmelerini engelleyemezler. Sizin oteliniz tüm görüsmeleri engelleyebilecek bir operatöre sahip.
Bilgisayar sisteminde Winsock tabanli firewall'lar dosya paylasimi gibi bazi önemli Windows servisleri için bloklama yapamazlar. Ancak tüm veri paketlerini yakalayan bir firewall bu servisleri de engelleyebilir.
Kavram 6: Diger protokoller (IPX, NetBEUI...)
Eski operatörler otelin bir fax makinesi yada Morse Kodu oldugunu bilmezler ve dolayisiyla bunlara erisimi engelleyemezler. Ancak sizin otelinizdeki operatör fax makinesi ve morse kodu oldugunu biliyor. Ilerleyen zamanda operatöre bu servislerin nasil kullanilacagi ögretilecek. Ancak simdilik sadece operatöre bu servislerin kullanilip yada kullanilmayacagi ögretilmektedir.
Tüm veri paketlerini yakalamayan firewall'lar IPX, NetBEUI paketlerini de yakalayamazlar ve dolayisiyla bu servisleri engelleyemezler. Ancak tüm paketleri yakalayan bir firewall bu protokolleri de yakalar.
Kavram 7: Gelen TCP/IP baglantilarini engellemek
Bir operatör otelde kalan bir kisiye gelen telefon görüsmelerine izin vermeyebilir ancak bu kisinin disariyi aramasina ve görüsme yapmasina izin verebilir.
Bilgisayarda bir firewall herhangi bir TCP/IP portuna disardan gelen baglanti isteklerini engelleyebilir ancak ayni port üzerinden disari çikislara izin verebilir.
Kavram 8: Paket filtreleyici firewall
Operatör bir aramayi engelleyebilir ancak ne söylendigini sansürleyemez. Bunun için güvenlik görevlisi ise yarayabilir.
Paket filtreleme yapan bir firewall iletisimi engelleyebilir ancak paketlerin içerigini incelemez. bunun için Anti-virüs yazilimlari ise yarayabilir.
Kavram 9: UDP/IP ve TCP/IP karsilastirmasi
Bazi insanlar devamli olarak yüz yüze görüsme yaparlar, bazilari ise mesaj birakirlar. Karsilikli konusurken söylediginiz her seyin karsidaki kisi tarafindan duyuldugunu bilirsiniz ancak mesaj biraktiginiz zaman biraktiginiz mesajin karsidaki kisiye ulasip ulasmadigindan hiç bir zaman emin olamazsiniz.
Uygulamalar tek bir datagram göndermek için ya TCP/IP'yi ya da UDP/IP'yi kullanirlar. UDP/IP protokolü ile karsi uygulamanin iletiyi alip almadigindan hiç bir zaman emin olamazsiniz.
Kavram 10: UDP/IP verisini engelleme
Eger otel operatörü bir müsterinin baska bir oteldeki bir kisiye mesaj birakmasina izin veriyorsa, bu diger oteldeki kisinin de bu müsteriye mesaj birakmasina izin verecektir.
Eger firewall uygulamalara ve servislere UDP/IP üzerinden ve belli portlari kullanarak diger sistemlere bilgi göndermesine izin verecek bir kurala sahipse, diger sistem de ayni portlari kullanarak size veri gönderebilir. Bunun nedeni karsidaki sistemin size ilk kez veri mi gönderdigi yada cevap mi verdigi tam olarak bilinemiyor olmasidir.
Kavram 11: Portlar nasil kullaniliyor (1)
Lobide bulunan telefon her kes tarafindan disariya telefon etmek için hazirdir. Genel olarak otel çalisanlarina ve servislerine ait dahili numaralar 1 ile 1023 arasindadir. Diger dahili numaralar ise 1024 ve 5000 arasindadir.
Uygulamalarin diger sistemlerdeki servislerle konusabilmeleri için belli bir port araligi mevcuttur. Genel olarak servisler 1 ile 1023 port numaralari arasinda yer almaktadir. Geçici olarak kullanilacak port numaralari ise 1024 ve 5000 arasindadir. Böylece uygulama yada servislere sistem servislerinin port numaralari verilmez.
Kavram 12: Portlar nasil kullaniliyor (2)
Bir gelenek olarak otellerde bulunan belli basli servisler sabit bir dahili numaraya sahiptir örnek olarak salonun dahili numarasi 80, Bellman için dahili numara 23 gibi. Böylece misafirler diger otellerdeki çalisanlara hangi numaradan eriseceklerini her zaman bilirler. Ayni zamanda müsterilerden bu dahili numaralari kisisel görüsmeleri için kullanmamalari istenir.
TCP/IP'de ve UDP/IP'de bir gelenek olarak belli basli bazi servisler her sistemde hep ayni port numarasinda bulunur. Örnek olarak Web sunucusu 80 numarali portta, DNS servisi 53 numarali portta, telnet 23 numarali portta bulunur. Bu sekilde sizin uygulamaniz diger sistemlerdeki servislere nasil erisecegini biliyor. Uygulamalar bu port numaralarini uygunsuz olarak kullanmamalidirlar.
Kavram 13: Kural kullanimi
Otel bazi görüsmelere bazi özel durumlarda izin verip vermemeye karar verebilecek bir operatöre sahiptir. Bu durumlar örnek olarak söyle olabilir: sadece belli bir müsteri oteldeyse izin verebilir yada görüsme otelin güvenli görüsme hattindan yapilacaksa izin verilebilir.
Firewall ile belli kurallar koyarak iletisime belli durumlarda izin verip belli durumlarda izin vermeyebilirsiniz. Örnek olarak belli uygulamalar çalisiyorsa, çevirmeli baglanti aktif ise yada iletisim güvenli bir VPN (sanal ag) baglantisi üzerinden yapiliyorsa izin verilebilir.
Kavram 14: Kurallarin öncelik sirasi
Otel operatörü için bazi talimatlar digerlerine göre daha önemlidir. Her bir kural için bir önem derecesi belirleyerek operatörün bu siraya uymasini saglayabilirsiniz.
Firewall kural setinde bazi kurallar diger kurallara göre öncelige sahiptir. Bu önem derecesini ayarlayarak (default olarak 100'dür) kurallarin uygulanma sirasini ayarlayabilirsiniz. Küçük numaralar öncelik hakkina sahiptirler ve ilk olarak test edilirler.
Kavram 15: Paranoya ve bilgi savas oyunu
Oteliniz diger otellerle ayni blokta yer aliyor. Önemli bir ayrinti eger otelin bulundugu caddeyi bilmeden otelle görüsme yapamiyorsunuz. Otel çalisanlari da kolayca bu bilgileri unutabiliyorlar ve her bir kaç dakikada bir birbirlerine otel adresini soruyorlar. Eger operatör otel çalisanlarin bu bilgi alis verisini engellerse insanlar hiç konusamayacaklardir.
Sizin bilgisayariniz diger sistemlerle ayni agda bulunuyor. Önemli bir ayrinti diger bilgisayarlarin Ethernet Adresini bilmeden (ARP protokolü ile elde ediliyor) bilgi alis verisinde bulunamiyorsunuz. Sizin bilgisayariniz bu bilgiyi eger devamli olarak kullanilmiyorsa siliyor kayitlarindan dolayisiyla haberlesmek istedigi zaman digerlerine bu adresi soruyor her seferinde. Eger ARP'yi engellerseniz sistemler hiç bir zaman konusamayacaklardir.
Bundan sonraki kavramlar neden firewall kullanmaniz gerektigini açiklayacak güvenlikle ilgili kavramlardir.
Kavram 16: IRC ve Nuke'leme
Telefonda sohbet eden insanlar diger otellerdeki kisilerin araya girip kesinti yapmalarina davetiye çikariyor. Bu müsteriler sizin otel resepsiyonunuza baglantiyi kesmesini söylüyor. Resepsiyon da nedensiz bir sekilde kesiyor baglantiyi. Bunu engelleyecek bir operatör olmazsa müsteriler durumdan gerçekten çok sikilirlar.
Sohbet gruplarini kullanan insanlar kötü niyetli kisilere can sikintisi yapmak için davetiye çikariyorlar. Bu lamer'lar sisteminize ICMP nuke ve diger datagram'lar göndererek chat sunucusuna erismesini engelleyebilir. Bunu engelleyecek bir Firewall yoksa Windows sisteminde IRC chat gerçekten can sikici olabilir. Tabi tüm firewall'lar ICMP'yi engelleyemeyebilir.
Kavram 17: Gizlice dinleme
Sizin otel çalisanlariniz ve müsterileriniz baska bir oteldeki bir kisile görüsme yapiyorsa bile baska otellerdeki insanlar bu konusmalari dinleyebilir.
Sizin bilgisayariniz baska bir bilgisayarla haberlesirken, paylasimli bir ag üzerinden konustugu için digerleri de sinsice sizin konusmalarinizi dinleyebilir. (bildigimiz gibi bu cihazlar sniffer'lardir. )
Kavram 18: Onaylama
Mesela bir yerde bulunan insanlar operatörü baska bir yerden ariyormus gibi kandirabilir ve görüsme izni alabilir. Bu durumda arayani tanimak aranan kisiye kaliyor.
Bilgisayarlar da kendi IP adreslerini degistirerek güvenilen bir sistemmis gibi davranabilir. Bu durumda bu sistemi tanima ve onaylama isi uygulamaya kaliyor.
Kavram 19: TCP baglanti hirsizligi
Iki kisi telefon görüsmesi yaparken üçüncü bir kisi araya girip konusmayi keserek bir kisinin yerini alabilir ve diger kisiye karsi yerini aldigi kisiymis gibi konusmaya devam edebilir. Güvenli bir telefon hatti olmaksizin bunun olup olmadigini hiç bir zaman anlamayabilirsiniz.
Bir hacker için bir TCP baglantisini kesip iletisimde bulunan sistemlerden birinin yerine geçebilir. VPN gibi güvenlik bir baglanti olmaksizin sisteminiz bunu hiç bir zaman anlayamayacaktir.
Kavram 20: DNS Spoofing
Eger bir kisi Directory Asistanmis (411) (bizde bilinmeyen numaralar 118 olarak düsünebiliriz) gibi davranirsa numara isteyen kisilere yanlis numaralar vererek baska kisilerle konusmanizi saglayabilir.
Eger bir hacker bir DNS (alan adi sunucusu) sunucusunun yerine geçerse, size yanlis IP numaralari saglayarak sisteminizin istemediginiz baska bir bilgisayarla konusmasini saglayabilir.
Kavram 21: Verinin degistirilmesi
Eger bir kisi sizin konusmaniza girmeyi basarirsa söylenilen seyleri degistirebilirler. Güvenli bir telefon hatti bu sorunu çözer.
Eger bir hacker iletisiminizi kesip araya girebilirse gönderilen veriyi degistirebilirler. VPN gibi güvenli iletisim saglayan baglantilar bu sorunu çözebilir.
Kavram 22: Verinin ele geçirilmesi (1)
Otel telefon sistemlerinin bir sasirtici özelligi bir noktadan diger bir noktaya ulasincaya kadar telefon görüsmesi otelden otele gezmektedir. Iste bu sirada bir çok kisi sizin görüsmenizi dinleyebilir. Bu yüzden ne söylediginize dikkat etmelisiniz yada güvenli bir hat kullanmalisiniz.
Internetin önemli bir özelligi ise veriler belli bir hedefe giderken bir çok bilgisayari gezerler. Bunun anlami bir çok kisi sizin gönderdiginiz bilgileri izleyebilir ve ele geçirebilir. Bu yüzden ne gönderdiginize dikkat etmelisiniz yada VPN baglantisini kullanmalisiniz.
Kavram 23: Verinin ele geçirilmesi (2)
Oteller arasindaki bazi linkler mikrodalga baglantilar üzerinden radyo yayini seklinde olmaktadir.
Bazi telefon görüsmeleri mikrodalga anahtarlarindan yönlendirilmektedir ve cep telefonlari en yakin istasyona yayin yapmaktadir. Bu verinin daha fazla erisilebilir bir konumda olmasini saglamaktadir.
Kavram 24: Ag güvenligi
Bir oteldeki müsteriler otelin isini çok iyi yapan bir operatöre sahip oldugunu bildikleri için çok rahat bir sekilde uyuyabilirler, baska bir oteldeki müsteriler de otellerine görüsmeleri kontrol ltina alacak bir operatörün geldigini bilerek rahat olabilirler. (Biraz karmasik gibi gelebilir bunu anlamasi. Ancak konunun asagidaki bilgisayar dünyasindaki karsiligina baktiginizda daha rahat anlayacaksiniz.)
Mac sistemleri ag güvenligi konusunda çok iyi bir üne sahiptirler. Ancak kisisel firewall yazilimlari ile artik Windows kullanicilari da rahat bir nefes alabilirler.