Port Nedir? Ağ Portları, Yaygın Servisler ve Güvenlik

Ağ · · 9 dk okuma · Sorgulaa Editör Ekibi

Port ne işe yarar?

IP adresi bir veri paketini doğru cihaza ulaştırır, ama iş orada bitmez. Aynı sunucu aynı anda web sayfası sunuyor, e-posta alıyor ve uzaktan yönetim bağlantısı kabul ediyor olabilir. Gelen paketin bu programlardan hangisine teslim edileceğini belirleyen şey port numarasıdır. Sık kullanılan benzetmeyle IP adresi bir apartmanın sokak adresiyse, port daire numarasıdır: postacı binayı adresle bulur, mektubu doğru kapıya numarayla bırakır.

Port fiziksel bir şey değildir; cihazın arkasındaki kablo yuvalarıyla ilgisi yoktur. TCP ve UDP başlıklarında yer alan 16 bitlik bir sayıdan ibarettir ve bu yüzden 0 ile 65535 arasında değer alır. Bu rehber portların nasıl çalıştığını, hangi numaranın hangi servise ait olduğunu, bir portun “açık” olmasının gerçekte ne anlama geldiğini ve güvenlik açısından nelere dikkat edilmesi gerektiğini anlatıyor.

Bir bağlantının anatomisi: soket kavramı

Her bağlantının iki ucu vardır ve her uç bir IP adresi ile bir port numarasının birleşimiyle tanımlanır; bu çifte soket denir. Tarayıcınızla https://ornek.com.tr adresini açtığınızda hedef bellidir: sunucunun IP’si ve HTTPS’in standart portu olan 443. Kaynak tarafında ise işletim sisteminiz o bağlantı için yüksek numaralı, geçici bir port seçer. Ortaya çıkan bağlantı şuna benzer:

192.168.1.20:51734 → 203.0.113.10:443

Aynı siteye ikinci bir sekme açtığınızda hedef aynı kalır ama kaynak port değişir (örneğin 51735). Sunucu, aynı 443 portuna gelen binlerce bağlantıyı bu sayede birbirinden ayırır: her bağlantıyı benzersiz kılan şey kaynak IP, kaynak port, hedef IP, hedef port ve protokolden oluşan beşlidir. Sunucu tarafında bir programın belirli bir portta bağlantı beklemesine o portu dinlemek (listen) denir; bir portun açık olması, arkasında dinleyen bir program olması demektir.

TCP ile UDP arasındaki fark

Port numaraları iki ayrı taşıma protokolü için ayrı ayrı tanımlıdır; TCP 53 ile UDP 53 farklı kapılardır. İki protokolün çalışma felsefesi birbirinden hayli farklıdır.

ÖzellikTCPUDP
BağlantıVeri göndermeden önce üçlü el sıkışmayla bağlantı kurulurBağlantı kurulmaz; paket doğrudan gönderilir
GüvenilirlikKaybolan paketler yeniden gönderilir, sıra korunurTeslim ve sıra garantisi yoktur
Ek yükDaha fazla; onaylar ve akış denetimi vardırÇok düşük; başlık küçüktür
Uygun olduğu işlerWeb, e-posta, dosya aktarımı, uzak oturumDNS sorguları, sesli ve görüntülü görüşme, çevrimiçi oyun, zaman eşitleme

TCP’de istemci SYN gönderir, sunucu SYN-ACK ile karşılık verir, istemci ACK ile onaylar ve ancak bundan sonra veri akar. Bu, eksiksiz teslimin önemli olduğu her yerde tercih edilir: bir web sayfasının yarısının kaybolması kabul edilemez. UDP’de ise gecikmenin düşük olması tamlıktan önemlidir: görüntülü görüşmede kaybolan bir kareyi yeniden istemek anlamsızdır, çünkü geldiğinde çoktan geçmiş olacaktır. Bazı servisler ikisini birden kullanır; DNS sıradan sorgular için UDP, büyük cevaplar ve bölge aktarımları için TCP kullanır. HTTP/3’ün temelindeki QUIC protokolü de UDP 443 üzerinde çalışır.

Port aralıkları

65536 olası numara, kullanım amacına göre üç bölgeye ayrılmıştır:

  • 0–1023, iyi bilinen portlar: HTTP, SMTP, SSH gibi temel servislere ayrılmıştır. Unix benzeri sistemlerde bu aralıktaki bir portu dinlemek geleneksel olarak yönetici yetkisi gerektirir.
  • 1024–49151, kayıtlı portlar: Veritabanları ve uygulama sunucuları gibi belirli yazılımlar için IANA nezdinde kaydedilmiş numaralardır. MySQL’in 3306’sı, PostgreSQL’in 5432’si bu aralıktadır.
  • 49152–65535, dinamik ya da geçici portlar: İstemcilerin giden bağlantılarda kaynak port olarak kullandığı havuzdur. Tam aralık işletim sistemine göre değişebilir.

Önemli bir nokta: bu atamalar gelenektir, teknik zorunluluk değil. Bir web sunucusunu 8080’de, SSH’ı 2222’de çalıştırmanıza hiçbir şey engel olmaz. Standart portların değeri, istemcinin numarayı ayrıca belirtmek zorunda kalmamasındadır; tarayıcıya https:// yazdığınızda 443’ü kendisi varsayar.

En sık karşılaşılan portlar

PortProtokolServisNot
20, 21TCPFTPŞifresizdir; yerine SFTP ya da FTPS tercih edilmeli
22TCPSSH ve SFTPŞifreli uzak oturum ve dosya aktarımı
23TCPTelnetŞifresizdir; internete açık olmamalı
25TCPSMTPSunucular arası e-posta aktarımı
53UDP ve TCPDNSAlan adı çözümleme
80TCPHTTPŞifresiz web; genellikle 443’e yönlendirir
110, 995TCPPOP3, POP3SE-posta alma; 995 şifreli sürümdür
143, 993TCPIMAP, IMAPSE-posta eşitleme; 993 şifreli sürümdür
123UDPNTPSaat eşitleme
443TCP ve UDPHTTPSŞifreli web; UDP tarafı HTTP/3 içindir
465, 587TCPSMTP gönderimiE-posta istemcilerinin kimlik doğrulayarak ileti göndermesi
3306TCPMySQL ve MariaDBNormalde internete açık olmamalı
5432TCPPostgreSQLNormalde internete açık olmamalı
3389TCPRDPWindows uzak masaüstü; en sık hedef alınan portlardandır

E-posta tarafındaki ayrım sık karıştırılır: 25 numaralı port sunucuların kendi aralarındaki aktarım içindir ve birçok internet servis sağlayıcısı, spam’i önlemek amacıyla ev kullanıcılarının dışarıya doğru 25’e bağlanmasını engeller. E-posta programınızın giden sunucu ayarında 587 ya da 465 kullanmanızın nedeni budur.

Açık, kapalı, filtreli: üç durum

Bir porta dışarıdan bağlanmayı denediğinizde üç farklı sonuçla karşılaşabilirsiniz ve her biri farklı bir şey anlatır:

  • Açık: Portu dinleyen bir program var ve bağlantıyı kabul ediyor. TCP’de SYN paketine SYN-ACK cevabı gelir.
  • Kapalı: Pakete ulaşılıyor ama o portta dinleyen bir program yok. İşletim sistemi bunu açıkça bildirir; TCP’de RST cevabı döner ve bağlantı denemesi anında “reddedildi” hatasıyla sonuçlanır.
  • Filtreli: Aradaki bir güvenlik duvarı paketi sessizce düşürüyor. Hiçbir cevap gelmez ve deneme zaman aşımına uğrar. Portun arkasında bir servis olup olmadığı dışarıdan anlaşılamaz.

Bu ayrım sorun giderirken doğrudan işe yarar. “Bağlantı reddedildi” hatası alıyorsanız ağ yolu açıktır; sorun servisin çalışmamasında ya da yanlış portu dinlemesindedir. Deneme uzun süre bekleyip zaman aşımına uğruyorsa paketler bir yerde düşürülüyordur; bakılacak yer güvenlik duvarı kurallarıdır. Bir diğer klasik tuzak, servisin yalnızca 127.0.0.1 adresini dinlemesidir: sunucunun içinden bağlanabilirsiniz ama dışarıdan port kapalı görünür. Veritabanları için bu çoğu zaman bilinçli ve doğru bir ayardır.

Port yönlendirme ve NAT

Ev ve ofis ağlarında cihazlar 192.168.x.x gibi özel adresler kullanır ve internete modemin tek genel IP adresi üzerinden çıkar. Bu çeviriyi yapan mekanizma NAT’tır. Giden bağlantılarda sorun yoktur: modem hangi iç cihazın hangi bağlantıyı başlattığını tablosunda tutar ve cevapları doğru cihaza iletir. Dışarıdan başlatılan bağlantılarda ise modem, gelen paketi içerideki hangi cihaza vereceğini bilemez ve paketi düşürür. Bu, farkında olmadan yararlandığınız doğal bir koruma katmanıdır.

İçerideki bir cihaza dışarıdan erişmek gerektiğinde port yönlendirme kuralı tanımlanır. Genel adımlar şöyledir:

  1. Hedef cihaza sabit bir iç IP verin: Modemin DHCP ayarlarından adres rezervasyonu yapın; yoksa cihazın adresi değiştiğinde kural boşa düşer.
  2. Modem arayüzünde yönlendirme kuralını oluşturun: Dış port, iç IP, iç port ve protokolü (TCP, UDP ya da ikisi) girin. Örneğin dış 8443 → 192.168.1.50:443.
  3. Cihazın kendi güvenlik duvarını kontrol edin: Modem paketi iletse bile işletim sistemi güvenlik duvarı engelleyebilir.
  4. Dışarıdan test edin: Aynı ağın içinden yapılan test çoğu modemde yanıltıcı sonuç verir. Mobil veri üzerinden deneyin ya da Sorgulaa’nın port sorgulama aracı gibi çevrimiçi bir denetleyiciyle kendi genel IP adresinizdeki portu yoklayın.

Kuralı doğru yazdığınız hâlde port dışarıdan açılmıyorsa olası neden CGNAT’tır: birçok servis sağlayıcı, IPv4 adres kıtlığı yüzünden aboneleri ortak bir genel IP’nin arkasına alır. Bu durumda modeminizin dış arayüzünde gördüğünüz adres, internette göründüğünüz adresle aynı değildir ve port yönlendirme çalışmaz. Çözüm, sağlayıcıdan genel (statik ya da dinamik) bir IP talep etmek ya da bir tünel veya VPN çözümü kullanmaktır.

Açık portlar ve güvenlik

Açık port kendi başına bir güvenlik açığı değildir; bir web sunucusunun 443’ü açık olmak zorundadır. Risk, portun arkasındaki servistedir: güncellenmemiş bir yazılım, zayıf bir parola ya da hiç kimlik doğrulaması istemeyen bir yönetim arayüzü. İnternete bağlı her genel IP adresi otomatik tarayıcılar tarafından sürekli yoklanır; yeni açtığınız bir sunucunun günlüklerinde dakikalar içinde oturum açma denemeleri görmeniz olağandır. Buna karşı temel ilkeler şunlardır:

  • Varsayılan olarak reddet: Güvenlik duvarında gelen trafiğin tamamını kapatıp yalnızca gerçekten gereken portları açın. Açılan her port için “bu neden açık?” sorusunun bir cevabı olmalı.
  • Kullanılmayan servisleri kapatın: Çalışmayan bir servis saldırıya uğrayamaz. Sunucuda hangi programın hangi portu dinlediğini Linux’ta ss -tulpn, Windows’ta netstat -ano komutuyla görebilirsiniz.
  • Yönetim portlarını herkese açmayın: SSH, RDP ve veritabanı portlarına erişimi belirli IP adresleriyle sınırlayın ya da yalnızca VPN üzerinden erişilebilir kılın. Veritabanının internete doğrudan açık olması için neredeyse hiçbir zaman geçerli bir neden yoktur.
  • Kimlik doğrulamayı güçlendirin: SSH’ta parola yerine anahtar kullanın, mümkün olan her yerde çok faktörlü doğrulamayı etkinleştirin, tekrarlanan başarısız denemeleri otomatik engelleyen bir mekanizma kurun.
  • Şifresiz protokolleri bırakın: FTP yerine SFTP, Telnet yerine SSH, düz POP3 ve IMAP yerine şifreli sürümleri.
  • Modemde UPnP’yi gözden geçirin: UPnP, ağdaki cihazların sizin haberiniz olmadan port yönlendirme kuralı açmasına izin verir. Gerekmiyorsa kapatın; açıksa kural listesini ara sıra kontrol edin.

Portu standart olmayan bir numaraya taşımak (örneğin SSH’ı 22’den başka bir porta almak) günlüklerdeki otomatik deneme gürültüsünü azaltır, ama bir güvenlik önlemi sayılmaz; servis yeni numarada da bulunabilir. Asıl koruma erişim kısıtlaması ve güçlü kimlik doğrulamadır.

Port taraması hakkında bir not

Kendi sunucunuzun dışarıdan nasıl göründüğünü düzenli olarak kontrol etmek iyi bir güvenlik alışkanlığıdır; unutulmuş bir test servisini ya da yanlışlıkla açık kalmış bir yönetim panelini ilk fark eden siz olmalısınız. Ancak port taraması yalnızca size ait olan ya da sahibinden açık izin aldığınız sistemlerde yapılmalıdır. Başkasına ait sistemleri izinsiz taramak, barındırma ve internet sağlayıcılarının kullanım koşullarını ihlal eder, hesabınızın kapatılmasına yol açabilir ve ülkeye göre hukuki sonuçlar doğurabilir.

Sık yapılan hatalar

  • “Port açık değil” deyip yalnızca modeme bakmak: Zincirde en az dört halka vardır: servis çalışıyor mu, doğru adresi dinliyor mu, cihazın güvenlik duvarı izin veriyor mu, modem ya da bulut güvenlik grubu yönlendiriyor mu. Sırayla içeriden dışarıya doğru kontrol edin.
  • TCP ile UDP’yi karıştırmak: Oyun sunucuları ve VPN’lerin çoğu UDP kullanır. Kuralı TCP olarak yazarsanız port kapalı görünmeye devam eder. UDP’nin bağlantısız yapısı nedeniyle dışarıdan test edilmesinin de TCP kadar kesin sonuç vermediğini unutmayın.
  • Bulut sunucuda yalnızca işletim sistemi güvenlik duvarını açmak: Bulut sağlayıcıların çoğunda sunucunun önünde ayrı bir güvenlik grubu katmanı bulunur; ikisinde de izin gerekir.
  • Geçici açılan portu unutmak: “Test için bir günlüğüne” açılan kurallar yıllarca kalır. Açtığınız her kurala bir not ve mümkünse bir son tarih ekleyin.
  • DMZ özelliğini kolay çözüm sanmak: Modemdeki DMZ seçeneği, seçilen cihazın tüm portlarını internete açar. Tek bir port için bütün kapıları açmak yerine yalnızca gereken portu yönlendirin.
  • Veritabanını 0.0.0.0 adresinde dinletmek: Uygulama ve veritabanı aynı sunucudaysa 127.0.0.1 yeterlidir; ayrı sunuculardaysa özel ağ adresini dinletip erişimi uygulama sunucusunun IP’siyle sınırlayın.

Özetle: IP adresi paketi cihaza, port numarası ise cihazdaki doğru programa ulaştırır. TCP güvenilirlik, UDP hız içindir. Bir portun açık olması arkasında dinleyen bir servis bulunduğunu, filtreli olması ise arada bir güvenlik duvarı olduğunu gösterir. Güvenli bir yapılandırmanın özü basittir: yalnızca gerekeni açın, açtığınızı güncel ve iyi korunur tutun, dışarıdan nasıl göründüğünüzü ara sıra kendiniz kontrol edin.