SMB v1, WannaCry gibi bilinen güvenlik açıklarına sahip eski bir protokol olduğundan, modern ağlarda hiçbir zaman açık bırakılmamalıdır. Benim ortamımda, dahili denetimlerde kritik bir bulgu olarak değerlendiriyorum — eski sistemlerin varlığı bilinse bile, yanlışlıkla açılma veya yatay hareket riski çok yüksektir. İyi haber şu ki, Windows Server 2022'de PowerShell kullanarak SMB v1'i tamamen kapatmak oldukça basit ve çoğu durumda yeniden başlatma gerektirmez. Ancak bunu yapmadan önce, üretim hizmetlerini koparmamak için herhangi bir cihazın veya uygulamanın SMB v1'e bağımlı olup olmadığını kontrol etmelisiniz.
Check Current SMB v1 Status
İlk adım, SMB v1'in sunucuda şu anda etkin olup olmadığını doğrulamaktır. Bunun için PowerShell ile Windows özelliği durumunu sorgulayabilirsiniz. Bu komutu yönetici yetkileriyle çalıştırın:
Get-WindowsFeature FS-SMB1
Eğer State alanı Installed gösteriyorsa, SMB v1 aktif ve kaldırılması gerekir. Available veya Removed gösteriyorsa zaten kapalıdır. Bir recente sertleştirme geçişimde, Server 2016'dan yükseltilmiş bir etki alanı denetleyicisinde SMB v1'in etkin olduğunu buldum — geçiş sırasında gözden kaçan bir hataydı ve aylar boyunca fark edilmedi.
Disable SMB v1 Using PowerShell
SMB v1'i devre dışı bırakmak için FS-SMB1 özelliğini kaldırmanız gerekir. Windows Server 2022'de bu işlem, yeniden başlatma gerektirmeden çevrimiçi olarak yapılabilir. Aşağıdaki komutu kullanın:
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol -NoRestart
-NoRestart bayrağı, aniden yeniden başlatmayı önler; bu, sunucuyu uzaktan yönetiyorsanız veya iş saatleri içindeyseniz faydalıdır. Ancak, özellikle SMB v1'i aktif olarak kullanan bir hizmet varsa, değişikliğin tam etkisi için daha sonra bir yeniden başlatma gerekebilir. Bu komutu çalıştırdıktan sonra, durumunu tekrar Get-WindowsFeature FS-SMB1 ile doğrulayın — şimdi Available veya Removed göstermesi gerekir.
Confirm Disabling with Registry and Scanning Tools
PowerShell özelliği durumunu raporlarsa da, ben registry ve ağ tarama araçlarıyla da kontrol etmeyi severim. SMB v1, aşağıdaki registry anahtarıyla kontrol edilir:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Bu anahtar altında SMB1 değeri, devre dışı bırakmak için 0 olarak ayarlanmalıdır. Bunu şu şekilde kontrol edebilirsiniz:
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name SMB1
Eğer değer yoksa veya 0 ise, SMB v1 devre dışı bırakılmıştır. Ayrıca, Linux üzerindeki bir jump host'tan nmap kullanarak SMB v1'ye yanıt verip vermediğini tararım:
nmap -p 445 --script smb-protocols <windows-server-ip>
Eğer betik hiçbir şey döndürmezse ya da sadece SMB v2/v3 gösteriyorsa, devre dışı bırakma başarılı olmuştur. Laboratuvarımda, özelliğin kaldırılıp registry'de kalan izlerin temizlenemediği durumlar gördüm — bu yüzden her iki tarafı da kontrol etmeyi ihmal etmeyin.
Measure Impact on Legacy Clients
SMB v1'i üretim ortamında devre dışı bırakmadan önce, eski cihazların veya uygulamaların bu protokole bağımlı olup olmadığını değerlendirmelisiniz. Windows XP, Server 2003 veya belirli NAS cihazları gibi eski sistemler hâlâ SMB v1 kullanabilir. SMB sürüm kullanımını izlemek için yerleşik günlüğe kaydırmayı kullanabilirsiniz:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Ardından SMB v1 günlüğe kaydını geçici olarak etkinleştirin:
Set-SmbServerConfiguration -EnableSMB1ProtocolLogging $true
Güntelleri şu yol altında kontrol edin:
Applications and Services Logs > Microsoft > Windows > SMBServer > Operational
SMB v1 bağlantı girişimini gösteren Etkinlik Kimliği 3000'üne bakın. Bir durumda, bu günlüğe kaydı etkinleştirildikten sonra eski bir yedekleme aleti SMB v1 kullanıyor olduğunu keşfettim — bu bir yıl boyunca fark edilmeden çalışıyordu.
Re-enable Only If Absolutely Necessary
Kritik bir bağımlılık tespit ederseniz, SMB v1'i yeniden etkinleştirmek mümkündür ancak bu sadece geçici bir çözüm olmalıdır:
Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol
Etkinleştirdikten sonra, ağ üzerindeki erişimi sınırlı IP'ler için firewall kısıtlamalarıyla sınırlayın ve asla güvensiz ağlara açmayın. Bağımlılığı belgele ve eski sistemi yükseltmek veya değiştirmek için bir plan oluştur. Benim deneyimimde, SMB v1 bağımlılıklarının çoğu keşfedildikten sonra 60 gün içinde giderilebilir — çoğu zaman sadece bir firmware güncellemesi veya istemci yeniden yapılandırmasıyla.
Final Verification and Hardening Tips
SMB v1'i devre dışı bıraktıktan sonra, bunu temel güvenlik kontrollerine ekleyin. Ben sunucu sertleştirme betiklerime aşağıdaki doğrulama adımını ekliyorum:
if ((Get-WindowsFeature FS-SMB1).Installed) {
Write-Warning "SMB v1 is still enabled!"
exit 1
}
Bu, ilke değişiklikleri veya manuel geçersiz kılmalar nedeniyle ayarın geri dönmesini önler. Ayrıca, SMB v2 ve v3'ün düzgün yapılandırıldığından emin olun — şifreleme, imzalama ve діалект filtresi mümkünse etkinleştirilmelidir. Daha önce Spark Structured Streaming ile dış yazımları güvence altına alma konulu yazımda da belirttiğim gibi, eski protokolleri devre dışı bırakmak sadece bir katman olsa da, temel bir biridir ve整个攻击类を防ぐ基盤となる。
SMB v1'i devre dışı bırakmak, sadece bir kutuyu işaretlemekle değil, gerçek dünyada hasar verooraklı kalıcı bir saldırı yüzeyini kaldırmakla ilgilidir. PowerShell ile bu işlem hızlı, gerektiğinde tersine çevrilebilir ve doğrulanabilir. Kontrol et, kapat, izle ve onayla zaman ayır — ağınız bunun için çok daha güvenli olacaktır.
Kapak görseli: Negative Space · CC0 (Openverse / kamu malı) · https://stocksnap.io/photo/macbook-laptop-X0CYLUO8E0
