zulme karşı mukavemet!
Süper Üye
[font='Titillium Web', sans-serif]Port Nedir? [/FONT]
[font='Titillium Web', sans-serif]Bilgisayar ve telekomünikasyon dünyasında, "port" denildiği zaman akla ilk[/FONT]
[font='Titillium Web', sans-serif]gelen genellikle fiziksel bağlantıda kullanılan ara birimlerdir. Bu tür "port" [/FONT]
[font='Titillium Web', sans-serif]lar üzerinden bağlanmış herhangi bir makinaya "data" gönderilebilir ve bu [/FONT]
[font='Titillium Web', sans-serif]makinanın işleyişi kontrol edilebilir. Örneğin, tipik bir bilgisayarda bir veya[/FONT]
[font='Titillium Web', sans-serif]birden fazla "seri port" bir tane de "paralel port" bulunur. Adından da [/FONT]
[font='Titillium Web', sans-serif]anlaşılacağı gibi "seri port" dan bilgiler seri (her defasında bir bit) olarak [/FONT]
[font='Titillium Web', sans-serif]gönderilir ve bu tür "port" lara genellikle tarayıcı (scanner) gibi cihazlar [/FONT]
[font='Titillium Web', sans-serif]takılır. Her defasında birden çok bit göndermek içinse "paralel port" kullanı-[/FONT]
[font='Titillium Web', sans-serif]lır. Bu tip "port" lara da yazıcı (printer) veya "paralel port" bağlantısı olan[/FONT]
[font='Titillium Web', sans-serif]herhangi bir cihaz takılabilir. [/FONT]
[font='Titillium Web', sans-serif]Bizi ilgilendiren ve çoğunlukla İnternet dünyasında kullanılan "port" [/FONT]
[font='Titillium Web', sans-serif]kavramı ise yukardaki tanımdan biraz daha soyut bir kavramdir. Bu anlamda "port"[/FONT]
[font='Titillium Web', sans-serif](ki dokümainin sonuna kadar "port" bu anlamda kullanılacaktir) herhangi bir [/FONT]
[font='Titillium Web', sans-serif]fiziksel bağlantı yeri değil, mantıksal bir bağlanma şeklidir. Şöyle ki: [/FONT]
[font='Titillium Web', sans-serif]Günümüz dünyasında birçok işletim sistemi birden fazla programın aynı anda[/FONT]
[font='Titillium Web', sans-serif]çalışmasına izin vermektedir. Bu programlardan bazıları dışarıdan gelen [/FONT]
[font='Titillium Web', sans-serif]istekleri (istemci-client/request) kabul etmekte ve uygun gördüklerine cevap [/FONT]
[font='Titillium Web', sans-serif](sunucu-server/response) vermektedir. Sunucu programları çalışan bilgisayarlara[/FONT]
[font='Titillium Web', sans-serif]birer adres verilir (bknz. IP adresleri) ve bu adresler kullanılarak istenilen[/FONT]
[font='Titillium Web', sans-serif]bilgisayarlara ulaşılır. Peki, ulaşılan bir bilgisayar üzerindeki hangi sunucu [/FONT]
[font='Titillium Web', sans-serif]programdan hizmet alınmak istendiği nasıl belirtilir? [/FONT]
[font='Titillium Web', sans-serif]Bunun için bilgisayarlar üzerinde birtakım soyut bağlantı noktaları [/FONT]
[font='Titillium Web', sans-serif]tanımlanır ve herbirine, adresleyebilmek için positif bir sayı verilir (port [/FONT]
[font='Titillium Web', sans-serif]numarası). Bazı sunucu programları, daha önce herkes tarafından bilinen "port" [/FONT]
[font='Titillium Web', sans-serif]lardan hizmet verirken (örn: telnet->23. port) bazıları da sunucu programını [/FONT]
[font='Titillium Web', sans-serif]çalıştıran kişinin türüne ve isteğine göre değişik "port" lardan hizmet verir.[/FONT]
[font='Titillium Web', sans-serif]Dolayısıyla, ağ üzerindeki herhangi bir sunucu programa bağlanmak istenildiğin-[/FONT]
[font='Titillium Web', sans-serif]de, programın çalıştığı bilgisayarın adresinin yanında istekleri kabul ettiği [/FONT]
[font='Titillium Web', sans-serif]"port" numarasını da vermek gerekir. Örnek verecek olursak:[/FONT]
[font='Titillium Web', sans-serif]144.122.156.104 "IP" adresine sahip makinada (orca) çalışan "telnet" [/FONT]
[font='Titillium Web', sans-serif]sunucu programına (23. "port" dan hizmet veren) bağlanmak için aşağıdaki satır [/FONT]
[font='Titillium Web', sans-serif]yazılır. [/FONT]
[font='Titillium Web', sans-serif]telnet 144.122.156.104 23 [/FONT]
[font='Titillium Web', sans-serif]Daha önce de belirttiğimiz gibi bazı sunucu programların belirli "port" [/FONT]
[font='Titillium Web', sans-serif]lardan hizmet verdiği bilindiği için, bu sunuculara bağlanmak istediğimizde, [/FONT]
[font='Titillium Web', sans-serif]"port" numarasını vermeye gerek kalmaz. Bu durumda yukardaki satır [/FONT]
[font='Titillium Web', sans-serif]telnet 144.122.156.104 [/FONT]
[font='Titillium Web', sans-serif]şeklinde de yazılabilir. [/FONT]
[font='Titillium Web', sans-serif]INETD (Süper Sunucu): [/FONT]
[font='Titillium Web', sans-serif]Bilgisayar ilk açıldığında üzerinde çalışan sunucu programlar otomatik [/FONT]
[font='Titillium Web', sans-serif]olarak açılış dosyalarından çalıştırılabildiği gibi genel kullanım biraz daha [/FONT]
[font='Titillium Web', sans-serif]farklıdır. [/FONT]
[font='Titillium Web', sans-serif]Değişik "port" ları dinleyen birçok sunucu programın, hiçbir istemciye [/FONT]
[font='Titillium Web', sans-serif]cevap vermediği durumda bile, birçok sistem kaynağını gereksiz yere kullandığı [/FONT]
[font='Titillium Web', sans-serif]düşünülerek, "inetd" adında istemcilerle diğer sunucu programlar arasında [/FONT]
[font='Titillium Web', sans-serif]koordinasyonu sağlayan bir sunucu program düşünülmüştür. Açılış dosyalarından [/FONT]
[font='Titillium Web', sans-serif]da başlatılabilen bu sunucu tek başına bütün "port" ları dinler ve herhangi [/FONT]
[font='Titillium Web', sans-serif]birisine istek geldiği zaman aşağıdaki prosedürü takip eder: [/FONT]
[font='Titillium Web', sans-serif]1- /etc/services dosyasından ilgili "port" a hizmet veren servis ismini [/FONT]
[font='Titillium Web', sans-serif]bulur. [/FONT]
[font='Titillium Web', sans-serif]2- konfigürasyon dosyası olan "/etc/inetd.conf" dan bu servis için gelen [/FONT]
[font='Titillium Web', sans-serif]isteğe nasıl cevap vereceğini belirler ve gerekli programı çalıştırır. [/FONT]
[font='Titillium Web', sans-serif]3- bir istek geldiği zaman tekrar 1'e döner. [/FONT]
[font='Titillium Web', sans-serif]Bir örnekle anlatmadan önce tipik bir "/etc/services" ve "/etc/inetd.conf"[/FONT]
[font='Titillium Web', sans-serif]dosyasının içeriğine bakalım. [/FONT]
[font='Titillium Web', sans-serif]<"/etc/services">[/FONT]
[font='Titillium Web', sans-serif]tcpmux 1/tcp[/FONT]
[font='Titillium Web', sans-serif]echo 7/tcp[/FONT]
[font='Titillium Web', sans-serif]echo 7/udp[/FONT]
[font='Titillium Web', sans-serif]discard 9/tcp sink null[/FONT]
[font='Titillium Web', sans-serif]discard 9/udp sink null[/FONT]
[font='Titillium Web', sans-serif]systat 11/tcp users[/FONT]
[font='Titillium Web', sans-serif]daytime 13/tcp[/FONT]
[font='Titillium Web', sans-serif]daytime 13/udp[/FONT]
[font='Titillium Web', sans-serif]netstat 15/tcp[/FONT]
[font='Titillium Web', sans-serif]chargen 19/tcp ttytst source[/FONT]
[font='Titillium Web', sans-serif]chargen 19/udp ttytst source[/FONT]
[font='Titillium Web', sans-serif]ftp-data 20/tcp[/FONT]
[font='Titillium Web', sans-serif]ftp 21/tcp[/FONT]
[font='Titillium Web', sans-serif]telnet 23/tcp[/FONT]
[font='Titillium Web', sans-serif]ktelnet 1023/tcp #Added by AS 5/5/98[/FONT]
[font='Titillium Web', sans-serif]smtp 25/tcp mail[/FONT]
[font='Titillium Web', sans-serif]time 37/tcp timserver[/FONT]
[font='Titillium Web', sans-serif]time 37/udp timserver[/FONT]
[font='Titillium Web', sans-serif]name 42/udp nameserver[/FONT]
[font='Titillium Web', sans-serif]whois 43/tcp nicname # usually to sri-nic[/FONT]
[font='Titillium Web', sans-serif].[/FONT]
[font='Titillium Web', sans-serif].[/FONT]
[font='Titillium Web', sans-serif].[/FONT]
[font='Titillium Web', sans-serif]<"/etc/inetd.conf">[/FONT]
[font='Titillium Web', sans-serif]# Ftp and telnet are standard Internet services.[/FONT]
[font='Titillium Web', sans-serif]#[/FONT]
[font='Titillium Web', sans-serif]ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd[/FONT]
[font='Titillium Web', sans-serif]telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd[/FONT]
[font='Titillium Web', sans-serif]#[/FONT]
[font='Titillium Web', sans-serif]# Shell, login, exec, comsat and talk are BSD protocols.[/FONT]
[font='Titillium Web', sans-serif]#[/FONT]
[font='Titillium Web', sans-serif]shell stream tcp nowait root /usr/sbin/tcpd in.rshd[/FONT]
[font='Titillium Web', sans-serif]login stream tcp nowait root /usr/sbin/tcpd in.rlogind[/FONT]
[font='Titillium Web', sans-serif]exec stream tcp nowait root /usr/sbin/tcpd in.rexecd[/FONT]
[font='Titillium Web', sans-serif]comsat dgram udp wait root /usr/sbin/in.comsat in.comsat[/FONT]
[font='Titillium Web', sans-serif]talk dgram udp wait root /usr/sbin/in.talkd in.talkd[/FONT]
[font='Titillium Web', sans-serif].[/FONT]
[font='Titillium Web', sans-serif].[/FONT]
[font='Titillium Web', sans-serif].[/FONT]
[font='Titillium Web', sans-serif]23. "port" a bir istek geldiğinde, "inetd" "/etc/services" dosyasına [/FONT]
[font='Titillium Web', sans-serif]bakarak bu "port" numarasına denk gelen servis ismini ("telnet") bulur. Daha [/FONT]
[font='Titillium Web', sans-serif]sonra "/etc/inetd.conf" dosyasına bakarak bu servise denk gelen sunucu programı[/FONT]
[font='Titillium Web', sans-serif]("/usr/sbin/in.telnetd") çalıştırır. [/FONT]
[font='Titillium Web', sans-serif]BUFFERED PORTS: [/FONT]
[font='Titillium Web', sans-serif]Herhangi bir "port" u dinleyen program bir iş yaparken, başka bir deyişle [/FONT]
[font='Titillium Web', sans-serif]dinlediği "port" a gelen bilgileri almaya hazır değilken, eğer bu "port" [/FONT]
[font='Titillium Web', sans-serif]"buffered" ise gelen bilgiler kaybolmaz. İşletim sistemi içerisine yerleştiri-[/FONT]
[font='Titillium Web', sans-serif]len programlar sayesinde kapasitesi sınırlı kuyruklara yerleştirilerek ilgili [/FONT]
[font='Titillium Web', sans-serif]sunucu programın alması için bekletilirler. [/FONT]
[font='Titillium Web', sans-serif]Internet üzerinde herhangi bir IP adresi üzerindeki "port" dan hizmet veren[/FONT]
[font='Titillium Web', sans-serif]sunucu programa bağlantı yapmak isteyen istemci program, sunucu programın [/FONT]
[font='Titillium Web', sans-serif]çevaplarını (reply) yollamak için bağlantı kuracağı kendi üzerindeki "port" [/FONT]
[font='Titillium Web', sans-serif]numarasını da sunucu programa gönderir. [/FONT]
[font='Titillium Web', sans-serif]"Port" numarası genellikle 2 "byte" olarak tutulur. Bu nedenle 65536 adet [/FONT]
[font='Titillium Web', sans-serif]"port" numaralamak mümkündür. Genellikle 1024'den küçük olan "port" numaraları [/FONT]
[font='Titillium Web', sans-serif]özel hakları olan kullanıcılar (root) tarafından kullanılırken, büyük olanlar [/FONT]
[font='Titillium Web', sans-serif]genel kullanıma açıktır.[/FONT]