2011-10-09 17 views
14

Yazdığım bir uygulama için Windows Güvenlik Duvarı için giden bağlantılarını açmam gerekiyor. Giden Windows Güvenlik Duvarı Özel Durumu Nasıl Eklenir?

Ben bulabildiniz oldum en iyi yanıtlar

Buradasınız:

http://www.shafqatahmed.com/2008/01/controlling-win.html

http://www.vincenzo.net/isxkb/index.php?title=Adding_a_rule_to_the_Windows_firewall

sorun bir giden bu yöntem sadece bir gelen kuralı oluşturur, ve değil kural. (Hem C# hem de InnoSetup betiği aynı yöntemi kullanır.) Bu benim için tamamen işe yaramaz.

Windows Güvenlik Duvarı'nın varsayılan davranışı, giden trafiğe izin vermektir, ancak bu, birinin bunu değiştirmeyeceğini garanti etmemektedir.

Bunu, yükleyicide (InnoSetup kullanarak) C# yerine yapmayı tercih ederim.

Bir şey mi özledim?

giden kuralının nasıl oluşturulduğunu biliyor mu?

cevap

0

Bu, Windows komut satırı araçlarına aktarılabilen birçok görevden biridir. netsh uygun şeyleri yapar, ama (netsh'in yaptığı her şey gibi) bulmak imkansızdır. Basit sürümü:
netsh firewall add allowedprogram <path> <name>
fazla ayrıntı için, çalıştırın:
netsh firewall add allowedprogram ?

Bu işlem, ya [Run] bölümünde veya Exec arayarak.

Bunun Windows 7'de amortismana tabi olduğunu unutmayın; Yalnızca Vista/2008 veya sonraki bir sürümünü hedefliyorsanız, bunun yerine netsh advfirewall firewall kullanmalısınız. Microsoft, eski ikincisinden dönüştürmede an article'a sahiptir, ancak hala XP'yi desteklemem gerekiyor, bu yüzden bunu yapmadım.

22

Uygulamanız için bazı istisnalar eklemeniz gerekiyorsa netsh'u kullanabilirsiniz. (XP için) komut satırında

yazma: (W7 için) komut satırında

netsh firewall add allowedprogram ? 

yazma: netsh firewall komut nedeniyle bu fark kullanımdan kaldırılmıştır

netsh advfirewall firewall add rule ? 

.Bunun yerine, netsh advfirewall güvenlik duvarı komutunu kullanmalıyız. Biz orada Bilgi Bankası'ndaki görebilirsiniz netsh firewall komutu yerine komut netsh advfirewall güvenlik duvarı kullanarak yaklaşık

fazla bilgi: http://go.microsoft.com/fwlink/?linkid=121488

Örnekler:

haberci güvenlik kapsülleme olmadan gelen trafik için bir kural ekleme. exe:

netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:\programfiles\messenger\msmsgs.exe" security=authnoencap action=allow 

80. porttan giden trafik için bir kural ekleme:

netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out localport=80 action=block 

80 portu TCP için güvenlik & trafik şifreleme ile gelen trafik kuralları ekleme:

netsh advfirewall firewall add rule name="Require Encryption for Inbound TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow 
1
netsh ile sorunu bazı Windows sürümlerinde çalışmıyor olmasıdır

(örn Windows Vista Basic). Bu nedenle, netsh kullanmadan istisnayı eklemek daha iyidir. This article contains sample Inno Setup code.

+0

Bu, Windows sürümlerinde de güvenilir değildir; MSDN'deki sözlerine bakın: * "Windows Güvenlik Duvarı API'sı Gereksinimler bölümünde belirtilen işletim sistemlerinde kullanılabilir. Bu, sonraki sürümlerde değiştirilebilir veya kullanılamaz. Windows Vista ve sonraki sürümlerde, Gelişmiş Güvenlik Özellikli Windows Güvenlik Duvarı kullanımı API önerilmektedir "*, Gereksinimler: Minimum desteklenen istemci: Windows Vista, SP2 ile Windows XP; Minimum desteklenen sunucu: Windows Server 2003 SP1 ile. Yani, gördüğünüz gibi, bu API parçası olan Windows Vista'da bile önerilmez. MS bazen çılgın :-) – TLama

İlgili konular