2 Ağustos 2011 Salı

TCP/IP

TCP/IP
Bu bölümde TCP/IP protokolüne yer verilmiştir basit örneklerle TCP/IP protokolü anlatılmıştır. TCP/IP Internet iletişiminin kalbi olduğu için bunu anlamadan internet güvenliğinden bahsetmek yanlış olur.
Evet Arkadaşlar...
1. TCP/IP
1.1- Nedir TCP/IP
1.2- TCP/IP'nin İşleyişi
1.2.1 Protokoller
Ağ seviyesi protokolleri
1.3- TCP/IP ile Otel Telefon Sistemi arasındaki ilişki
Internetin belkemiği olan TCP/IP ile ilgili bazı temel bilgileri bilmeden ne dönüp bittiğini anlamak zordur. Bu yüzden internet savaşları konusunda ayrıntıya girmeden önce kısaca TCP/IP protokolüne değinmek istedim.
Bu konuda kısaca TCP/IP'nin ne olduğunu ve nasıl çalıştığını göreceğiz. Burda verilen bilgiler temel düzeydedir ve ileride göreceğimiz konuları daha kolay anlamanıza yardımcı olacaktır.

1.1- Nedir TCP/IP
TCP/IP internette veri transferi için kullanılan iki protokolü temsil eder. Bunlar Transmission Control Protokol (TCP) ve Internet Protocol (IP). Ve bu protokoller de daha geniş olan TCP/IP protokol grubuna aittir. TCP/IP'de bulunan protokoller internette veri transferi için kullanılır ve internette kullanılan her türlü servisi sağlarlar. Bunların arasında elektronik posta transferi, dosya transferi, haber grupları, http://WWW erişimi gibi servisler TCP/IP sayesinde kullanıcılara sunulmaktadır.
TCP/IP protocol grubunu ağ seviyesi protokolleri ve uygulama seviyesi protokolleri olarak iki gruba ayırabiliriz.

Ağ seviyesindeki protokoller genellikle kullanıcıya görünmeden sistemin alt seviyelerinde çalışırlar. Örnek olarak IP protokolü kullanıcıyla uzak bir makine arasındaki paket iletimini sağlar. IP ağ seviyesinde diğer protokollerle etkileşimli olarak çalışarak paketlerin hedef adrese gönderilmesini sağlar. Çeşitli ağ araçları kullanmadığınız sürece sistemdeki IP trafiğini ve neler dönüp bittiğini anlayamazsınız. Bu araçlar ağda gidip gelen IP paketlerini yakalayabilen sniffer'lardır. Sniffer'lar konusuna ileriki konularda ayrıntıyla değineceğiz.

Uygulama seviyesi protokolleri sistemde daha üst düzeyde çalışırlar ve kullanıcıya görünürler. Örnek olarak Dosya Transfer Protokolünü (FTP) verebiliriz. Kullanıcı istediği bir bilgisayara bağlantı isteğinde bulunur ve bağlantı yapıldıktan sonra dosya transferi işlemini gerçekleştirir. Ve bu karşılıklı transfer işlemleri kullanıcıya belli bir seviyede görünür, giden gelen byte sayısı, meydana gelen hata mesajları... gibi.
Kısaca TCP/IP internette veri transferini sağlayan protokoller grubudur.

Burda TCP/IP'nin tarihçesine girmeyeceğim söyleyeceğim tek şey TCP/IP diğer protokollere göre çok fazla avantaja sahip olduğu için çok kısa sürede en yaygın kullanılan protokol haline gelmiştir. Artık internetin belkemiği haline gelen TCP/IP herhalde üzerinde en çok çalışılan ağ protokolüdür.
Günümüzde artık TCP/IP sadece internet değil bir çok alanda kullanılıyor. Intranet'ler mesela TCP/IP kullanılarak oluşturulmaktadır. Bu tip bir sistemde TCP/IP'yi kullanmak diğer protokollere göre avantajlar içerir. En basitinden TCP/IP hemen hemen her türlü sistemde desteklendiği için çok kolay bir şekilde heterojen sistemler kurulabilir. İşte internette tamamen heterojen bir sistem olduğu için TCP/IP en uygun protokoldür.
TCP/IP protokolü günümüzde artık hemen hemen tüm işletim 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 desteği gelmektedir. Tabi her sistemin TCP/IP gerçeklemesi farklı olduğundan servis kalitesi de farklılklar gösterebilir. Ancak temel olarak sunulan servisler aynıdır ve birbiriyle uyumlu olarak çalışırlar.


1.2- TCP/IP'nin İşleyişi
TCP/IP protokol yığınını kullanarak çalışır. (TCP/IP Stack) Bu yığın iki makine arasındaki veri transferini sağlamak için gereken tüm protokollerin birleşmiş bir halidir. Bu yığın kısaca en üstte "uygulama seviyesi", daha sonra "transport seviyesi", "ağ seviyesi", "datalink seviyesi" ve "fiziksel seviye"'lerden meydana gelir. Bu seviyelerde en üstte yakın olan seviyeler kullanıcıya daha yakındır, alta yakın olan seviyeler ise kullanıcıdan habersiz olarak çalışan seviyelerdir. Örnek olarak en üst düzey olan uygulama seviyesinde FTP, Telnet gibi programları örnek verebiliriz. Bu programları çalıştırdığınızda diğer sisteme bir bağlantı kurulur ve veri transferi yapılır. Siz sadece yaptığınız işlemlerle ilgili sonuçları ve olayları görürsünüz ancak bir veri gönderdiğinizde bu veri ilk önce sizin bilgisayarınızdaki bu TCP/IP protokol yığınında aşağıya doğru inmek zorundadır. Yani uygulama seviyesinden, ftp'de verdiğiniz bir komut mesela, transport seviyesine, ordan ağ seviyesine ve en sonunda fiziksel seviyeye iner ve artık diğer bilgisayara ulaşmak üzere internet ağında yada yerel bir ağda uzun yolculuğuna başlar. Gideceği makinenin fiziksel seviyesine ulaşana kadar veriler genellikle bir yada daha fazla ağ geçidinden geçerler. (tracert komutu belirli bir hedefe hangi geçitlerden geçerek gidileceğini veren komuttur) En sonunda diğer makineye ulaşınca yine uygulama seviyesine ulaşıncaya kadar, bu sefer karşıda çalışan ftp sunucusuna, yine bu TCP/IP protokol seviyelerini bir bir yukarı doğru aşmak zorundadır.
Bu arada bu seviyelere ne gerek var diyebilirsiniz. Ancak bu seviyelerin her biri değişik bir görevi üstlenmektedir. Bir seviye fiziksel olarak verilerin gönderilmesi işini yaparken başka bir seviye verileri ufak paket dediğimiz parçacıklara bölerek iletişim işini üstlenir, başka bir seviye ise iletişimde meydana gelebilecek hataları tespit eder. Bu şekilde tüm seviyeler bir uyum içinde çalışırşar ve her seviye karşı tarafta bulunan yine kendi seviyesindeki protokolle karşılıklı iletişim içindedir. Daha yukarıda yada daha aşağıdaki bir seviyede ne gibi bir işin yapıldığına ve sonuçlarıyla ilgilenmez.


1.2.1 Protokoller
Kısaca TCP/IP protokol yığınının nasıl çalıştığını gördük ve şimdi kullanılan protokollere bir göz atalım.

Ağ seviyesi protokolleri
Ağ seviyesi protokolleri veri transferi işlemini kullanıcıdan gizli olarak yaparlar ve bazı ağ araçları kullanılmadan farkedilemezler. Bu araçlar Sniffer'lardır. Sniffer bir cihaz yada bir yazılım olabilir ve ağ üzerindeki tüm veri iletişimini izlemeye yarar. Bu araçların kullanılış maksadı ağda meydana gelebilecek hataları tespit etmek ve çözmektir. Ancak ileride de göreceğimiz gibi sniffer'lar da hacker ve cracker'lar tarafından kullanılan ölümcül makineler haline gelmiştir.
Ağ protokolleri arasında önemli olarak Adres Çözümleme Protokolü (ARP), Internet Mesaj Kontrol Protokolü (ICMP), Internet Protokolü (IP) ve Transfer Kontrol Protokolü (TCP) protokollerini verebiliriz.
Kısaca bu protokollerin ne iş yaptığına bir bakalım:

ARP protokolü: internet adreslerini fiziksel adrese dönüştürmek için kullanılır. Bir paketin bir bilgisayardan çıktığında nereye gideceğini IP numarası değil gideceği bilgisayarın fiziksel adresi belirler. İşte bu adreste paketin gideceği ip numarası kullanılarak elde edilir. Ve bu işlemden sonra paket hedef ip adresine sahip bilgisayara gitmek için gerekli yönlendirmelerle yolculuğuna başlar. Bilgisayara takılı olan ethernet kartlarının bir ethernet adresi vardır. Ve bu adres IP adresinden farklıdır. Bir paket makineden çıktığı anda gideceği adres diğer bir makinenin ağ kartıdır ve bu ağ kartı ile IP numarası arasında bir bağ yoktur. Paket bu karta gidebilmesi için kartın fiziksel numarasını bilmek durumundadır.
ARP adres çözümlemek istediği zaman tüm ağa bir ARP istek mesajı gönderir ve bu IP adresini gören yada bu IP adresine giden yol üzerinde bulunan makine bu isteğe cevap verir ve kendi fiziksel adresini gönderir. ARP isteğinde bulunan makine bu adresi alarak verileri artık bu makineye gönderir.
ARP protokolünün nasıl çalıştığını ve daha ayrıntılı bilgi isteyenler RFC 826 dökümanına bakabilirler.

Internet mesaj kontrol protokolü: ICMP protokolü iki yada daha fazla bilgisayar arasında veri transferi sırasında meydana gelebilecek hataları ve kontrol mesajlarını idare eder. Bu nedenle ICMP ağ problemlerini tespit etmek için çok önemli bir protokoldür. ICMP protokolü kullanılarak elde edebileceğimiz bazı sorunlar: bir bilgisayarın ayakta olup olmadığını kontrol etmek, ağ geçitlerinin tıkanık olup olmadığını kontrol etmek gibi...
ICMP protokolünde bilinen en yaygın ağ aracı ping'dir. ping programı karşıdaki bir bilgisayarın çalışır durumda olup olmadığını kontrol etmek için kullanılır. Çalışma mantığı çok basittir, karşı bilgisayara echo paketleri gönderir ve geri gelmesini bekler. Eğer paketler geri gelmezse ping hata mesajı verir ve karşı bilgisayarın ağa bağlı ve çalışır durumda olmadığı anlaşılır.

Internet protokolü: IP protokolü TCP/IP protokol yığınında ağ seviyesine aittir ve tüm TCP/IP protokol takımının paket iletimi işlemini sağlar. Kısacası IP verilerin internetteki iletişiminin kalbini oluşturan protokoldür. IP paketi çeşitli kısımlardan oluşmaktadır. Paketin en başında bir paket başlığı vardır ve gönderilecek olan veriyle ilgili olarak gideceği adres, gönderen adres gibi bilgileri içermektedir. Paketin geri kalan kısmı ise gönderilecek veriyi içerir.
IP paketleriyle ilgili en ilginç şey bu paketler yolculuğu sırasında daha ufak paket boyutları kullanan ağlara rast geldiğinde daha küçük parçalara bölünebilmesi ve karşı tarafta tekrar birleştirilmesidir.
IP protokolü ile ilgili daha fazla bilgi RFC 760 dökümanından edinilebilir.

Transfer kontrol protokolü: TCP prtokolü interntette kullanılan ana protokoldür. Dosya transferi ve uzak oturumlar gibi kritik işleri sağlar. TCP diğer protokollerden farklıdır. Güvensiz bir iletişimm ortamında verilerin aynı şekilde hedefe ulaşacağından emin olamazsınız. Ancak TCP gönderilen verilerin gönderildiği sırayla karşı tarafa ulaşmasını sağlayarak güvenli veri iletimini sağlar.
TCP iki makine arasında kurulan sanal bir bağlantı üzerinden çalışır. Üç kısımlı bir işlemden oluşur bu bağlantı ve three-part handshake olarak bilinir. (TCP/IP three way handshake) TCP/IP üzerinde yapılan bazı saldırı tekniklerini iyi anlayabilmek için TCP'nin çalışma mantığını iyi anlamak gerekmektedir. Bu nedenle şimdi bu bağlantının nasıl olduğuna bir bakalım:
Three-way handshake işleminde öncelikle istemci sunucuya port numarasıyla birlikte bir bağlantı isteği gönderir. İsteği alan sunucu bu isteğe bir onay gönderir. En sonunda da istemci makine sunucuya bir onay gönderir ve bağlantı sağlanmış olur. Bağlantı yapıldıktan sonra veri akışı her iki yönde de yapılabilmektedir. Buna genellikle full-duplex iletişim denmektedir.
TCP aynı zamanda hata kontrol mekanizması da sağlıyor. Gönderilen her veri bloğu için bir numara üretilmektedir. Ve karşılıklı iki makine de bu numarayı kullanarak transfer edilen blokları tanımaktadırlar. Başarılı olarak gönderilen her blok için alıcı makine gönderici makineye bir onay mesajı gönderir. Ancak transfer sırasında hata olursa alıcı makine ya hata mesajları alır yada hiç bir mesaj almaz. Hata oluştuğu durumlarda, oturum kapanmadığı sürece, veriler tekrar gönderilir.
TCP prtokolü ile verinin iki makine arasında nasıl transfer edildiğini gördük. Şimdi istemcinin isteğinin karşı tarafa ulaştığında ne olup bittiğine bakalım. Bir makine başka bir makineye bağlantı isteği gönderdiği zaman belli bir hedef adresi belirtir. Bu adres bir IP adresi ve fiziksel adrestir. Ancak sadece bu adres te yeterli değildir, istemci karşı makinede hangi uygulamayla konuşmak istediğini de belirtmek durumundadır. Örnek olarak siz bir sayfaya bağlanmak istediğinizde URL adres kısmına http://www.guvenlikhaber.com adresini yazıp bağlan dediğiniz anda browser bu adresteki bilgisayara bir bağlantı isteği gönderir ve o makinede bulunan HTTP uygulamasıyla konuşmak istediğini de belirtir. Şimdi bu HTTP isteğinizin karşı tarafa gittiği zaman neler olduğuna bakalım.


inetd
inetd tüm daemon'ların anasıdır. Daemon'lar sistemde devamlı olarak çalışan ve diğer prosesleri dinleyen programlardır. Microsoft DOS platformundaki terminate and stay resident TSR programlarına benzerler. (TSR genellikle virüsler tarafından çok kullanılan bir yöntemdi. Virüs kodunun sürekli hafızada aktif olarak kalabilmesi için TSR metodu kullanılıyordu.) Daemonlar sistem açık olduğu sürece belli bir olayı dinlemek için sürekli çalışır durumdadırlar. İişte süper sunucu olarak ta çağrılan inetd tüm bu daemonların büyük büyük babasıdır.
Tahmin edebileceğiniz gibi bir sistemde ne kadar çok daemon varsa o kadar çok sistem kaynakları azalacaktır. İşte her türlü işlemi gerçekleştirmek için bir daemonu her zaman çalışır durumda bekletmek ve sistem kaynaklarını yemek yerine bir tane daemon yazmışlar. Bu da inetd daemonudur. inetd tüm ağ isteklerini dinler ve bir istek geldiğinde isteğe bakarak hangi servisle ilgili olduğuna karar verir. Daha sonra da ilgili servisi sunan uygulamayı yükleyerek isteği bu uygulamaya yönlendirir. Örnek olarak bir FTP isteği geldiği zaman inetd FTP sunucusunu başlatır ve isteğe cevap vermesini ister ve kendisi de başka isteklere cevap vermek üzere dinlemeye devam eder.
inetd sadece UNIX üzerinde çalışan bir uygulama değildir. Windows ortamında çalışan sürümlerini de piyasada bulmak mümkündür. Hummingbird'ün Exceed ürünü Windows ve OS/2 platformları için inetd'yi sunmaktadır.
inetd programı normal olarak sistem açıldığında çalışmaya başlar ve sistem yöneticisi tarafından kapatılmadığı sürece sistem kapatılana kadar da çalışmaya devam eder. inetd programının çalışması /etc/inetd.conf konfigürasyon dosyası ile tanımlanır. inetd'nin hangi servisleri sunacağı bu dosyada belirtilir. Bu servisler FTP, Telnet, SMTP, Finger, Netstat.. gibi servislerdir.

portlar
TCP/IP ortamında programların çalıştırılması ve servisler genellikle istemci-sunucu tabanlıdır. Her bağlantı isteği için inetd bir sunucu çalıştırır ve sunucu da istemciyle haberleşmeye başlar.
Bu işlemi gerçekleştirebilmek için her servise (FTP, Telnet.. gibi ) bir numara verilmiştir. İşte istemciler bu numaraları kullanarak karşı bilgisayardaki hangi uygulamayla konuşacağını belirtir. Bu numaralar port numaraları olarak adlandırılır. Bir internet sunucusunda binlerce port olabilir. Ancak etkin bir kullanım için iyi bilinen ve her zaman kullanılan servislere standart port numaraları verilmiştir. Sistem yöneticisi istediği servisi istediği port numarasına bağlayabilir ancak normal olarak iyi bilinen port numaraları (well-known ports) kullanmak akıllıca olacaktır. Örnek olarak aşağıda bazı servislerin standart port numaraları verilmiştir:
Dosya Transfer Protokolü (FTP) 21
Telnet 23
Simple mail transfer protokol (SMTP) 25
Gopher 70
Finger 79
HTTP 80
NNTP 119

Tüm port numaralarını ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers adresinden görebilirsiniz.
Şimdi kısaca bu uygulamalara bir göz atalım:

Telnet: Telnet protokolü RFC 854 dökümanında anlatılmıştır. Telnet uzak sistemlere login olmak ve sistemde komut çalıştırmak için kullanılır. Ankarada bulunan bir kullanıcı İstanbulda bulunan bir makineye telnet yaparak sanki makinenin başındaymış gibi komutlar çalıştırabilir. Bir telnet oturumu açmak için UNIX komut satırından yada DOS komut satırından:

#telnet sunucu_adi

komutu girilir ve eğer bu sunucuda telnet sunucusu çalışıyorsa kullanıcının karşısına login ekranı gelecektir. Bu ekranda kullanıcı adı ve şifresi girildikten sonra sisteme oturum açılacaktır. Telnet protokolü text tabanlı olup UNIX sisteminde ve çoğu sistemde dahili olarak gelmektedir.

Dosya Transfer Protokolü: FTP protokolü RFC 0765'de tanımlanmıştır ve protokol spesifikasyonu RFC 114 dökümanında anlatılmıştır. FTP internette standart olarak dosya transferi için geliştirilmiş bir protokoldür. Uygun ftp istemcileri kullanılarak ftp sunucularından yararlanılabilir. UNIX ve Windows platformlarında standart komut satırı ftp istemcisinin yanı sıra, Cute-FTP (Windows), FTP Explorer (Windows), FTPTool (UNIX) gibi üçüncü parti araçları da vardır.
FTP istemcileri karşı tarafta bir FTP sunucusuyla konuşurlar. İşte karşıda istemci isteklerine cevap veren standart ftp daemonu FTPD'dir. Bu daemon UNIX sistemlerinde default olarak gelmektedir. Ancak diğer sistemlerde de kullanılabilecek ftp sunucuları 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ümanında tanımlanmıştır. SMTP protokolünün amacı etkili ve güvenli bir şekilde eposta iletimini sağlamaktır. Kullanıcı SMTP destekleyen bir istemciyle SMTP sunucusuna bir istek gönderir ve iki yönlü bir bağlantı kurulur. Bağlantı kurulduktan sonra eğer sunucu izin veriyorsa istemci MAIL komutları göndererek eposta gönderme işlemini yapabilir. (Internette kullandığımız Netscape ve Explorer gibi browserlar genellikle SMTP sunucularını kullanarak mail gönderirler. Browser ilk kurulduğunda kullanıcı posta ayarlarında verdiğimiz SMTP sunucusunun adı mail göndermek için kullanılmaktadır)
SMTP'nin bu çok basit yapısının yanı sıra bir çok güvenlik açığının kaynağı olmuştur. Bunun nedeni ise SMTP'nin çok fazla parametresinin bulunmasıdır. Yanlış konfigürasyonlar güvenlik açıklarının nedeni olmaktadır.
SMTP sunucusu UNIX sistemlerinde default olarak gelmektedir.

Gopher: Gopher servisi dağıtılmış döküman paylaşım sistemidir. Dökümanlar ve servisler sunucularda saklanıyor ve Gopher istemci programı kullanıcıya bu dökümanlara bir hiyerarşik şekilde ulaşma imkanı sunuyor. Dosya ve dizin yapısı dökümanları yerleştirme ve kullanma için uygun olduğu için daha çok bu yapıya benzetilerek tasarlanmış Gopher. Günümüzde HTTP'nin akıl almaz gelişimi ve kullanım yaygınlığı nedeniyle bu servis artık kullanılmaz hale gelmiştir. Gopher ile ilgili ayrıntılı bilgi RFC 1436 dökümanından edinilebilir.

Hipertext transfer protokolü: Internette kullanıcıların sörf yapmasını sağlayan HTTP herhalde tüm protokoller içinde en ünlüsüdür. HTTP protokolü RFC 1945 ve RFC 2068 dökümanında anlatılmıştır.
HTTP protokolü internetin kullanımını tamamen değiştiren ve herkes tarafından kullanılabilir bir hale getirmiştir. HTTP protokolü de Gopher mantığıyla çalışır. İstem ve cevap şeklinde bir çalışma mantığı vardır. Telnet gibi uygulamalar istemcinin login olmasını ve işlemler devam ettiği sürece de bağlı kalmasını gerektirmektedir. Ancak Gopher ve HTTPde böyle bir zorunluluk yoktur. İstemci istediği zaman istediği isteği gönderir ve sunucuda bu isteğe cevap verir. Bunu internet browserdan görmek mümkündür. Siz bir adresi ziyaret ederken aslında o siteye bağlı değilsinizdir o siteden bazı dökümanlar indirmiş ve bunları yerel olarak görüyorsunuzdur. Ancak bir linke tıkladığınızda o sunucuyla bağlantı kurulur ve bilgiler transfer eilir bu işlemin işleyişini ekrandaki durum çubuğundan gözleyebilirsiniz.
Tabi HTTP sunucularına bağlanmak için HTTP protokolünü öğrenip bir istemci programı yazmadığınız sürece üçüncü parti bir HTTP istemcisi kullanmak zorundasınız. Bunların arasında Windows için, Netscape, Microsoft Interent Explorer, Opera, Mosaic, WebSurfer, UNIX için Xmosaic, Netscape, Lynx, Arena, OS/2 için Web Explorer, Netscape sayılabilir.
HTTP sunucusu artık hemen hemen tüm işletim sistemlerinde mevcuttur. Kişisel HTTP sunucularından kurumsal sunuculara kadar geniş bir yelpazede ürünler ortaya çıkmıştır. Ö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 kullanılan protokollerden biridir. USENET olarak bilinen haber servisine erişim sağlar. NNTP RFC 977 dökümanında tanımlanmıştır. NNTP protokolünün çalışması SMTP protokolüne benzer, sunucuya gönderilen komutlar anlaşılabilir bir şekildedir.

Şimdi artık TCP/IP servis ve protokol ailesini öğrendik ve aynı zamanda bazı uygulama düzeyi protokolleri inceledik. Burada değindiğimiz protokoller internette sıklıkla kullanılan protokollerdir. Ancak gerçekte bunlar buzdağının görünen parçasıdır sadece, burda değinmediğimiz daha yüzlerce protokol mevcuttur.

Kısaca TCP/IP tek başına interneti oluşturan bir yapıdır ve çoğu kullanıcıya görünmeyen protokoller topluluğudur. Şimdi standart bir internet sunucusunda bulunan protokolleri sıralayalım:

-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 aslında bazen birbiriyle iç içe girmiş durumdadır. Yani internette bir noktadan bir noktaya veri transferi için bir tek yol değil bir çok yol vardır. Örnek olarak bir dosya transfer işlemini için FTP protokolünü kullanabilirsiniz. Ancak bunun için eposta (SMTP protokolü), HTTP protokolü gibi diğer yolları da kullanabilirsiniz.




1.3- TCP/IP ile Otel Telefon Sistemi arasındaki ilişki yeni

Fazla teknik bilmeyen yada tekniğe inmek istemeyenler için ConSeal PC Firewall ürününün yardım dosyasından derlediğim TCP/IP açıklamasını sunmak istedim. ConSeal TCP/IP'yi bir benzetmeyle çok güzel bir şekilde anlatmış.

Not: ConSeal yardım menüsü bu konuyu anlatırken konuyu reklam amacıyla kullanmış ve kendi firewall ürününün özelliklerini vurgulamış. Ben bu reklam kısımlarını eleyerek genel olarak anlatmaya çalıştım.

TCP/IP'yi bir telefon ağına benzetebiliriz. Bu benzetmede benzetilen terimleri listeleyelim öncelikle:
Bilgisayar sistemi Otel (çalışanlar ve müşteriler için telefon sistemi içeren)
TCP/IP İki kişi arasındaki telefon görüşmesi
UDP Sesli mesaj bırakma işlemi
Port Dahili telefon numarası
Address Otelin telefon numarası
Connection Bir telefon görüşmesi
Firewall Otelin telefon operatörü
ARP Bir cadde adresinin bulunması
Bir bilgisayar sistemini bir otelin telefon sistemine benzetebiliriz zira bilgisayar sistemi çalıştırdığınız uygulamaları barındırır. Bilgisayar sistemine firewall kurmak, otelin telefon operatörüne telefonlara ve mesajlara hangi durumlarda izin vereceğini söylemeye benzer. Bilgisayar kulanıcısı olan siz de otel yöneticisi ve VIP müşterisi olabilirsiniz.

Kavram 1 : Uygulamalar ve Servisler
Oteller müşterilere sahiptir ve bu müşterilerine hizmet vermek için çalışanları vardır.
Bilgisayarlar email, web browser gibi uygulamalara sahiptir ve ve bu uygulamaları desteklemek için DNS, RIP gibi işletim sistemi servislerini kullanırlar.

Kavram 2: İletişim
Otelden bir müşteri dışarıyı çevirmek istiyor. Oteldeki bir telefondan başka oteldeki bir telefonu arayarak o otelde görüşmek istediği kişinin dahili numarasını çevirir.
Bilgisayar da ise bir uygulama yada bir servis başka bir bilgisayardaki bir uygulama yada servisle konuşmak istiyor. TCP/IP ve UDP/IP kullanılarak karşı bilgisayarın IP numarasını ve port numarasını kullanarak istediği uygulamayla yada servisle konuşabilir.

Kavram 3: Firewall Olmadan
Operatör olmadan herhangi bir kişi içeriyi yada dışarıyı arayabilir. Ve bu aradıkları dahili numarada hiç bir kimse olmayabilir yada kişi telefona cevap verebilir yada vermeyebilir.
Bilgisayar sisteminde firewall olmadan içeri ve dışarı olan tüm iletişim iletişim açık durumdadır. Ancak tüm portlar kendilerini kullanan bir servise bağlı olmayabilirler. Yada bir uygulama bir bağlantı isteğini kabul edebilir yada etmeyebilir.

Kavram 4: Firewall'un görevi
Operatör çalıştığı zaman, hangi dahili numaraların görüşme yapabileceğine yada hangi otelin ve dahili numaranın aranabileceğine karar verebilir.
Bilgisayar sisteminde bir firewall çalıştığı zaman, hangi sistemlerin haberleşebileceği ve hangi port numaraların kullanılabileceğini belirler.

Kavram 5: Diğer PC tabanlı Firewall'lar
Eski operatörler bazı önemli otel personelinin görüşmelerini engelleyemezler. Sizin oteliniz tüm görüşmeleri engelleyebilecek bir operatöre sahip.
Bilgisayar sisteminde Winsock tabanlı firewall'lar dosya paylaşımı gibi bazı önemli Windows servisleri için bloklama yapamazlar. Ancak tüm veri paketlerini yakalayan bir firewall bu servisleri de engelleyebilir.

Kavram 6: Diğer protokoller (IPX, NetBEUI...)
Eski operatörler otelin bir fax makinesi yada Morse Kodu olduğunu bilmezler ve dolayısıyla bunlara erişimi engelleyemezler. Ancak sizin otelinizdeki operatör fax makinesi ve morse kodu olduğunu biliyor. İlerleyen zamanda operatöre bu servislerin nasıl kullanılacağı öğretilecek. Ancak şimdilik sadece operatöre bu servislerin kullanılıp yada kullanılmayacağı öğretilmektedir.
Tüm veri paketlerini yakalamayan firewall'lar IPX, NetBEUI paketlerini de yakalayamazlar ve dolayısıyla bu servisleri engelleyemezler. Ancak tüm paketleri yakalayan bir firewall bu protokolleri de yakalar.

Kavram 7: Gelen TCP/IP bağlantılarını engellemek
Bir operatör otelde kalan bir kişiye gelen telefon görüşmelerine izin vermeyebilir ancak bu kişinin dışarıyı aramasına ve görüşme yapmasına izin verebilir.
Bilgisayarda bir firewall herhangi bir TCP/IP portuna dışardan gelen bağlantı isteklerini engelleyebilir ancak aynı port üzerinden dışarı çıkışlara izin verebilir.

Kavram 8: Paket filtreleyici firewall
Operatör bir aramayı engelleyebilir ancak ne söylendiğini sansürleyemez. Bunun için güvenlik görevlisi işe yarayabilir.
Paket filtreleme yapan bir firewall iletişimi engelleyebilir ancak paketlerin içeriğini incelemez. bunun için Anti-virüs yazılımları işe yarayabilir.

Kavram 9: UDP/IP ve TCP/IP karşılaştırması
Bazı insanlar devamlı olarak yüz yüze görüşme yaparlar, bazıları ise mesaj bırakırlar. Karşılıklı konuşurken söylediğiniz her şeyin karşıdaki kişi tarafından duyulduğunu bilirsiniz ancak mesaj bıraktığınız zaman bıraktığınız mesajın karşıdaki kişiye ulaşıp ulaşmadığından hiç bir zaman emin olamazsınız.
Uygulamalar tek bir datagram göndermek için ya TCP/IP'yi ya da UDP/IP'yi kullanırlar. UDP/IP protokolü ile karşı uygulamanın iletiyi alıp almadığından hiç bir zaman emin olamazsınız.

Kavram 10: UDP/IP verisini engelleme
Eğer otel operatörü bir müşterinin başka bir oteldeki bir kişiye mesaj bırakmasına izin veriyorsa, bu diğer oteldeki kişinin de bu müşteriye mesaj bırakmasına izin verecektir.
Eğer firewall uygulamalara ve servislere UDP/IP üzerinden ve belli portları kullanarak diğer sistemlere bilgi göndermesine izin verecek bir kurala sahipse, diğer sistem de aynı portları kullanarak size veri gönderebilir. Bunun nedeni karşıdaki sistemin size ilk kez veri mi gönderdiği yada cevap mı verdiği tam olarak bilinemiyor olmasıdır.

Kavram 11: Portlar nasıl kullanılıyor (1)
Lobide bulunan telefon her kes tarafından dışarıya telefon etmek için hazırdır. Genel olarak otel çalışanlarına ve servislerine ait dahili numaralar 1 ile 1023 arasındadır. Diğer dahili numaralar ise 1024 ve 5000 arasındadır.
Uygulamaların diğer sistemlerdeki servislerle konuşabilmeleri için belli bir port aralığı mevcuttur. Genel olarak servisler 1 ile 1023 port numaraları arasında yer almaktadır. Geçici olarak kullanılacak port numaraları ise 1024 ve 5000 arasındadır. Böylece uygulama yada servislere sistem servislerinin port numaraları verilmez.

Kavram 12: Portlar nasıl kullanılıyor (2)
Bir gelenek olarak otellerde bulunan belli başlı servisler sabit bir dahili numaraya sahiptir örnek olarak salonun dahili numarası 80, Bellman için dahili numara 23 gibi. Böylece misafirler diğer otellerdeki çalışanlara hangi numaradan erişeceklerini her zaman bilirler. Aynı zamanda müşterilerden bu dahili numaraları kişisel görüşmeleri için kullanmamaları istenir.
TCP/IP'de ve UDP/IP'de bir gelenek olarak belli başlı bazı servisler her sistemde hep aynı port numarasında bulunur. Örnek olarak Web sunucusu 80 numaralı portta, DNS servisi 53 numaralı portta, telnet 23 numaralı portta bulunur. Bu şekilde sizin uygulamanız diğer sistemlerdeki servislere nasıl erişeceğini biliyor. Uygulamalar bu port numaralarını uygunsuz olarak kullanmamalıdırlar.

Kavram 13: Kural kullanımı
Otel bazı görüşmelere bazı özel durumlarda izin verip vermemeye karar verebilecek bir operatöre sahiptir. Bu durumlar örnek olarak şöyle olabilir: sadece belli bir müşteri oteldeyse izin verebilir yada görüşme otelin güvenli görüşme hattından yapılacaksa izin verilebilir.
Firewall ile belli kurallar koyarak iletişime belli durumlarda izin verip belli durumlarda izin vermeyebilirsiniz. Örnek olarak belli uygulamalar çalışıyorsa, çevirmeli bağlantı aktif ise yada iletişim güvenli bir VPN (sanal ağ) bağlantısı üzerinden yapılıyorsa izin verilebilir.

Kavram 14: Kuralların öncelik sırası
Otel operatörü için bazı talimatlar diğerlerine göre daha önemlidir. Her bir kural için bir önem derecesi belirleyerek operatörün bu sıraya uymasını sağlayabilirsiniz.
Firewall kural setinde bazı kurallar diğer kurallara göre önceliğe sahiptir. Bu önem derecesini ayarlayarak (default olarak 100'dür) kuralların uygulanma sırasını ayarlayabilirsiniz. Küçük numaralar öncelik hakkına sahiptirler ve ilk olarak test edilirler.

Kavram 15: Paranoya ve bilgi savaş oyunu
Oteliniz diğer otellerle aynı blokta yer alıyor. Önemli bir ayrıntı eğer otelin bulunduğu caddeyi bilmeden otelle görüşme yapamıyorsunuz. Otel çalışanları da kolayca bu bilgileri unutabiliyorlar ve her bir kaç dakikada bir birbirlerine otel adresini soruyorlar. Eğer operatör otel çalışanların bu bilgi alış verişini engellerse insanlar hiç konuşamayacaklardır.
Sizin bilgisayarınız diğer sistemlerle aynı ağda bulunuyor. Önemli bir ayrıntı diğer bilgisayarların Ethernet Adresini bilmeden (ARP protokolü ile elde ediliyor) bilgi alış verişinde bulunamıyorsunuz. Sizin bilgisayarınız bu bilgiyi eğer devamlı olarak kullanılmıyorsa siliyor kayıtlarından dolayısıyla haberleşmek istediği zaman diğerlerine bu adresi soruyor her seferinde. Eğer ARP'yi engellerseniz sistemler hiç bir zaman konuşamayacaklardır.

Bundan sonraki kavramlar neden firewall kullanmanız gerektiğini açıklayacak güvenlikle ilgili kavramlardır.

Kavram 16: IRC ve Nuke'leme
Telefonda sohbet eden insanlar diğer otellerdeki kişilerin araya girip kesinti yapmalarına davetiye çıkarıyor. Bu müşteriler sizin otel resepsiyonunuza bağlantıyı kesmesini söylüyor. Resepsiyon da nedensiz bir şekilde kesiyor bağlantıyı. Bunu engelleyecek bir operatör olmazsa müşteriler durumdan gerçekten çok sıkılırlar.
Sohbet gruplarını kullanan insanlar kötü niyetli kişilere can sıkıntısı yapmak için davetiye çıkarıyorlar. Bu lamer'lar sisteminize ICMP nuke ve diğer datagram'lar göndererek chat sunucusuna erişmesini engelleyebilir. Bunu engelleyecek bir Firewall yoksa Windows sisteminde IRC chat gerçekten can sıkıcı olabilir. Tabi tüm firewall'lar ICMP'yi engelleyemeyebilir.

Kavram 17: Gizlice dinleme
Sizin otel çalışanlarınız ve müşterileriniz başka bir oteldeki bir kişile görüşme yapıyorsa bile başka otellerdeki insanlar bu konuşmaları dinleyebilir.
Sizin bilgisayarınız başka bir bilgisayarla haberleşirken, paylaşımlı bir ağ üzerinden konuştuğu için diğerleri de sinsice sizin konuşmalarınızı dinleyebilir. (bildiğimiz gibi bu cihazlar sniffer'lardır. )

Kavram 18: Onaylama
Mesela bir yerde bulunan insanlar operatörü başka bir yerden arıyormuş gibi kandırabilir ve görüşme izni alabilir. Bu durumda arayanı tanımak aranan kişiye kalıyor.
Bilgisayarlar da kendi IP adreslerini değiştirerek güvenilen bir sistemmiş gibi davranabilir. Bu durumda bu sistemi tanıma ve onaylama işi uygulamaya kalıyor.

Kavram 19: TCP bağlantı hırsızlığı
İki kişi telefon görüşmesi yaparken üçüncü bir kişi araya girip konuşmayı keserek bir kişinin yerini alabilir ve diğer kişiye karşı yerini aldığı kişiymiş gibi konuşmaya devam edebilir. Güvenli bir telefon hattı olmaksızın bunun olup olmadığını hiç bir zaman anlamayabilirsiniz.
Bir hacker için bir TCP bağlantısını kesip iletişimde bulunan sistemlerden birinin yerine geçebilir. VPN gibi güvenlik bir bağlantı olmaksızın sisteminiz bunu hiç bir zaman anlayamayacaktır.

Kavram 20: DNS Spoofing
Eğer bir kişi Directory Asistanmış (411) (bizde bilinmeyen numaralar 118 olarak düşünebiliriz) gibi davranırsa numara isteyen kişilere yanlış numaralar vererek başka kişilerle konuşmanızı sağlayabilir.
Eğer bir hacker bir DNS (alan adı sunucusu) sunucusunun yerine geçerse, size yanlış IP numaraları sağlayarak sisteminizin istemediğiniz başka bir bilgisayarla konuşmasını sağlayabilir.

Kavram 21: Verinin değiştirilmesi
Eğer bir kişi sizin konuşmanıza girmeyi başarırsa söylenilen şeyleri değiştirebilirler. Güvenli bir telefon hattı bu sorunu çözer.
Eğer bir hacker iletişiminizi kesip araya girebilirse gönderilen veriyi değiştirebilirler. VPN gibi güvenli iletişim sağlayan bağlantılar bu sorunu çözebilir.

Kavram 22: Verinin ele geçirilmesi (1)
Otel telefon sistemlerinin bir şaşırtıcı özelliği bir noktadan diğer bir noktaya ulaşıncaya kadar telefon görüşmesi otelden otele gezmektedir. İşte bu sırada bir çok kişi sizin görüşmenizi dinleyebilir. Bu yüzden ne söylediğinize dikkat etmelisiniz yada güvenli bir hat kullanmalısınız.
Internetin önemli bir özelliği ise veriler belli bir hedefe giderken bir çok bilgisayarı gezerler. Bunun anlamı bir çok kişi sizin gönderdiğiniz bilgileri izleyebilir ve ele geçirebilir. Bu yüzden ne gönderdiğinize dikkat etmelisiniz yada VPN bağlantısını kullanmalısınız.

Kavram 23: Verinin ele geçirilmesi (2)
Oteller arasındaki bazı linkler mikrodalga bağlantılar üzerinden radyo yayını şeklinde olmaktadır.
Bazı telefon görüşmeleri mikrodalga anahtarlarından yönlendirilmektedir ve cep telefonları en yakın istasyona yayın yapmaktadır. Bu verinin daha fazla erişilebilir bir konumda olmasını sağlamaktadır.

Kavram 24: Ağ güvenliği
Bir oteldeki müşteriler otelin işini çok iyi yapan bir operatöre sahip olduğunu bildikleri için çok rahat bir şekilde uyuyabilirler, başka bir oteldeki müşteriler de otellerine görüşmeleri kontrol ltına alacak bir operatörün geldiğini bilerek rahat olabilirler. (Biraz karmaşık gibi gelebilir bunu anlaması. Ancak konunun aşağıdaki bilgisayar dünyasındaki karşılığına baktığınızda daha rahat anlayacaksınız.)
Mac sistemleri ağ güvenliği konusunda çok iyi bir üne sahiptirler. Ancak kişisel firewall yazılımları ile artık Windows kullanıcıları da rahat bir nefes alabilirler.

Hiç yorum yok:

Yorum Gönder