Linux’ta Netstat ve SS Kullanarak Açık ve Dinleyen Portları Kontrol Etme
Bir Linux sisteminde açık ve dinleyen portları izlemek, 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 dinleyen portları 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. Dinleyen portlarınızı düzenli olarak denetlemek şunları yapmanıza olanak sağlar:
- Beklenmeyen portlarda çalışan yetkisiz hizmetleri belirleyin
- İzinsiz giriş girişimlerini veya tehlikeye atılmış işlemleri tespit edin
- Güvenlik duvarı kurallarının amaçlandığı gibi çalıştığını doğrulayın
- Yeni dağıtılan uygulamaların doğru arabirimlere bağlandığını onaylayın
- Kullanılmayan portları kapatarak saldırı yüzeyinizi azaltın
Bu, Shared 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.
| Terim | Açıklama |
|---|---|
| Açık Port | Bir uygulamanın gelen bağlantıları aktif olarak dinlediği port |
| Dinleyen Port | Ağ trafiğini bekleyen bir hizmete bağlı port |
| TCP (Transmission Control Protocol) | Bağlantı yönelimli, 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ı, arabirim istatistikleri ve dinleyen 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 etmekte ve birçok eski sistemde hala bulunmaktadır.
netstat Yükleme
netstat komutu net-tools paketinin bir parçasıdır ve modern Linux dağıtımlarında varsayılan olarak yüklü olmayabilir.
Debian / Ubuntu:
sudo apt install net-toolsCentOS / RHEL / AlmaLinux / Rocky Linux:
sudo yum install net-toolsAçık ve Dinleyen Portları Kontrol Etmek için netstat Kullanma
Sisteminizde tüm dinleyen TCP ve UDP portlarını görüntülemek için aşağıdaki komutu çalıştırın:
sudo netstat -tulnBayrak açıklaması:
| Bayrak | Açıklama |
|---|---|
-t | TCP portlarını göster |
-u | UDP portlarını göster |
-l | Yalnızca dinleyen portları göster |
-n | Ana 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ı Anlamak
- Yerel Adres — Hizmetin dinlediği IP adresi ve port numarası.
0.0.0.0hizmetin tüm kullanılabilir arabirimlerde dinlediği anlamına gelir. - Uzak Adres — Etkin bağlantılar için uzak IP ve port. Bir yıldız işareti (
*) henüz bağlantı kurulmadığı anlamına gelir. - Durum — Bağlantı durumu.
LISTENport açık olduğunu ve gelen bağlantıları beklediğini gösterir.
netstat ile Belirli Portları Filtreleme
Çıktıyı belirli bir port veya hizmeti yalıtmak için grep aracılığıyla yönlendirebilirsiniz. Örneğin, port 80 (HTTP) üzerinde herhangi bir şeyin dinlediğini kontrol etmek için:
sudo netstat -tuln | grep ":80"Port 443 (HTTPS) kontrol etmek için, bu, SSL Certificates 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 -tulnpss ile Portları Kontrol Etme
ss Nedir?
ss (soket istatistikleri), netstat için modern yedektir. Daha hızlı, daha verimli ve özellikle yüksek sayıda eşzamanlı bağlantısı 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 sözdizimini yakından yansıtır ve geçişi basit hale getirir:
ss -tulnBayrak açıklaması:
| Bayrak | Açıklama |
|---|---|
-t | TCP soketlerini göster |
-u | UDP soketlerini göster |
-l | Yalnızca dinleyen soketleri göster |
-n | Sayı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 sağlayabileceğinden çok daha fazla gelişmiş filtreleme ve görüntüleme seçenekleri sunar.
Yalnızca Dinleyen TCP Portlarını Göster
ss -tlYalnızca Dinleyen UDP Portlarını Göster
ss -ulİşlem Adlarını ve PID’leri Görüntüle
Belirli bir portu hangi işlemin kullandığını belirlemek için -p bayrağını kullanın:
ss -tulnpBu, sorun giderme için en yararlı komutlardan biridir — her dinleyen soketin yanında işlem adını ve PID’yi gösterir, hangi uygulamanın hangi portu 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 Portu Filtrele
Port 8080 üzerinde 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 İstatistiklerini Göster
ss -sBu, tür ve duruma göre toplam soketlerin hızlı bir özetini sağlar — olağandışı bağlantı hacimlerini tespit etmek için kullanışlıdır.
netstat ve ss: Doğrudan Karşılaştırma
| Özellik | `netstat` | `ss` |
|---|---|---|
| Performans | Meşgul sistemlerde daha yavaş | Önemli ölçüde daha hızlı |
| Varsayılan kullanılabilirlik | net-tools paketi gerektirir | Modern dağıtımlarda önceden yüklü |
| Filtreleme seçenekleri | Temel (grep gerekli) | Gelişmiş yerleşik filtreler |
| İşlem bilgisi | -p ile kullanılabilir | -p ile kullanılabilir |
| Çıktı detayı | Standart | Daha ayrıntılı soket bilgisi |
| Önerilen kullanım | Eski sistemler, aşinalık | Modern Linux ortamları |
netstat Ne Zaman Kullanılır
ssnin mevcut olmadığı eski Linux sistemlerindenetstatsözdizimi etrafında yazılmış komut dosyaları veya belgelerle çalışırkennet-toolsnin 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 ötesinde, kapsamlı bir port denetimi için çeşitli diğer yardımcı programlar değerlidir.
lsof Kullanma
lsof (açık dosyaları listele)
