Linux Sunucuda Port Dinleme ve netstat Komutu Kullanımı

Linux sunucularında ağ trafiğini yönetmek ve güvenlik kontrollerini gerçekleştirmek, sistem yöneticilerinin temel görevlerindendir.

Linux sunucularında ağ trafiğini yönetmek ve güvenlik kontrollerini gerçekleştirmek, sistem yöneticilerinin temel görevlerindendir. Bu bağlamda, port dinleme durumunu izlemek kritik öneme sahiptir. Port dinleme, sunucunun belirli bir ağ portu üzerinden gelen bağlantıları kabul etmeye hazır olmasını ifade eder. Bu işlem, netstat komutu ile etkin bir şekilde gerçekleştirilebilir. Netstat, ağ bağlantılarını, dinleme portlarını ve ilgili istatistikleri görüntüleyen güçlü bir araçtır. Bu makalede, netstat komutunun port dinleme işlemlerinde kullanımını adım adım inceleyeceğiz. Kurumsal ortamlarda sunucu güvenliğini artırmak ve performans sorunlarını teşhis etmek amacıyla bu komutun pratik uygulamalarını ele alacağız.

Netstat Komutunun Temel Yapısı ve Seçenekleri

Netstat komutu, Linux sistemlerinde standart olarak bulunur ve SysVinit veya systemd tabanlı dağıtımlarda sorunsuz çalışır. Temel syntax’ı netstat [seçenekler] şeklindedir. Port dinleme için en sık kullanılan seçenekler arasında -t (TCP bağlantıları), -u (UDP bağlantıları), -l (dinleme modundaki soketler), -n (sayısal format, hostname çözümlemesi yapmadan) ve -p (süreç PID ve isimlerini gösterir) yer alır. Örneğin, netstat -tuln komutu, hem TCP hem UDP protokollerinde dinleme yapan portları listeler. Bu komutun çıktısında, Local Address sütunu altında 0.0.0.0:PORT veya [::]:PORT gibi ifadeler dinleme durumunu belirtir.

Çıktıyı anlamak için, şu örneğe bakalım: netstat -tuln | grep :80. Bu, 80 numaralı HTTP portunun dinlenip dinlenmediğini kontrol eder. Eğer Apache veya Nginx gibi bir web sunucusu çalışıyorsa, çıktı tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN şeklinde görünür. Bu bilgi, sunucuda beklenmedik port açılımlarını tespit etmekte vazgeçilmezdir. Kurumsal sunucularda düzenli olarak bu komutları cron job’lara entegre ederek loglama yapabilirsiniz, böylece anormallikler e-posta ile bildirilebilir.

TCP ve UDP Dinleme Portlarını Listeleme

TCP dinleme için netstat -tlnp, UDP için netstat -ulnp kullanın. -p seçeneği ile hangi sürecin (PID/program adı) portu dinlediğini görürsünüz, örneğin sshd/1234. Bu, güvenlik denetimlerinde faydalıdır; bilinmeyen bir süreç 22 portunu dinliyorsa inceleme gerektirir. Pratikte, root yetkisiyle çalıştırın ki tüm süreçler görünsün. Çıktıyı filtrelemek için grep ile belirli port aralıklarını sorgulayın: netstat -tlnp | grep ':(1000\|2000)'.

İnsan Okunabilir Çıktı ve Filtreleme Teknikleri

-n yerine hostname çözümlemesi için -r (routing tablosu) ekleyin, ancak port dinlemede sayısal tutun. Uzun listeleri yönetmek için netstat -tuln | awk '{print $4}' | cut -d: -f2 | sort -u ile sadece port numaralarını çıkarın. Bu pipeline, 500+ portlu sunucularda pratiklik sağlar ve script’lerde kullanılır.

Sunucuda Port Dinleme Durumunu Pratikte Kontrol Etme

Sunucu yönetiminde port dinleme kontrolü, firewall kurallarını doğrulamak ve servis durumunu teyit etmek için şarttır. Adım adım bir yaklaşım izleyin: Önce netstat -tuln ile genel tarama yapın. Ardından, belirli bir servis için test edin; örneğin MySQL (3306) için netstat -tlnp | grep 3306. Eğer dinlenmiyorsa, servis durumunu systemctl status mysql ile kontrol edin ve systemctl start mysql ile başlatın. IPv6 dinlemesini görmek için [::]:3306 arayın.

Güvenlik açısından, yalnızca gerekli portların dinlendiğinden emin olun. UFW veya firewalld ile kısıtlayın: ufw status verbose. Netstat ile tespit edilen gereksiz dinlemeleri kapatın, örneğin kill PID. Kurumsal ortamda, bu kontrolleri haftalık script’lerle otomatize edin: Bir bash script’i oluşturun ki #!/bin/bash\nnetstat -tuln > /var/log/portscan.txt gibi loglasın ve diff ile değişiklikleri raporlasın. Bu yöntem, zero-day açıklarını erken yakalar.

Yaygın Servis Portları ve Kontrol Örnekleri

HTTP/HTTPS (80/443), SSH (22), FTP (21) gibi portları hedefleyin. Örnek: netstat -plunt | grep -E ':(80|443)'. Nginx için nginx/4567 görünürse sağlıklıdır. Dinlenmiyorsa konfigürasyonu kontrol edin: /etc/nginx/sites-enabled/default içinde listen 80; satırını doğrulayın ve nginx -t ile test edip yeniden yükleyin.

Güvenlik Taraması ve Anormal Durumlar

Beklenmedik portlar (örneğin 12345) için netstat -tuln | grep -v 'known_ports.txt' ile karşılaştırın. PID’yi ps aux | grep PID ile inceleyin. Rootkit şüphesinde lsmod ve chkrootkit kullanın. Düzenli tarama, compliance standartlarını (örneğin PCI-DSS) sağlar.

Netstat Alternatifleri ve İleri Düzey Kullanımlar

Modern Linux dağıtımlarında netstat, iproute2 paketindeki ss komutuyla değiştirilmiştir; daha hızlı ve detaylıdır. ss -tuln, netstat’in tam eşdeğeridir ve -p ile süreçleri gösterir. İleri düzeyde, netstat -s ile protokol istatistikleri alın: TCP SYN_RECV sayısını izleyerek DDoS ataklarını tespit edin. watch -n 5 'netstat -tuln' ile gerçek zamanlı izleme yapın.

Performans optimizasyonu için, dinleme backlog’unu ayarlayın: sysctl net.core.somaxconn=1024. Netstat ile öncesi-sonrası karşılaştırın. Kurumsal sunucularda, Zabbix veya Nagios gibi araçlarla netstat çıktılarını entegre edin. Bu entegrasyon, proaktif izleme sağlar ve downtime’ı minimize eder. Ayrıca, container ortamlarında (Docker) netstat yerine docker ps ile port mapping’leri kontrol edin, ancak host seviyesinde netstat vazgeçilmez kalır.

Sonuç olarak, Linux sunucularda port dinleme ve netstat kullanımı, sistem güvenliğini ve operasyonel verimliliği doğrudan etkiler. Düzenli kontrollerle olası riskleri önleyin, otomasyonu benimseyin ve alternatif araçları öğrenin. Bu pratikler, kurumsal altyapılarınızı daha dayanıklı kılar.

Kategori: Sunucu Yönetimi
Yazar: Lorem
çerik: 686 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 24-02-2026
Güncelleme: 24-02-2026