Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Güvenlik Linux

Linux’ta Netstat ve SS Kullanarak Açık ve Dinleyen Portları Kontrol Etme

Linux sisteminde açık ve dinleme portlarının izlenmesi, sunucu güvenliğini korumak, ağ sorunlarını tanılamak ve altyapınızı etkili bir şekilde yönetmek için en temel uygulamalardan biridir. Bir üretim web sunucusu, bir VPS Hosting ortamı veya bir Dedicated Server çalıştırıyor olsanız da, hangi portların açık olduğunu ve hangi hizmetlerin bunlara bağlı olduğunu tam olarak anlamak, yetkisiz erişimi önlemek, yanlış yapılandırmaları tespit etmek ve gereksiz saldırı yüzeylerini ortadan kaldırmak için gereken görünürlüğü sağlar.

Bu kapsamlı kılavuzda, herhangi bir Linux sisteminde açık ve dinleme portlarını kontrol etmek için netstat ve ss komutlarını nasıl kullanacağınızı, bunların güçlü yönlerini karşılaştıracağınızı ve daha derin ağ analizi için lsof ve nmap gibi ek araçları tanıtacağız.

Açık Portları İzlemenin Neden Önemli Olduğu

Sunucunuzdaki her açık port potansiyel bir giriş noktasını temsil eder. Yanlış yapılandırılmış, eski veya basitçe unutulmuş hizmetler sisteminizi istismardan açığa çıkarabilir. Dinleme portlarınızı düzenli olarak denetlemek şunları yapmanızı sağlar:

  • Yetkisiz hizmetleri beklenmeyen portlarda tanımlayın
  • İzinsiz giriş denemelerini veya tehlikeye atılmış işlemleri tespit edin
  • Güvenlik duvarı kurallarını doğru şekilde çalıştığını doğrulayın
  • Yeni dağıtılan uygulamaların doğru arayüzlere bağlandığını onaylayın
  • Kullanılmayan portları kapatın ve saldırı yüzeyinizi azaltın

Bu, Paylaşımlı Web Hosting ortamlarını veya birden fazla hizmetin aynı anda çalıştığı çok kiracılı sunucuları yöneten yöneticiler için özellikle kritiktir.

Portları ve Türlerini Anlamak

Araçlara dalmadan önce, komut çıktısında karşılaşacağınız terminolojiyi anlamak önemlidir.

TerimAçıklama
Açık PortGelen bağlantıları aktif olarak dinleyen bir uygulamanın bulunduğu port
Dinleme PortuAğ trafiğini bekleyen bir hizmete bağlı bir port
TCP (Transmission Control Protocol)Bağlantı odaklı, güvenilir, HTTP, SSH, FTP vb. tarafından kullanılır
UDP (User Datagram Protocol)Bağlantısız, daha hızlı ancak daha az güvenilir, DNS, NTP vb. tarafından kullanılır

netstat ile Portları Kontrol Etme

netstat Nedir?

netstat (ağ istatistikleri), ağ bağlantıları, yönlendirme tabloları, arayüz istatistikleri ve dinleme portları hakkında ayrıntılı bilgi sağlayan klasik bir komut satırı yardımcı programıdır. Modern dağıtımlarda ss lehine resmi olarak kullanımdan kaldırılmış olsa da, yaygın olarak kullanılmaya devam etmektedir ve birçok eski sistemde hala bulunmaktadır.

netstat Kurulumu

netstat komutu, modern Linux dağıtımlarında varsayılan olarak yüklenmeyebilecek net-tools paketinin bir parçasıdır.

Debian / Ubuntu:

sudo apt install net-tools

CentOS / RHEL / AlmaLinux / Rocky Linux:

sudo yum install net-tools

Açık ve Dinleme Portlarını Kontrol Etmek için netstat Kullanma

Sisteminizde tüm dinleme TCP ve UDP portlarını görüntülemek için aşağıdaki komutu çalıştırın:

sudo netstat -tuln

Bayrak açıklaması:

BayrakAçıklama
-tTCP portlarını göster
-uUDP portlarını göster
-lYalnızca dinleme portlarını göster
-nAna bilgisayar adlarını çözmek yerine sayısal adresleri görüntüle

Örnek Çıktı

Proto  Recv-Q  Send-Q  Local Address     Foreign Address   State
tcp         0       0  0.0.0.0:22        0.0.0.0:*         LISTEN
tcp         0       0  0.0.0.0:80        0.0.0.0:*         LISTEN
tcp6        0       0  :::443            :::*              LISTEN
udp         0       0  0.0.0.0:53        0.0.0.0:*

Çıktı Sütunlarını Anlama

  • Yerel Adres — Hizmetin dinlediği IP adresi ve port numarası. 0.0.0.0 hizmetin tüm kullanılabilir arayüzlerde dinlediği anlamına gelir.
  • Uzak Adres — Etkin bağlantılar için uzak IP ve port. Yıldız işareti (*) henüz hiçbir bağlantı kurulmadığı anlamına gelir.
  • Durum — Bağlantı durumu. LISTEN portun açık olduğunu ve gelen bağlantıları beklediğini gösterir.

netstat ile Belirli Portları Filtreleme

Çıktıyı belirli bir port veya hizmetin izolasyonu için grep aracılığıyla yönlendirebilirsiniz. Örneğin, port 80 (HTTP) üzerinde herhangi bir şeyin dinleme yapıp yapmadığını kontrol etmek için:

sudo netstat -tuln | grep ":80"

Port 443 (HTTPS) kontrol etmek için, bu port SSL Sertifikaları yüklü sunucular için gereklidir:

sudo netstat -tuln | grep ":443"

Her bağlantıdan sorumlu işlem adını ve PID’yi de görüntülemek için -p bayrağını ekleyin:

sudo netstat -tulnp

ss ile Portları Kontrol Etme

ss Nedir?

ss (socket statistics), netstat için modern bir yedektir. Daha hızlı, daha verimli ve özellikle yüksek sayıda eşzamanlı bağlantı olan sistemlerde daha zengin çıktı sağlar. ss komutu neredeyse tüm modern Linux dağıtımlarında varsayılan olarak dahil edilir ve ek kurulum gerektirmez.

Açık ve Dinleyen Portları Kontrol Etmek için ss Kullanma

ss sözdizimi netstat ile yakından benzerdir ve geçiş basittir:

ss -tuln

Bayrak açıklaması:

BayrakAçıklama
-tTCP soketlerini göster
-uUDP soketlerini göster
-lYalnızca dinleyen soketleri göster
-nSayısal adresleri görüntüle

Örnek Çıktı

Netid  State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
tcp    LISTEN  0       128     0.0.0.0:22            0.0.0.0:*
tcp    LISTEN  0       511     0.0.0.0:80            0.0.0.0:*
tcp    LISTEN  0       511        [::]:443             [::]:*
udp    UNCONN  0       0       0.0.0.0:53            0.0.0.0:*

ss Gelişmiş Kullanımı

ss komutu, netstat tarafından sağlanabilecek olanın çok ötesine geçen bir dizi gelişmiş filtreleme ve görüntüleme seçeneği sunar.

Yalnızca Dinleyen TCP Bağlantı Noktalarını Göster

ss -tl

Yalnızca Dinleyen UDP Bağlantı Noktalarını Göster

ss -ul

İşlem Adlarını ve PID’leri Görüntüle

Belirli bir bağlantı noktasını hangi işlemin kullandığını belirlemek için -p bayrağını kullanın:

ss -tulnp

Bu, sorun giderme için en yararlı komutlardan biridir — her dinleyen soket ile birlikte işlem adını ve PID’yi gösterir, hangi uygulamanın hangi bağlantı noktasına sahip olduğunu hemen açık hale getirir.

-p Bayrağı ile Örnek Çıktı

Netid  State   Local Address:Port   Process
tcp    LISTEN  0.0.0.0:80           users:(("nginx",pid=1234,fd=6))
tcp    LISTEN  0.0.0.0:22           users:(("sshd",pid=987,fd=3))
tcp    LISTEN  0.0.0.0:3306         users:(("mysqld",pid=2345,fd=21))

Belirli Bir Bağlantı Noktasına Göre Filtrele

8080 bağlantı noktasında hangi işlemin dinlediğini kontrol etmek için:

ss -tulnp | grep ":8080"

Tüm Kurulan TCP Bağlantılarını Göster

ss -tn state established

Özet İstatistikleri Göster

ss -s

Bu, türe ve duruma göre toplam soketlerin hızlı bir özetini sağlar — olağandışı bağlantı hacimlerini tespit etmek için yararlıdır.

netstat vs. ss: Doğrudan Karşılaştırma

Özellik`netstat``ss`
PerformansYoğun sistemlerde daha yavaşÖnemli ölçüde daha hızlı
Varsayılan kullanılabilirliknet-tools paketini gerektirirModern dağıtımlarda önceden yüklü
Filtreleme seçenekleriTemel (grep gerekli)Gelişmiş yerleşik filtreler
İşlem bilgisi-p ile kullanılabilir-p ile kullanılabilir
Çıktı detayıStandartDaha ayrıntılı soket bilgisi
Önerilen kullanımEski sistemler, tanıdık olmasıModern Linux ortamları

netstat Ne Zaman Kullanılır

  • ss nin mevcut olmadığı eski Linux sistemlerinde
  • netstat söz dizimine göre yazılmış betikler veya belgelerle çalışırken
  • net-tools nin zaten yüklü olduğu sistemlerde hızlı kontroller için

ss Ne Zaman Kullanılır

  • Herhangi bir modern Linux dağıtımında (Ubuntu 20.04+, CentOS 8+, Debian 10+, vb.)
  • Yüksek trafikli sunucularda daha hızlı çıktıya ihtiyaç duyduğunuzda
  • Gelişmiş filtreleme ve ayrıntılı soket analizi için

Port Denetimi için Ek Araçlar

netstat ve ss dışında, kapsamlı bir port denetimi için birkaç başka yardımcı program değerlidir.

lsof Kullanımı

lsof (açık dosyaları listele) ağ soketlerini dosya olarak ele alır ve bu da belirli bir portu hangi işlemin kullandığını belirlemek için başka bir güçlü yol sağlar.

Port 80’e bağlı olan işlemi kontrol etmek için:

sudo lsof -i :80

Tüm dinleme portlarını kontrol etmek için:

sudo lsof -i -P -n | grep LISTEN

Örnek çıktı:

COMMAND   PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
nginx    1234     root   6u  IPv4   23456      0t0  TCP *:80 (LISTEN)
sshd      987     root   3u  IPv4   12345      0t0  TCP *:22 (LISTEN)

nmap Kullanımı

nmap güçlü bir ağ tarama aracıdır ve hem yerel olarak hem de uzak ana bilgisayarlarda açık portları tespit edebilir. Güvenlik duvarı yapılandırmanızı harici bir perspektiften doğrulamak için özellikle yararlıdır.

Henüz mevcut değilse nmap yükleyin:

sudo apt install nmap       # Debian/Ubuntu
sudo yum install nmap       # CentOS/RHEL

Yerel makinedeki tüm TCP portlarını tarayın:

sudo nmap -sT localhost

Belirli bir IP adresinde açık portları tarayın:

sudo nmap -sV 192.168.1.100

-sV bayrağı ayrıca her açık portta çalışan hizmetin sürümünü algılamaya çalışır; bu, eski veya güvenlik açığı olan yazılımları belirlemek için çok değerlidir.

> Güvenlik Notu: nmap taramalarını yalnızca sahip olduğunuz veya tarama izni aldığınız sistemlere karşı çalıştırın.

Pratik Güvenlik İş Akışı: Sunucu Portlarınızı Denetleme

Bir Linux sunucusunda açık portları denetlemek için önerilen adım adım iş akışı aşağıdadır:

  1. İşlem bilgileriyle birlikte tüm dinleme portlarını listeleyin:
   ss -tulnp
  1. Her portu beklenen hizmetlerle karşılaştırın. Beklenmeyen bir portta bilinmeyen bir işlem görürseniz, hemen araştırın.
  1. Yalnızca yerel olarak erişilebilir olması gereken tüm arayüzlerde (0.0.0.0) dinleme yapan hizmetleri kontrol edin. Örneğin, bir veritabanı sunucusu (port 3306) tipik olarak 127.0.0.1 adresine bağlanmalı, 0.0.0.0 adresine değil.
  1. Güvenlik duvarı kurallarınızı doğrulayın iptables -L -n veya ufw status verbose ile yalnızca amaçlanan portların harici olarak açığa çıktığından emin olmak için.
  1. Harici bir ana bilgisayardan nmap kullanın internetten hangi portlara gerçekten ulaşılabilir olduğunu doğrulamak için, çünkü güvenlik duvarı kuralları ss tarafından yerel olarak bildirilenlerden farklı olabilir.
  1. Gerekli olmayan portları kapatın veya kısıtlayın güvenlik duvarınızı kullanarak veya ilişkili hizmeti durdurarak.

Hızlı Referans: En Kullanışlı Komutlar

# List all listening TCP and UDP ports (modern, recommended)
ss -tuln

# List listening ports with process names and PIDs
ss -tulnp

# List all listening ports using netstat (legacy)
sudo netstat -tulnp

# Check which process is using port 443
ss -tulnp | grep ":443"

# Check open ports with lsof
sudo lsof -i -P -n | grep LISTEN

# Scan local machine for open ports with nmap
sudo nmap -sT localhost

Sonuç

Açık ve dinleyen portları düzenli olarak denetlemek, Linux sunucu yönetiminin vazgeçilmez bir parçasıdır. netstat ve ss gibi araçlar, hangi hizmetlerin çalıştığı, hangi portları işgal ettikleri ve sisteminizde beklenmeyen bir şeyin olup olmadığı konusunda anında, ayrıntılı görünürlük sağlar.

Modern Linux ortamları için, ss açık seçimdir — daha hızlı, daha yetenekli ve varsayılan olarak mevcuttur. Ancak, netstat eski sistemler veya söz dizimi konusunda zaten rahat olan yöneticiler için güvenilir bir yedek olmaya devam etmektedir. Bu araçları lsof ve nmap ile desteklemek, sunucunuzun ağ maruziyetinin tam bir resmini sağlar.

Yeni bir VPS Hosting dağıtımını sağlamlaştırıyor, bir Dedicated Servers filosunu yönetiyor veya bir Email Hosting ortamını güvenli hale getiriyor olsanız da, port denetiminde uzmanlaşmak, altyapınızın güvenliğine ve güvenilirliğine doğrudan katkıda bulunan temel bir beceridir.