İçeriğe geç

AğGüvenlik duvarları

PowerShell ile Windows Defender Güvenlik Duvarı kuralları

Windows Server 2022 ve 2025'te Defender Güvenlik Duvarı'nı yönetin: profiller, port açma, Uzak Masaüstü'nü IP ile sınırlama ve adres engelleme.

  • Orta
  • 15 dk okuma
  • Güncellendi

Denendiği sistemler: Windows Server 2022, Windows Server 2025

Bu sayfada
  1. Başlamadan önce
  2. 1. adım: Profilleri kontrol edin
  3. 2. adım: Bir port açın
  4. 3. adım: Uzak Masaüstü'nü adreslerinizle sınırlayın
  5. 4. adım: Herhangi bir servisi belirli adreslerle sınırlayın
  6. 5. adım: Bir adresi engelleyin
  7. Kuralları gözden geçirin ve kaldırın
  8. Düşürülen paketleri kaydedin
  9. Sorun giderme
  10. Sonraki adımlar

Windows Defender Güvenlik Duvarı Windows Server'a yerleşiktir ve varsayılan olarak etkindir. Bu rehber onu, konsolda tıklamaktan daha hızlı tekrarlanabilen ve belgelenebilen PowerShell ile yönetir. Komutları Yönetici olarak çalıştır ile açılmış PowerShell'de çalıştırın. 198.51.100.7 yerine kendi IP adresinizi yazın.

Başlamadan önce

  • Uzak Masaüstü ile oturum açın ve kuralları değiştirirken oturumu açık tutun.
  • Hizmet sayfanızda görünüyorsa web konsolunu hazır tutun.
  • Kendi genel IP adres(ler)inizi bilin.

1. adım: Profilleri kontrol edin

PowerShell
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction

Doğrulama: tüm profiller Enabled : True durumundadır. Varsayılan gelen eylemi, hiçbir kuralın izin vermediği trafiği engeller. Ağınızın hangi profili kullandığını bulmak için:

PowerShell
Get-NetConnectionProfile

2. adım: Bir port açın

Bir web sunucusu için gelen HTTPS'e izin verin:

PowerShell
New-NetFirewallRule -DisplayName "Allow HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

Daha fazla örnek:

PowerShell
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "Game server UDP" -Direction Inbound -Protocol UDP -LocalPort 27015-27030 -Action Allow

Doğrulama: porta bir servis dinlemeye başladığında bilgisayarınızdan Test-NetConnection 203.0.113.10 -Port 443 başarılı olur.

3. adım: Uzak Masaüstü'nü adreslerinizle sınırlayın

Yerleşik Uzak Masaüstü kuralları her yerden bağlantıya izin verir. Bunları adreslerinizle sınırlayın:

PowerShell
Set-NetFirewallRule -DisplayGroup "Remote Desktop" -RemoteAddress 198.51.100.7, 203.0.113.0/24

İlkini kapatmadan önce hâlâ çalıştığını doğrulamak için ikinci bir Uzak Masaüstü oturumu açın. Adresiniz sık değişiyorsa bunun yerine Uzak Masaüstü için bir VPN kullanın.

4. adım: Herhangi bir servisi belirli adreslerle sınırlayın

Örneğin SQL Server'a yalnızca uygulama sunucunuzdan izin verin:

PowerShell
New-NetFirewallRule -DisplayName "SQL from app server" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 198.51.100.20 -Action Allow

5. adım: Bir adresi engelleyin

PowerShell
New-NetFirewallRule -DisplayName "Block 203.0.113.50" -Direction Inbound -RemoteAddress 203.0.113.50 -Action Block

Engelleme kuralları izin kurallarından önceliklidir.

Kuralları gözden geçirin ve kaldırın

Kendi etkin gelen kurallarınızı portlarıyla listeleyin:

PowerShell
Get-NetFirewallRule -Direction Inbound -Enabled True | Where-Object DisplayName -like "Allow*" | Get-NetFirewallPortFilter

Bir kuralı ve adres filtresini gösterin, devre dışı bırakın veya kaldırın:

PowerShell
Get-NetFirewallRule -DisplayName "Allow HTTPS" | Get-NetFirewallAddressFilter
Disable-NetFirewallRule -DisplayName "Allow HTTPS"
Remove-NetFirewallRule -DisplayName "Allow HTTPS"

Düşürülen paketleri kaydedin

PowerShell
Set-NetFirewallProfile -Profile Domain,Private,Public -LogBlocked True -LogFileName "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log"

Neyin nereden engellendiğini görmek için C:\Windows\System32\LogFiles\Firewall\pfirewall.log kaydını okuyun.

Sorun giderme

Uzak Masaüstü çalışmayı durdurdu. Adresiniz kuralda yok. Web konsolundan Set-NetFirewallRule -DisplayGroup "Remote Desktop" -RemoteAddress Any çalıştırın, ardından doğru adresi ekleyin. Bkz. güvenlik duvarı değişikliğinden sonra erişimi kaybetmek.

Bir porta izin verildi ama hâlâ erişilemiyor. Servis dinlemiyor ya da yalnızca 127.0.0.1 üzerinde dinliyor. Get-NetTCPConnection -State Listen -LocalPort 443 ile kontrol edin.

Güvenlik duvarı izin verdiği halde 25 numaralı porttan posta gönderilemiyor. HyperDC VPS'lerde giden 25 numaralı port varsayılan olarak kapalıdır. 3 ay veya daha uzun süreyle satın alınan hizmetlerde bir destek bildirimi açtığınızda talep üzerine açılır. O zamana kadar postayı 587 portu üzerinden bir aktarıcıyla (relay) gönderin.

Görünen grup bulunamıyor. Başka bir dilde kurulmuş sunucularda grup adları çevrilmiştir. Get-NetFirewallRule | Select-Object -ExpandProperty DisplayGroup -Unique ile listeleyin.

Sonraki adımlar

Sık sorulan sorular

Güvenlik duvarı varsayılan olarak açık mı?

Evet. Windows Defender Güvenlik Duvarı tüm profillerde etkindir ve bir kural izin vermedikçe istenmeyen gelen trafiği engeller. IIS gibi bir rolü kurmak genellikle ihtiyaç duyduğu kuralları ekler.

Sunucuma hangi profil uygulanıyor?

Genellikle Public; çünkü sunucunun ağı bir etki alanı veya güvenilir bir özel ağ değildir. Tüm profiller için yazılan kurallar her zaman uygulanır.

Kurallar IPv6'ya da uygulanır mı?

Evet. Adres sınırı olmayan bir kural IPv4 ve IPv6'ya uygulanır. RemoteAddress ile kısıtlıyorsanız kullanıyorsanız IPv6 adreslerini de listeleyin.

Bunun yerine grafik konsolu kullanabilir miyim?

Evet. Gelişmiş Güvenlik Özellikli Windows Defender Güvenlik Duvarı'nı açmak için wf.msc çalıştırın. Buradaki PowerShell komutları aynı işi yapar ve tekrarlaması ve belgelemesi daha kolaydır.

Her şeyi nasıl geri alırım?

netsh advfirewall reset varsayılan politikayı geri yükler ve kendi kurallarınızı kaldırır. Değişiklikleriniz bağlantınızı kestiyse bunu web konsolundan çalıştırın.

Şifre Oluştur

Lütfen onaylayın