Debian 13 Trixie ile Fluxbox: Minimalist Masaüstü Ortamı Kurulumu ve Yapılandırması
Modern masaüstü ortamları her geçen gün daha fazla sistem...
Kurumsal ağlarda dosya sunucuları hâlâ kritik öneme sahip bileşenlerdir. Kullanıcıların günlük işlemleri, paylaşılan klasör yapıları, departman dizinleri, otomasyon yazılımlarının dosya tabanlı süreçleri gibi pek çok aktivite, SMB (Server Message Block) protokolü üzerinden gerçekleşir.
Bir sistem yöneticisi olarak, dosya sunucularını incelerken karşımıza sık sık bazı sorular çıkar:
Hangi istemci sunucuma bağlanıyor?
Bu istemci hangi paylaşım klasörlerine erişiyor?
Açtığı dosyalar neler?
Bu bağlantı hangi uygulama üzerinden geliyor?
Neden PID 4 görünüyor? bu bir problem mi? kötü amaçlı bir şey mi?
İşte bu blog yazısında, bu soruların tamamını gerçek bir örnek üzerinden adım adım ele alıyoruz.
Örnek senaryomuzda, dosya sunucusunda şu komut çalıştırılıyor:
cmdnetstat ano | findstr 10.20.30.5
Ve sonuç şu şekilde geliyor:
TCP 10.20.30.9:445 10.20.30.5:51795 ESTABLISHED 4TCP 10.20.30.9:445 10.20.30.5:51797 ESTABLISHED 4TCP 10.20.30.9:445 10.20.30.5:51798 ESTABLISHED 4
İlk bakışta anlamlı olan şey:
10.20.30.5, sunucuya 445 numaralı port üzerinden bağlanıyor.
Bu port, SMBv2/v3 protokollerinin standart bağlantı noktasıdır.
Dikkat çeken şey ise: PID 4.
PID 4 Neden Özel Bir PID'dir?
Windows’ta PID 4, dünyada yalnızca bir tek süreç için ayrılmıştır:
SYSTEM (NT Kernel & System Process)
Bu süreç, işletim sisteminin çekirdeğinin çalışmasını sağlar.
İçinde:
SMB sunucusu sürücüleri
Dosya paylaşımı bileşenleri
NFS / CIFS işleyicileri
Kernelmode network stack
Windows Defender’ın bazı çekirdek eklentileri
I/O scheduler yönetimi
Bellek yönetiminin büyük kısmı
gibi en düşük seviyeli bileşenler vardır.
Dolayısıyla bir SMB bağlantısı geldiğinde Windows işlem tablosu şu şekilde çalışır:
"Bu bağlantıyı kullanıcı uygulaması başlatmıyor. SMB protokolü kernel seviyesinden işleniyor. O hâlde bu bağlantı PID 4 üzerinden görünecek."
Ve bu tamamen doğru, beklenen, olağan bir durumdur.
Bir uygulamanın kötü amaçlı olduğuna işaret etmez.
SMB çok sık kullanılan ve performans açısından kritik bir protokoldür. Bu nedenle Microsoft, SMBv2’den itibaren protokolü kullanıcı modundan çıkarıp kernel seviyesine taşımıştır.
Bu sayede:
Daha düşük gecikme
Daha hızlı dosya listeleme
Daha az CPU kullanımı
Yüksek yoğunluklu bağlantılarda kararlılık
Kaya gibi sağlam bir güvenlik modeli
elde edilir.
Bu yüzden SMB bağlantısının PID 4 olarak görünmesi:
✔ Doğru
✔ Güvenli
✔ Tasarımsal bir davranıştır
> “Sunucuma bir şey mi bulaştı?”
> Hayır. Bu davranış Windows Server’ın doğal çalışma şeklidir.
10.20.30.5 Hangi Dosyalara Erişiyor?
İşte işin teknik olarak ilginç kısmı burada başlıyor.
Netstat yalnızca bağlantının olduğunu gösterir.
Ama bağlantının içeriği hakkında hiçbir şey söylemez.
Yani:
Hangi klasör?
Hangi dosya?
Ne zaman açtı?
Ne kadar süre açık kaldı?
Kullanıcı kimliği ne?
Okuma mı yaptı yazma mı yaptı?
Bunların hiçbirini netstat ile göremezsiniz.
Peki nasıl görürüz?
Windows Server bize bunun için çok güçlü araçlar sunuyor.
1. SMB Oturumlarını Görme – Bağlantının Kimliği
İlk adım, istemcinin sunucuda aktif bir oturumu olup olmadığını görmek:
powershell
GetSmbSession | Select ClientComputerName, ClientUserName, NumOpens
Bu komut size şunu söyler:
10.20.30.5 şu kullanıcı ile bağlı
Bu oturumda X adet dosya açık
Bağlantı SMBv2 mi SMBv3 mü
Oturum trafiği kaç MB
2. En Kritik Adım: Açık Dosyaları Listeme – Gerçekleri Görme
Bu komut, bir istemcinin o anda hangi dosyaları açtığını birebir gösterir:
powershell
GetSmbOpenFile | WhereObject {$_.ClientComputerName eq "10.20.30.5"} |
Select ClientComputerName, Path, ClientUserName
Bu sayede direkt olarak:
“Hangi paylaşım klasörüne girilmiş?”
“Hangi dosya açılmış?”
“Okuma mı yazma mı yapılmış?”
“Kim erişmiş?”
hepsini net bir şekilde görürüz.
Örnek bir çıktı:
ClientComputerName : 10.20.30.5Path : \\10.20.30.9\Shared\HR\salary.xlsxClientUserName : corpintra\user1
Bu noktada artık bütün tablo netleşmiş olur:
İstemci → 10.20.30.5 Erişilen dosya → salary.xlsx Paylaşım yolu → HR Kullanıcı → user1
🟧 3. Gerçek Zamanlı İzleme – ShareMonitor / Sysinternals
Eğer canlı olarak:
kim hangi klasörü açtı,
dosyanın adı neydi,
paylaşımdan ne okundu ne yazıldı
görmek istiyorsanız Sysinternals’ın “ShareMonitor” aracı bunu anlık gösterir.
Her açılan dosya şöyle görünür:
10.20.30.5 opened \\10.20.30.9\Accounting\Rapor.xlsx10.20.30.5 read \\10.20.30.9\Shared\TaskList.docx
Ağ trafiğini canlı takip etmek, özellikle de büyük şirket ortamlarında çok değerli bir yetenektir.
Eğer SMB Audit Log aktifse:
Event Viewer → Microsoft → Windows → SMBServer → Operational
Başlıklar altında:
3000 → File Read
3001 → File Write
3002 → File Create
3003 → Directory Access
gibi ID’lerle tüm hareketler kaydedilir.
Bu loglar:
Forensic incelemelerde
Veri sızıntısı araştırmalarında
Kullanıcı hareket analizlerinde
çok işe yarar.
Bir istemci dosya sunucusuna bağlandığında bağlantının PID 4 altında görünmesi tamamen olağan bir durumdur.
Bu SMB protokolünün Windows’ta kernel seviyesinde çalışmasından kaynaklanır.
Önemli olan; istemcinin hangi dosyalara eriştiğini, hangi kullanıcıyla bağlandığını, hangi klasörü açtığını doğru araçlarla tespit edebilmektir.
Bu yazıda anlattığımız araçlar:
GetSmbSession → Oturum kimliği
GetSmbOpenFile → Açılan dosyalar
ShareMonitor → Canlı izleme
SMBServer Logs → Adli inceleme
sistemin tüm resmini net şekilde görmeyi sağlar.
Aşağıya talep ettiğin üç bölümü blog yazısına ek içerik olarak hazırladım.
Hepsi profesyonel – anlaşılır – teknik olarak doğru şekilde düzenlendi.
SMB dünyasında sık geçen kavramların Türkçe–İngilizce karşılıkları ve kısa açıklamaları:
| Türkçe Terim | İngilizce Terim | Açıklama |
|---|---|---|
| Dosya Paylaşımı | File Sharing | Ağ üzerinden klasör/dosya paylaşımı. SMB’nin temel amacı. |
| Paylaşım (Paylaştırılmış klasör) | Share / Shared Folder | SMB ile erişilebilen paylaştırılmış klasör. |
| Oturum | Session | Bir istemcinin sunucuya kurduğu kimlik doğrulamalı bağlantı. |
| Oturum Kimliği | Session ID | Her SMB bağlantısına verilen benzersiz numara. |
| Dosya Tanıtıcısı | File Handle | Açık bir dosyayı temsil eden sistem tanıtıcısı. |
| Okuma / Yazma | Read / Write | SMB üzerinden dosya erişim türleri. |
| Paylaşım Yolu | UNC Path | \server\share\ klasör yapısının tam yolu. |
| Kimlik Doğrulama | Authentication | Kullanıcı giriş kontrolü (NTLM/Kerberos). |
| Yetkilendirme | Authorization | Kullanıcının klasör/dosyaya erişim yetkisi. |
| SMB Protokolü | SMB Protocol | Windows dosya paylaşım protokolü (CIFS olarak da bilinir). |
| SMBv1 | SMB Version 1 | Güvensiz, eski sürüm. Artık devre dışı bırakılması önerilir. |
| SMBv2 | SMB Version 2 | Performans ve güvenlik olarak büyük sıçrama, modern sürüm. |
| SMBv3 | SMB Version 3 | Şifreleme, kararlılık ve hız geliştirmeleri içerir. |
| Network Signed | SMB Signing | SMB paketlerinin imzalanması, güvenlik artırır. |
| SMB Encryption | SMB Şifreleme | Veri akışını uçtan uca şifreler. |
| SMB Session Key | Oturum Anahtarı | İstemci–sunucu arasındaki şifreleme anahtarı. |
| Kernel-Mode Driver | Çekirdek Modu Sürücüsü | SMB gibi trafiklerin PID 4 altında çalışmasının nedeni. |
| File Locking | Dosya Kilitleme | Çoklu kullanıcı erişiminde çakışmayı önler. |
Bu sözlük, blog yazına ayrı bir bölüm olarak eklenebilir.
SMBv2 → Windows Vista/Server 2008 ile geldi
SMBv3 → Windows 8/Server 2012 ile geldi
Aşağıdaki tablo, iki sürüm arasındaki farkları net şekilde ortaya koyar:
| Özellik | SMBv2 | SMBv3 |
|---|---|---|
| Çıkış Yılı | 2006 | 2012 |
| Performans | SMBv1’e göre çok daha hızlı | SMBv2’den %20–40 daha hızlı |
| Güvenlik | SMB Signing destekler | SMB Encryption destekler (büyük fark!) |
| Şifreleme | Yok | AES-128-GCM / AES-128-CCM |
| Çoklu Kanal | Yok | Multichannel (birden fazla ağ arayüzü → yüksek hız) |
| Dayanıklılık | Temel düzeyde | SMB Durable Handles ile kesintisiz bağlantı |
| Failover | Yok | Clustered Shared Volume desteği, kesintisiz failover |
| Sıkıştırma | Yok | SMB Compression (2020 güncellemesiyle) |
| OTOMATİK Yük Paylaşımı | Yok | SMB Direct + RDMA desteği |
| Kullanım Alanı | Genel dosya paylaşımı | Veri merkezleri, yüksek yük, büyük dosya akışı, Hyper-V |
SMBv3, hem hız hem güvenlik hem dayanıklılık açısından en ideal sürümdür.
Günümüz sunucularında SMBv1 kapalı, SMBv2/3 açık olarak çalışması önerilir.
Aşağıdaki script, belirli bir istemci IP adresinin (ör: 10.1.0.24) hangi dosyalara eriştiğini otomatik izler, her 10 saniyede bir kontrol eder ve log kaydı oluşturur.
✔ Hangi dosyalara erişildiğini bulur
✔ Kullanıcı bilgisiyle birlikte log’a yazar
✔ Tarih-saat damgası ekler
✔ Gerçek zamanlı takip sağlar
✔ Log dosyasını CSV olarak üretir
# ============================
# SMB Otomatik İzleme Scripti
# ============================
$TargetIP = "10.1.0.24" # İzlenecek istemci IP
$LogFile = "C:\SMB_Logs\smb_log.csv"
# Log dosyası yoksa oluştur
if (-Not (Test-Path $LogFile)) {
"Timestamp,ClientIP,User,FilePath" | Out-File -FilePath $LogFile -Encoding utf8
}
Write-Host "SMB izleme başlatıldı... IP: $TargetIP" -ForegroundColor Green
Write-Host "Log dosyası: $LogFile"
while ($true) {
$files = Get-SmbOpenFile | Where-Object {
$_.ClientComputerName -eq $TargetIP
}
foreach ($file in $files) {
$timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
$entry = "$timestamp,$($file.ClientComputerName),$($file.ClientUserName),$($file.Path)"
# Log kaydını yaz
Add-Content -Path $LogFile -Value $entry
Write-Host "[KAYIT] $entry" -ForegroundColor Yellow
}
Start-Sleep -Seconds 10 # Her 10 saniyede bir kontrol et
}
C:\Scripts\smb-monitor.ps1
mkdir C:\SMB_Logs
powershell -ExecutionPolicy Bypass -File C:\Scripts\smb-monitor.ps1
C:\SMB_Logs\smb_log.csv
Her satırda şunlar olacak:
2025-12-03 16:22:10,10.1.0.24,corpintra\user1,\\10.1.0.9\Shared\Finance\budget.xlsx