İçeriğe atla
Makale

Port Nedir? Port Numaraları ve Port Güvenliği

Port, bir cihaza gelen trafiğin hangi hizmete ait olduğunu belirleyen numaradır. Port aralıklarını, sık kullanılan portları ve açık port riskini anlattık.

Oğuzhan Gerçek··6 dk okuma
Port Nedir? Port Numaraları ve Port Güvenliği

Kısa cevap: Bilgisayar ağlarında port, bir cihaza gelen trafiğin o cihazdaki hangi uygulamaya ait olduğunu ayırt etmeye yarayan numaradır. IP adresi paketi doğru cihaza ulaştırır; port numarası ise o cihazda web sunucusunun mu, e-posta sunucusunun mu, uzak masaüstünün mü cevap vereceğini belirler. Port numaraları 0 ile 65535 arasındadır ve HTTPS için 443, SSH için 22 gibi kayıtları IANA tutar. Güvenlik açısından temel kural, dışarıya yalnızca gerçekten gereken portları açmaktır.

Port nedir?

Bilişimde "port" sözcüğü iki şey için kullanılıyor: cihazın üzerindeki fiziksel bağlantı yuvası ve ağ trafiğindeki port numarası. Bu yazının konusu ikincisi. Microsoft'un Türkçe belgelerinde port, bağlantı noktası olarak geçiyor.

Port, internet protokollerinin taşıma (transport) katmanına ait bir kavram. TCP'nin güncel tanımı olan RFC 9293 (Ağustos 2022), port numaralarının uygulama hizmetlerini tanımlamak ve iki cihaz arasındaki ayrı akışları birbirinden ayırmak için kullanıldığını söylüyor. TCP başlığındaki kaynak ve hedef port alanları 16 bit; bu da 0 ile 65535 arasında 65.536 farklı numara demek. UDP'yi tanımlayan 1980 tarihli RFC 768 de başlığa kaynak ve hedef port alanı koyuyor. UDP, teslimatı garanti etmeyen daha yalın bir protokol.

IP adresi ile port arasındaki fark

IP adresi bir apartmanın adresiyse port, daire numarasıdır: adres paketi doğru cihaza ulaştırır, port o cihazda paketi hangi uygulamanın alacağını gösterir. İkisi birlikte 192.0.2.10:443 biçiminde yazılır; iki nokta üst üsteden sonraki sayı port numarası.

Oracle'ın Java belgelerindeki tanımla IP adresi ile port numarasının birleşimi bir uç noktadır (endpoint) ve her TCP bağlantısı, iki ucundaki uç noktalarla tek başına tanımlanabilir. RFC 9293 de bağlantıyı bir çift soketle tanımlıyor. Bu yüzden bir sunucunun 443 numaralı portuna aynı anda binlerce kullanıcı bağlanabilir: her bağlantının istemci tarafındaki adresi ya da portu farklıdır.

Port numarası aralıkları

RFC 6335 (Ağustos 2011), port numaralarını üç aralığa ayırıyor:

  • Sistem portları (0–1023): "Well-known" portlar olarak da bilinir ve IANA tarafından atanır. HTTP, HTTPS, SSH ve DNS bu aralıkta.
  • Kullanıcı portları (1024–49151): "Registered" portlar olarak da bilinir; bunları da IANA atar.
  • Dinamik portlar (49152–65535): "Private" ya da "ephemeral" portlar olarak da bilinir ve hiçbir hizmete atanmaz.

Dinamik aralık istemci tarafında kullanılır: tarayıcınız bir sunucunun 443 numaralı portuna, işletim sisteminin o an seçtiği geçici bir porttan bağlanır. İşletim sistemleri bu aralığı aynı biçimde kullanmıyor. Microsoft, Windows Vista ve Windows Server 2008'de IANA önerisine uymak için varsayılan dinamik aralığı 49152–65535 yaptı; Linux çekirdeğinin varsayılan yerel port aralığı ise 32768–60999.

Sık kullanılan port numaraları

IANA'nın port kaydında en sık karşılaşılan numaralar şunlar:

  • 20 ve 21: FTP (dosya aktarımı; 20 veri, 21 kontrol)
  • 22: SSH
  • 23: Telnet
  • 25: SMTP (e-posta aktarımı)
  • 53: DNS
  • 80: HTTP
  • 443: HTTPS (TLS üzerinden HTTP)
  • 445: SMB (kayıttaki adı microsoft-ds)
  • 1433: Microsoft SQL Server
  • 3306: MySQL
  • 3389: Uzak Masaüstü, RDP (kayıttaki adı ms-wbt-server)
  • 5432: PostgreSQL

Numaralar TCP ve UDP için ayrı ayrı kaydedilir; DNS'in 53 numarası örneğin ikisinde de kayıtlı. Bu numaralar zorunluluk değil, varsayılan: Microsoft da Uzak Masaüstü'nün dinlediği 3389 numaralı portun nasıl değiştirileceğini anlatıyor.

Fiziksel port ile ağ portu farklı şeyler

Switch'in, modemin ya da bilgisayarın üzerindeki Ethernet yuvasına da port deniyor, ama bu fiziksel bir bağlantı noktası. TCP/UDP portu ise yazılımda bir hizmeti tanımlayan numara. Switch'lerdeki "port güvenliği" (port security) özelliği de fiziksel portlarla ilgilidir. Fiziksel ağ tarafını LAN yazımızda anlattık.

Sunucu bir portu nasıl dinler?

Bir sunucu yazılımı çalışmaya başladığında belirli bir portu açar ve o porta gelen bağlantıları bekler; buna portu dinlemek (listen) denir. Web sunucusu 443'ü, SSH sunucusu 22'yi dinler. Sunucuların genel işleyişini sunucu yazımızda anlattık.

Bir makinede hangi portların dinlendiğini görmek için Linux'ta ss -tuln, Windows'ta netstat -ano kullanılabilir. ss bu parametrelerle TCP ve UDP'de dinleyen soketleri sayısal olarak listeler; netstat ise dinlenen portları ve bağlantıları süreç kimliğiyle (PID) birlikte gösterir.

Açık port riski ve port güvenliği

İnternete açık her port, saldırganın deneyebileceği bir kapı. Bu kapılar port taramasıyla bulunur: NIST SP 800-115 (Eylül 2008), etkin cihazlarda çalışan portları ve hizmetleri bir port tarayıcıyla belirlemeyi bir test yöntemi olarak tarif ediyor. Nmap'in sınıflandırmasında açık port bir uygulamanın bağlantı kabul ettiğini, kapalı port dinleyen uygulama olmadığını gösterir. Filtrelenmiş port ise bir paket filtresinin taramayı porta ulaştırmadığı anlamına gelir.

Temel ilke, gerekmeyen hiçbir portu açmamak:

  • Varsayılan olarak engelle: NIST SP 800-41 Rev. 1 (Eylül 2009), açıkça izin verilmeyen bütün gelen ve giden trafiğin engellenmesini öneriyor. Firewall kuralları bu yüzden "neyi açmam gerekiyor" sorusuyla yazılır.
  • Gereksiz hizmeti kaldır: NIST SP 800-123 (Temmuz 2008), sunucuda gerekmeyen hizmetlerin ve ağ protokollerinin kaldırılmasını istiyor. Dinleyen hizmet yoksa açık port da olmaz.
  • Uzak erişimi internete doğrudan açma: CISA'nın fidye yazılımı rehberine göre saldırganlar ağa çoğu zaman dışa açık ve zayıf korunan uzak hizmetlerden giriyor. Rehber RDP kullanımının sınırlanmasını ve 445 numaralı TCP portunun iki yönde engellenerek SMB'nin dışarıya kapatılmasını öneriyor.
  • Port değiştirmeyi koruma sanma: SSH'yi 22 yerine başka bir porttan yayınlamak hizmeti gizlemez; bütün portları tarayan bir araç onu yine bulur. NIST SP 800-123'e göre de sistem güvenliği, bileşenlerin gizli tutulmasına dayanmamalı.
  • Düzenli tara: CISA, özellikle internete açık cihazlarda düzenli zafiyet taraması öneriyor. Dışarıdan görünen portları düzenli taramayı zafiyet taraması hizmetimizde ele alıyoruz.

Web siteleri gibi açık kalması gereken portlarda koruma, portun önüne konan katmanlardan gelir: HTTP trafiğini inceleyen bir WAF (WAF yazımız) ya da istekleri sunucu yerine karşılayan bir reverse proxy (proxy yazımız). Açık bir portun gerçekten istismar edilip edilemeyeceğini sızma testi gösterir. Port ve firewall politikası, ağ güvenliği hizmetimizin kapsamında.

Sık sorulan sorular

Port ne demek? Ağda bir cihaza gelen trafiğin hangi uygulamaya ait olduğunu belirleyen numara demek. Türkçe arayüzlerde bağlantı noktası olarak da geçer.

IP port nedir? IP adresi ile port numarasının birlikte yazılmış hâlidir, 192.0.2.10:443 gibi. IP adresi cihazı, port numarası o cihazdaki hizmeti gösterir.

Port numaraları kaç tanedir? TCP ve UDP'de port numarası 0 ile 65535 arasındadır; yani her protokolde 65.536 numara var.

Açık port tehlikeli mi? Açık port, arkasında bağlantı kabul eden bir uygulama olduğunu gösterir. Hizmet gerekliyse ve güncel tutuluyorsa sorun değildir; gereksizse ya da yalnızca iç ağdan kullanılıyorsa internete kapatılmalıdır.

Port açma (port yönlendirme) nedir? Yerel ağdaki bir sunucuyu internete açmak için modemde ya da firewall'da tanımlanan kuraldır: dışarıdan belirli bir porta gelen trafik iç ağdaki cihaza yönlendirilir. Her açılan port yeni bir saldırı yüzeyi olduğu için gerekmedikçe kullanılmamalıdır.

80 ve 443 portları nedir? 80, şifrelenmemiş web trafiğinin (HTTP) portudur. 443 ise TLS ile şifrelenmiş web trafiği (HTTPS) için kullanılır.

Kaynaklar