Windows Server 2022 ortamınızı sertleştiriyorsanız, SMB v1'i devre dışı bırakmak müsaade edilemez bir gerekliliktir. Benim gördüğüm çok sayıda güvenlik ihlalinin bu eski protokolle başladığını gözlemledim, özellikle yanal hareketin kolay olduğu düz ağlarda. Ortamımda SMB v1'i telnet gibi görüyorum; etkinse bir bulgudur. İşte PowerShell kullanarak nasıl tamamen kapatırım ve durumunu nasıl doğrulayırım.
SMB v1 Neden Devre Dışı Bırakılmalı
SMB v1 eski, verimsiz ve kritik açıklardır. Şifreleme ve güvenli negoşasyon gibi modern güvenlik özelliklerine sahip değildir. WannaCry ve NotPetya bu protokolü doğrudan kullandı. Microsoft, Windows 10/Server 2016'dan itibaren bu protokolü kullanımdan kaldırdığını ilan etti ve Windows Server 2022'de varsayılan olarak kaldırıldı — ancak sadece temiz bir kurulum yapıyorsanız. Yükseltilmiş sistemler veya Dosya Sunucusu veya Yazdırma Hizmetleri gibi bazı roller sahip sistemlerde hâlâ aktif kalabilir.
Temel yapılandırmalar sırasında her zaman kontrol ederim. Etkin bırakmak STIG, CIS Referansları ve temel hijyen ihlali olur. Kullanmadığınızı düşünseniz bile, bazı eski uygulamalar veya üçüncü parti araçlar geri dönüş tetikleyebilir.
Set-SmbServerConfiguration ile SMB v1'i Devre Dışı Bırakma
SMB sunucu ayarlarını yönetmek için temel cmdlet Set-SmbServerConfiguration'dir. SMB v1'i devre dışı bırakmak için EnableSMB1Protocol bayrağını $false yaparsınız. Bu işlem yönetici yetkisi gerektirir ve tam etkisi için bir yeniden başlatma gerekir.
Ben çalıştırdığım komut şu şekildedir:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
-Force bayrağı onay istemesini atlar; bu otomatikleştirme veya uzak oturumlar için zorunludur. Yoksa yeniden başlatma gerektiği konusunda bir uyarı alırdınız — bu doğru olsa da, betiklemek tercihim.
Bu komutu çalıştırdıktan sonra, değişikliğin tam olarak uygulanması için sunucuyu yeniden başlatmanız gerekir. Hizmet aniden dinlemeyi bırakabilir ama bazı bileşenler eski durumu önbellekte tutar ve yeniden başlatılana kadar bu şekilde kalır.
Get-SmbServerConfiguration ile Durumu Doğrulama
SMB v1'in gerçekten kapalı olduğunu onaylamak için Get-SmbServerConfiguration cmdlet'ini kullanırım. Bu, sadece kayıt defterindeki değeri değil, geçerli etkili ayarları gösterir.
Çalıştırmanız gereken komut:
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
Çıktı False gösteriyorsa protokol devre dışı bırakılmıştır. Hala True ise ya komut uygulanamadı (izinleri kontrol edin) ya da sunucu yeniden başlatılmadı.
Bu kontrolü sertleştirme betiklerimde kullanırım ve sonucu loglarım. Örneğin:
$smb1Status = (Get-SmbServerConfiguration).EnableSMB1Protocol
if ($smb1Status) {
Write-Warning "SMB v1 hâlâ etkin. Yeniden başlatma gerekiyor veya çakışan politikalar var olabilir."
} else {
Write-Host "SMB v1 başarıyla devre dışı bırakıldı."
}
Bu bana otomasyon içinde net bir başarılı/başarısız sonucu verir.
Yaygın Tuzaklar ve Kontroller
PowerShell üzerinden devre dışı bırakıldıktan sonra bile, birkaç şeyi iyice kontrol etmeyi severim:
- Grup İlkesi: Etki alanına katılmış sunucular, GPO üzerinden SMB v1'i yeniden etkinleştirebilir.
Bilgisayar Yapılandırması > İlkeler > Yönetim Şablonları > Ağ > Lanman Workstationyolunu izleyin →Güvensiz konuk oturum açmalarını etkinleştir(dolaylı) veya daha yeni ilkelerde eski SMB ayarlarını kontrol edin.
- Windows Özellikleri: PowerShell üzerinden devre dışı bırakmak genellikle yeterli olur ama özelliğin kurulup kurulmadığını da doğrulayırım:
Get-WindowsFeature -Name FS-SMB1
Eğer Installed değeri Yes ise, onu kaldırırım:
Remove-WindowsFeature -Name FS-SMB1 -Restart
- İstemci Tarafı: Sunucu tarafını devre dışı bırakmak, istemcinin SMB v1 kullanmaya çalışmasını engellemez. Tam kilitlemek için istemci tarafını da devre dışı bırakırım:
Set-SmbClientConfiguration -EnableSMB1Protocol $false -Force
Ardından yeniden başlatırım. Bu, sunucunun eski cihazlara istemci olarak davranmasını önler — geçici olarak eski ekipman yönetiyorsanız veya jump host olarak kullanıyorsanız faydalıdır.
Geçici Olarak ihtiyaç duyulabilecek durumlar ve risk azaltma yöntemleri
Eski bir tarayıcı veya endüstriyel cihaz sadece SMB v1 konuşabiliyorsa, bu durumu gördüm. Ancak bu durumda genel olarak yeniden etkinleştirmezim. Bunun yerine:
- Cihazı üretim ağına rota olmayan bir VLAN'a yalıtırırım.
- SMB v1'i sadece sıkı güvenlik duvarı kuralları olan bir jump sunucusunda etkinleştiririm.
- Mutlak olarak gerekirse, SMB v1 → SMB v2/3 proxy araçları kullanırım (örneğin sertleştirilmiş Samba geçidi).
- Tüm SMB v1 denemelerini loglar ve izlerim — ransomware genellikle ilk olarak bunun存在nı test eder.
Yeniden etkinleştirme son çare olmalı, zaman sınırlı olmalı ve dokümantasyon altında olmalı. "Şayet gerekirse" diye bırakılmamalıdır.
Sertleştirme Temelleriyle Entegrasyon
Bu kontrolü, Windows Server 2022 sertleştirme betiklerime eklerim; LM kimlik doğrulamasını devre dışı bırakma, SMB şifrelemeyi etkinleştirme ve SMB bağlantı noktaları (445) için güvenlik duvarı kurallarını yapılandırma gibi diğer kontrollerle birlikte. SMB v1'i devre dışı bıraktıktan sonra şunları doğrulayırım:
- Port 445'te v1 imzalı dinleme olup olmadığı (laboratuvar ortamında
netstatveya Wireshark ile) - Denetim açıksa, Microsoft-Windows-SMBServer/Operational günlüğündeki Etkinlik Kimliği 3000'ın yokluğu — bu hiç v1 aktivitesi olmadığını onayar
Ağ yedeklemelerini güvenli hale getirme konulu yazımda bahsettiğim gibi, saldırı yüzeyini azaltmak bir araçla değil, katmanlar yaparak olur. SMB v1'i kapatmak en basit ve etkili katmanlardan biridir.
Final Doğrulama Kontrol Listesi
Bir sunucuyu sertleştirilmiş olarak kabul etmeden önce bu hızlı doğrulamayı çalıştırırım:
- [ ]
Get-SmbServerConfiguration | Select-Object EnableSMB1ProtocolsonucuFalsedöndürüyor mu? - [ ]
Get-WindowsFeature FS-SMB1çıktısıAvailable(kurulu değil) gösteriyor mu? - [ ] SMB v1'i etkinleştiren Grup İlkesi geçersizlemesi var mı diye bakıyorum.
- [ ] Değişiklikten sonra sunucu yeniden başlatıldı mı?
- [ ] İstemci tarafı da gerekiyorsa devre dışı bırakıldı mı?
Tüm kutular işaretliyse, SMB v1 etkili bir şekilde nötraleştirilmiştir. Glamoröz değil ama eski protokolleri kapatmak gerçek güvenliğin başlangıcıdır.
Kapak görseli: Unknown · CC0 (Openverse / kamu malı) · https://www.rawpixel.com/image/6042704/photo-image-public-domain-free
