Online Güvenlik Sitesi -
Makaleler
Casus Yazılım Nedir?
Casus Yazılımlardan Nasıl Kurtulurum?
Port Nedir?
Güvenlikte Kullanıcı Hataları
Bir Hacker İşini Nasıl Yapar?

Baş Ağrıtanlar
Messenger Spam
Otomatik Şifre Tamamlama



İnceleme
Top 10 Spyware
Tüm Spyware Listesi

Port Nedir?
      Bilgisayar ve telekomünikasyon dünyasında, "port" denildiği zaman akla ilk gelen genellikle fiziksel bağlantıda kullanılan ara birimlerdir. Bu tür "port" lar üzerinden bağlanmış herhangi bir makinaya "data" gönderilebilir ve bu makinanın işleyişi kontrol edilebilir. Örneğin, tipik bir bilgisayarda bir veya birden fazla "seri port" bir tane de "paralel port" bulunur. Adından da anlaşılacağı gibi "seri port" dan bilgiler seri (her defasında bir bit) olarak gönderilir ve bu tür "port" lara genellikle tarayıcı (scanner) gibi cihazlar takılır. Her defasında birden çok bit göndermek içinse "paralel port" kullanılır. Bu tip "port" lara da yazıcı (printer) veya "paralel port" bağlantısı olan herhangi bir cihaz takılabilir.
 
      Bizi ilgilendiren ve çoğunlukla İnternet dünyasında kullanılan "port" kavramı ise yukardaki tanımdan biraz daha soyut bir kavramdir. Bu anlamda "port" (ki dokümainin sonuna kadar "port" bu anlamda kullanılacaktir) herhangi bir fiziksel bağlantı yeri değil, mantıksal bir bağlanma şeklidir.  Şöyle ki:
 
      Günümüz dünyasında birçok işletim sistemi birden fazla programın aynı anda çalışmasına izin vermektedir. Bu programlardan bazıları dışarıdan gelen istekleri (istemci-client/request) kabul etmekte ve uygun gördüklerine cevap (sunucu-server/response) vermektedir. Sunucu programları çalışan bilgisayarlara birer adres verilir (bknz. IP adresleri) ve bu adresler kullanılarak istenilen bilgisayarlara ulaşılır. Peki, ulaşılan bir bilgisayar üzerindeki hangi sunucu programdan hizmet alınmak istendiği nasıl belirtilir?
 
      Bunun için bilgisayarlar üzerinde birtakım soyut bağlantı noktaları
 tanımlanır ve herbirine, adresleyebilmek için positif bir sayı verilir (port numarası). Bazı sunucu programları, daha önce herkes tarafından bilinen "port" lardan hizmet verirken (örn: telnet->23. port) bazıları da sunucu programını çalıştıran kişinin türüne ve isteğine göre değişik "port" lardan hizmet verir. Dolayısıyla, ağ üzerindeki herhangi bir sunucu programa bağlanmak istenildiğinde, programın çalıştığı bilgisayarın adresinin yanında istekleri kabul ettiği "port" numarasını da vermek gerekir. Örnek verecek olursak:
 
      144.122.156.104 "IP" adresine sahip makinada (orca) çalışan "telnet" sunucu programına (23. "port" dan hizmet veren) bağlanmak için aşağıdaki satır yazılır.
 
      telnet 144.122.156.104 23
 
      Daha önce de belirttiğimiz gibi bazı sunucu programların belirli "port" lardan hizmet verdiği bilindiği için, bu sunuculara bağlanmak istediğimizde, "port" numarasını vermeye gerek kalmaz. Bu durumda yukardaki satır
 
      telnet 144.122.156.104
     
      şeklinde de yazılabilir.
     INETD (Süper Sunucu):
      Bilgisayar ilk açıldığında üzerinde çalışan sunucu programlar otomatik olarak açılış dosyalarından çalıştırılabildiği gibi genel kullanım biraz daha farklıdır.
 
      Değişik "port" ları dinleyen birçok sunucu programın, hiçbir istemciye cevap vermediği durumda bile, birçok sistem kaynağını gereksiz yere kullandığı düşünülerek, "inetd" adında istemcilerle diğer sunucu programlar arasında koordinasyonu sağlayan bir sunucu program düşünülmüştür. Açılış dosyalarından da başlatılabilen bu sunucu tek başına bütün "port" ları dinler ve herhangi birisine istek geldiği zaman aşağıdaki prosedürü takip eder:
 
      1- /etc/services dosyasından ilgili "port" a hizmet veren servis ismini bulur.
      2- konfigürasyon dosyası olan "/etc/inetd.conf" dan bu servis için gelen isteğe nasıl cevap vereceğini belirler ve gerekli programı çalıştırır.
      3- bir istek geldiği zaman tekrar 1'e döner.
     
      Bir örnekle anlatmadan önce tipik bir "/etc/services" ve "/etc/inetd.conf" dosyasının içeriğine bakalım.

 
      <"/etc/services">
 
 tcpmux          1/tcp
 echo            7/tcp
 echo            7/udp
 discard         9/tcp           sink null
 discard         9/udp           sink null
 systat          11/tcp          users
 daytime         13/tcp
 daytime         13/udp
 netstat         15/tcp
 chargen         19/tcp          ttytst source
 chargen         19/udp          ttytst source
 ftp-data        20/tcp
 ftp             21/tcp
 telnet          23/tcp
 ktelnet         1023/tcp        #Added by AS 5/5/98
 smtp            25/tcp          mail
 time            37/tcp          timserver
 time            37/udp          timserver
 name            42/udp          nameserver
 whois           43/tcp          nicname         # usually to sri-nic
 .
 .
 .
 
      <"/etc/inetd.conf">
 
 # Ftp and telnet are standard Internet services.
 #
 ftp     stream  tcp     nowait  root    /usr/sbin/in.ftpd   in.ftpd
 telnet  stream  tcp     nowait  root    /usr/sbin/in.telnetd    in.telnetd
 #
 # Shell, login, exec, comsat and talk are BSD protocols.
 #
 shell   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd
 login   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind
 exec    stream  tcp     nowait  root    /usr/sbin/tcpd  in.rexecd
 comsat  dgram   udp     wait    root    /usr/sbin/in.comsat  in.comsat
 talk    dgram   udp     wait    root    /usr/sbin/in.talkd   in.talkd
 .
 .
 .
 

      23. "port" a bir istek geldiğinde, "inetd" "/etc/services" dosyasına bakarak bu "port" numarasına denk gelen servis ismini ("telnet") bulur. Daha sonra "/etc/inetd.conf" dosyasına bakarak bu servise denk gelen sunucu programı ("/usr/sbin/in.telnetd") çalıştırır.
 
      BUFFERED PORTS:
      Herhangi bir "port" u dinleyen program bir iş yaparken, başka bir deyişle dinlediği "port" a gelen bilgileri almaya hazır değilken, eğer bu "port" "buffered" ise gelen bilgiler kaybolmaz. İşletim sistemi içerisine yerleştirilen programlar sayesinde kapasitesi sınırlı kuyruklara yerleştirilerek ilgili sunucu programın alması için bekletilirler.
      Internet üzerinde herhangi bir IP adresi üzerindeki "port" dan hizmet veren sunucu programa bağlantı yapmak isteyen istemci program, sunucu programın çevaplarını (reply) yollamak için bağlantı kuracağı kendi üzerindeki "port" numarasını da sunucu programa gönderir.
      "Port" numarası genellikle 2 "byte" olarak tutulur. Bu nedenle 65536 adet "port" numaralamak mümkündür. Genellikle 1024'den küçük olan "port" numaraları özel hakları olan kullanıcılar (root) tarafından kullanılırken, büyük olanlar genel kullanıma açıktır.
 
 
 
 Mustafa ATAKAN
 ODTU Bilgi İşlem Daire Başkanlığı
 Internet Teknolojileri Güvenliği
 (security@metu.edu.tr 24/12/2001)
 
ActiveX - Adware - Browser Hijacker - Dialer - Firewall - Keylogger - Spyware - Trojan
Online Güvenlik Sitesi en iyi 800x600 çözünürlükte görüntülenebilmekte
ve tüm browser'larda sorunsuz çalışmaktadır.