2011-10-09 22 views
14

मुझे लिखने वाले एप्लिकेशन के लिए आउटबाउंड कनेक्शन के लिए विंडोज फ़ायरवॉल खोलने की आवश्यकता है।आउटबाउंड विंडोज फ़ायरवॉल अपवाद कैसे जोड़ें?

सबसे अच्छा जवाब मैं पता लगाने में सक्षम किया गया है

यहां हैं:

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

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

समस्या एक आउटबाउंड कि विधि केवल एक भीतर का नियम बनाता है, और नहीं राज करते हैं। (सी # और इनोसेटअप स्क्रिप्ट दोनों एक ही विधि का उपयोग करते हैं।) यह मेरे लिए पूरी तरह बेकार है।

विंडोज फ़ायरवॉल के लिए डिफ़ॉल्ट व्यवहार आउटबाउंड यातायात की अनुमति देना है, लेकिन यह गारंटी नहीं देता है कि कोई इसे नहीं बदलेगा।

मैं इसे इंस्टॉलर (इनोसेटअप का उपयोग करके) में सी # में करने के बजाय करना पसंद करूंगा।

क्या मुझे कुछ याद आया?

क्या कोई जानता है कि आउटबाउंड नियम कैसे बनाएं?

उत्तर

1

TechNet करता है: Create an Outbound Port Rule on Windows 7, Windows Vista, Windows Server 2008 or Windows Server 2008 R2

हालांकि मुझे लगता है कि आप इस तरह के नियमों प्रोग्राम केबनाने के लिए, यदि यह मामला आप Working with Group Policy Objects Programmatically में रुचि हो सकती है का मतलब है।

अंत में यदि आप स्थापना के दौरान ऐसा करने की योजना बना रहे हैं, तो InnoSetup सेटअप समय पर आवश्यक रजिस्ट्री कुंजियों को मर्ज करने में सक्षम होना चाहिए।

0

यह कई कार्यों में से एक है जिसे विंडोज कमांड लाइन टूल्स में पास किया जा सकता है। नेटेश उचित चीजें करता है, लेकिन यह (जैसा कि सब कुछ नेट्स करता है) ढूंढना असंभव है। सरल संस्करण है:
netsh firewall add allowedprogram <path> <name>
अधिक जानकारी के लिए चलाएँ:
netsh firewall add allowedprogram ?

इन किया जा सकता है या तो [Run] अनुभाग में या Exec फोन करके।

ध्यान दें कि यह विंडोज 7 में कमी है; यदि आप केवल Vista/2008 या बाद में लक्ष्यीकरण कर रहे हैं, तो आपको इसके बजाय netsh advfirewall firewall का उपयोग करना चाहिए। माइक्रोसॉफ्ट के बाद के पूर्व में कनवर्ट करने पर an article है, लेकिन मुझे अभी भी एक्सपी का समर्थन करना है, इसलिए मैंने यह नहीं किया है।

22

यदि आप अपने आवेदन के लिए कुछ अपवाद जोड़ना चाहते हैं तो आप नेट्स का उपयोग कर सकते हैं। (XP के लिए) कमांड लाइन में

लिखने: कमांड लाइन (W7 के लिए) में

netsh firewall add allowedprogram ? 

लिखने:

netsh advfirewall firewall add rule ? 

क्योंकि netsh फ़ायरवॉल आदेश यह अंतर मान्य नहीं है।इसके बजाए, हमें कमांड नेट्स एडफाइलवॉल फ़ायरवॉल का उपयोग करना होगा।

netsh फ़ायरवॉल आदेश के बजाय कमांड netsh advfirewall फ़ायरवॉल का उपयोग कर के बारे में अधिक जानकारी हम ज्ञानकोष वहाँ में देख सकते हैं: http://go.microsoft.com/fwlink/?linkid=121488

उदाहरण:

दूत के लिए सुरक्षा कैप्सूलीकरण बिना आने वाले ट्रैफ़िक के लिए एक नियम जोड़ा जा रहा है। exe:

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

पोर्ट 80 पर बाहर जाने वाले यातायात के लिए एक नियम जोड़ना:

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

पोर्ट 80 के माध्यम से टीसीपी के लिए सुरक्षा & यातायात एन्क्रिप्शन के साथ भीतर का यातायात के लिए नियम जोड़ना:

netsh advfirewall firewall add rule name="Require Encryption for Inbound TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow 
1

netsh के साथ समस्या यह है कि यह कुछ विंडोज संस्करणों पर काम नहीं करता है (उदाहरण के लिए विंडोज विस्टा बेसिक)। यही कारण है कि नेट्स का उपयोग किये बिना अपवाद जोड़ना बेहतर है। This article contains sample Inno Setup code

+0

यह विंडोज संस्करणों में इतना विश्वसनीय नहीं है; एमएसडीएन पर टिप्पणियां देखें: * "विंडोज फ़ायरवॉल एपीआई आवश्यकता अनुभाग में निर्दिष्ट ऑपरेटिंग सिस्टम में उपयोग के लिए उपलब्ध है। इसे बाद के संस्करणों में बदला या अनुपलब्ध किया जा सकता है। विंडोज विस्टा के लिए और बाद में, उन्नत सुरक्षा के साथ विंडोज फ़ायरवॉल का उपयोग एपीआई की सिफारिश की जाती है "*, आवश्यकताएं: न्यूनतम समर्थित क्लाइंट: विंडोज विस्टा, एसपी 2 के साथ विंडोज एक्सपी; न्यूनतम समर्थित सर्वर: एसपी 1 के साथ विंडोज सर्वर 2003। इसलिए, जैसा कि आप देख सकते हैं, यहां तक ​​कि विंडोज विस्टा पर भी यह एपीआई हिस्सा अनुशंसित नहीं है। एमएस कभी-कभी पागल होता है :-) – TLama