Görkem

WFN Üye
Konular
1,788
Mesajlar
1,824
Çözüm
1
Ticaret Puanı
0
Üyelik
1 Yıl 7 Ay 9 Gün
Konum
Adıyaman
Web Sitesi
Yok
Alanı
Reklam Al-Sat
1/1
Konu sahibi
PowerShell ile Windows Güvenlik Duvarı kuralı eklemek için PowerShell’i yönetici olarak açıp New-NetFirewallRule cmdlet’ini kullanabilirsiniz. Örneğin, yerel bilgisayarda TCP 8443 portuna gelen bağlantılara izin veren bir kural oluşturmak için aşağıdaki komut çalıştırılır. Komut başarılı olduğunda kural Windows Güvenlik Duvarı’na eklenir; ardından Get-NetFirewallRule ve port filtresiyle doğrulama yapılır.

Kod:
New-NetFirewallRule `
    -Name "Allow-TCP-8443-In" `
    -DisplayName "TCP 8443 gelen bağlantılara izin ver" `
    -Description "Uygulama servisi için TCP 8443 gelen bağlantı kuralı" `
    -Direction Inbound `
    -Protocol TCP `
    -LocalPort 8443 `
    -Action Allow `
    -Profile Any `
    -Enabled True

Buradaki -Name kuralın benzersiz teknik adıdır; -DisplayName ise yönetim ekranlarında görünen açıklayıcı addır. -Direction Inbound gelen trafiği, -Protocol TCP TCP protokolünü, -LocalPort 8443 sunucunun dinlediği yerel portu belirtir. -Action Allow eşleşen trafiğe izin verir. -Profile Any kuralı Etki Alanı, Özel ve Genel profillerde etkinleştirir; yalnızca belirli ağ profillerinde çalışması gerekiyorsa bu değeri Domain, Private veya Public olarak daraltın.

Kural eklemeden önce kontrol edilmesi gerekenler​


PowerShell oturumunun yönetici yetkisiyle açıldığından emin olun. Yetki yoksa genellikle erişim reddedildiğini belirten bir hata alırsınız ve kural oluşturulmaz. Ayrıca açacağınız portun gerçekten uygulama tarafından dinlendiğini kontrol edin; güvenlik duvarı kuralı oluşturmak, portu dinleyen bir uygulama başlatmaz.

Aynı amaçla daha önce oluşturulmuş bir kural varsa yeni bir kural eklemek yerine mevcut kuralı değiştirmek daha doğru olabilir. Kural adını veya görünen adını şu şekilde arayabilirsiniz:

Kod:
Get-NetFirewallRule -Name "Allow-TCP-8443-In" -ErrorAction SilentlyContinue
Get-NetFirewallRule -DisplayName "*8443*"

İlk komut sonuç döndürürse aynı -Name değeri zaten kullanılmıştır. Bu durumda yeni bir ad seçin veya mevcut kuralı Set-NetFirewallRule ile değiştirin. İkinci komut, görünen adında 8443 geçen kuralları listeler; bu çıktı tek başına portun gerçekten 8443 olduğunu kanıtlamaz, yalnızca kuralın adını gösterir.

Eklenen kural nasıl doğrulanır?​


Kuralın etkin ve izin verme yönünde olduğunu görmek için aşağıdaki komutu çalıştırın:

Kod:
Get-NetFirewallRule -Name "Allow-TCP-8443-In" |
    Format-List Name,DisplayName,Enabled,Direction,Action,Profile

Çıktıda Enabled : True, Direction : Inbound ve Action : Allow görmelisiniz. Port filtresini ayrıca kontrol edin:

Kod:
Get-NetFirewallRule -Name "Allow-TCP-8443-In" |
    Get-NetFirewallPortFilter |
    Format-List Protocol,LocalPort,RemotePort

Burada Protocol : TCP ve LocalPort : 8443 değerlerini görmeniz, kuralın hedeflediği trafiğin doğru tanımlandığını gösterir. Ancak bu çıktı, uygulamanın çalıştığını veya ağ üzerinden erişilebilir olduğunu kanıtlamaz. Uygulamanın portu dinlediğini aynı bilgisayarda şu komutla kontrol edebilirsiniz:

Kod:
Get-NetTCPConnection -LocalPort 8443 -State Listen

Sonuç dönmüyorsa güvenlik duvarı kuralı doğru olsa bile bağlantı kurulamaz; ilgili uygulama veya servis 8443 portunda dinlemiyor olabilir. Uzak bir istemciden erişimi sınamak için istemci bilgisayarda şu komut kullanılabilir:

Kod:
Test-NetConnection -ComputerName sunucu-adı -Port 8443

TcpTestSucceeded : True sonucu, istemcinin TCP bağlantısı kurabildiğini gösterir. False sonucu ise yalnızca güvenlik duvarını suçlamaz; DNS, yönlendirme, sunucunun portu dinlememesi, başka bir ağ cihazının engellemesi veya yanlış profil gibi nedenler de kontrol edilmelidir.

Gelen ve giden trafik için temel fark​


Kuralın sunucuya dışarıdan gelen bağlantıları yönetmesi için -Direction Inbound kullanılır. Sunucunun dışarıya yaptığı bağlantıları sınırlamak veya izin vermek için yön Outbound olarak değiştirilir.
AmaçYönÖrnek
Sunucudaki servise dışarıdan erişimInboundTCP 8443 gelen bağlantılarına izin
Sunucudan dışarıya bağlantıOutboundBelirli bir uzak porta giden trafiğe izin veya engel
Trafiği engellemeInbound veya Outbound-Action Block ile eşleşen trafiği düşürme
Örneğin TCP 8443 gelen bağlantılarını engellemek için aynı ölçütlerle -Action Block kullanılabilir. Ancak mevcut bir izin kuralı daha yüksek öncelikli veya farklı koşullarla eşleşiyorsa yalnızca yeni bir engelleme kuralı eklemek beklediğiniz sonucu vermeyebilir. Bu nedenle engelleme senaryolarında mevcut kuralları da Get-NetFirewallRule ile inceleyin.

Kuralı değiştirme, devre dışı bırakma veya silme​


Kuralın portunu ya da eylemini değiştirmek için kuralı silip yeniden oluşturmak yerine Set-NetFirewallRule kullanabilirsiniz. Örneğin kuralı engelleme durumuna almak için:

Kod:
Set-NetFirewallRule -Name "Allow-TCP-8443-In" -Action Block

Geçici olarak etkisiz bırakmak istiyorsanız kuralı silmeyin:

Kod:
Disable-NetFirewallRule -Name "Allow-TCP-8443-In"

Kural artık uygulanmaz fakat tanımı sistemde kalır ve Enable-NetFirewallRule ile yeniden etkinleştirilebilir. Kalıcı olarak kaldırmak için ise:

Kod:
Remove-NetFirewallRule -Name "Allow-TCP-8443-In"

Remove-NetFirewallRule kural tanımını siler; bu işlemden sonra kuralı yeniden kullanmak için baştan oluşturmanız gerekir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic