Konuyu Açan
#1
ss ile TCP durumlarını inceleme
Giriş ve temel kavramlar
Pratik örnekler ve yorumlar
İnceleme yaparken dikkat edilmesi gerekenler
Kapanış
Bu tekniklerle, sunucunuzdaki TCP durumlarını anlık olarak gözlemleyebilir, kapanış süreçlerini, açık portları ve hangi süreçlerin hangi uçlarla iletişim kurduğunu netleştirebilirsiniz. ss komutu ve filtreleriyle düzenli bir gözlem planı kurmak, ağ performansını ve güvenliğini artırır. Bu konuya ilişkin özel bir senaryo veya çıkarım deneyiminiz varsa paylaşabilirsiniz.
Bu yazı, ss komutunun TCP bağlantı durumlarını nasıl supap gibi ayırıp, hangi bilgileri verdiğini, hangi durum kodlarının ne anlama geldiğini somut örneklerle anlatır. Özellikle günlük sunucu yönetimi ve ağ gözlemi yapan kişiler için rehber niteliğindedir.
Giriş ve temel kavramlar
- ss (socket statistics), netstat’a kıyasla daha hızlı ve daha ayrıntılı bir держimci sağlar. /proc/net ve /proc/net/tcp gibi santrallerde saklanan bilgiler yerine anlık socket durumlarını doğrudan akış halinde sunar.
- TCP bağlantıları üç yönlü el sıkışma ve sonlandırma durumlarıyla ilerler. ss komutu bu durumları STATE sütununda gösterir: ESTAB (estable), SYN-SENT, SYN-RECV, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, LAST-ACK, TIME-WAIT gibi.
- -t bayrağı TCP akışlarını, -a tüm bağlantıları (dinleyenler, bağlananlar) ve -p ise işlem kimliğini/isimlerini gösterir. Bu kombinasyonlar günlükte spesifik bir bağlantıyı veya süreçleri hızlıca eşlemek için idealdir.
Pratik örnekler ve yorumlar
- Mevcut tüm TCP bağlantıları görmek:
KOD1
ss -t -a
Bu komut, dinleyen portlar ve aktif olarak karşı tarafla iletişim kuran her iki uç arasındaki bağlantıları listeler. STATE sütununda ESTAB olanlar aktif iletişimi gösterir.
- Belirli bir port üzerinden gelen/çıkış yapan bağlantıları filtrelemek:
KOD1
ss -t -a '(sport = :80 or dport = :80)'
Bu, web trafiğini veya 80 numaralı hizmetleri izlerken zararlı veya olağandışı bağlantıları hızlıca tespit etmeye yarar.
- Bir süreçle ilişkili TCP bağlantıları:
KOD1
ss -tp
-kimlik bilgisiyle süreç adı ve PID ile birlikte hangi süreçlerin hangi bağlantılara sahip olduğunu gösterir. Özellikle yeni başlatılan servislerin hangi istemcilerle konuştuğunu izlerken kullanışlıdır.
- ESTAB durumundaki aktif bağlantılar için filtre:
KOD1
ss -t state established
Bu, durumu zaten kurulu ve veri akışı sürdüren bağlantıları öne çıkarır. Sorun gidermede hangi hedeflerle iletişimin sürdüğünü görmek için yararlı olur.
- Zaman damgaları ve bağlam:
KOD1
ss -tunp | head -n 20
- u bayrağı ile IP ve bağlantı yönü, -n ile isim çözümlemesini atlar, -p ile süreç bilgisini görürsünüz. İlk satırlar, hızlıca hangi sunucunun hangi zamanda hangi bağlantıyla meşgul olduğuna dair kısa bir özet verir.
İnceleme yaparken dikkat edilmesi gerekenler
- TIME-WAIT baskınsa, kapanış sürecinin tamamlanması için yeterli zaman beklenir. Uzun süreli TIME-WAIT zincirleri, port tükenmesine veya yeni bağlantı açmada gecikmelere yol açabilir.
- ESTAB durumundaki uzun ömürlü bağlantılar, uygulama katmanında poligon gerektirebilir: yüksek gecikme, hatalı yönlendirme veya anormal trafiğin işaretleri olabilir.
- SYN-SENT/SYN-RECV durumlarında bekleyen bağlantılar, güvenlik politikaları veya uzaktaki hedefin yanıt vermemesi nedeniyle oluşabilir. Bu durumları takip etmek saldırı tespitine veya konfigürasyon sorunlarına işaret edebilir.
- Bağlantı ayrıntılarını alırken -p ile süreç bilgisini görmek, hangi servis veya daemonun bağlantıya sahip olduğunu netleştirir; bu, konfigürasyon sorunları veya port çakışmalarını hızlıca görmeyi sağlar.
Kapanış
Bu tekniklerle, sunucunuzdaki TCP durumlarını anlık olarak gözlemleyebilir, kapanış süreçlerini, açık portları ve hangi süreçlerin hangi uçlarla iletişim kurduğunu netleştirebilirsiniz. ss komutu ve filtreleriyle düzenli bir gözlem planı kurmak, ağ performansını ve güvenliğini artırır. Bu konuya ilişkin özel bir senaryo veya çıkarım deneyiminiz varsa paylaşabilirsiniz.
