यह आलेख पावरशेल का उपयोग करके उन्नत सुरक्षा के साथ अंतर्निहित विंडोज डिफेंडर फ़ायरवॉल की सेटिंग्स और नियमों को प्रबंधित करने के तरीके के बारे में मूल बातें देता है। हम विभिन्न नेटवर्क प्रोफाइलों के लिए फ़ायरवॉल को सक्षम/अक्षम करने, फ़ायरवॉल नियमों को बनाने या हटाने और सक्रिय फ़ायरवॉल नियमों के वर्तमान सेट को दिखाने वाली सुविधाजनक तालिका प्राप्त करने के लिए एक छोटी पीएस स्क्रिप्ट लिखने पर विचार करेंगे।
आप ग्राफिक कंसोल से विंडोज फ़ायरवॉल सेटिंग्स का प्रबंधन कर सकते हैं:नियंत्रण कक्ष -> सिस्टम और सुरक्षा -> विंडोज डिफेंडर फ़ायरवॉल . हालाँकि, Windows 8.1 (Windows Server 2012 R2) से शुरू करके आप अंतर्निहित NetSecurity का उपयोग कर सकते हैं फ़ायरवॉल को प्रबंधित करने के लिए पावरशेल मॉड्यूल।
पहले, Windows फ़ायरवॉल नियमों और सेटिंग्स को प्रबंधित करने के लिए निम्न कमांड का उपयोग किया जाता था:netsh advfirewall firewall
विंडोज 10 पर नेटसिक्योरिटी मॉड्यूल में 85 कमांड उपलब्ध हैं। आप पूरी सूची प्रदर्शित कर सकते हैं:
Get-Command -Module NetSecurity
PowerShell से Windows फ़ायरवॉल नेटवर्क प्रोफ़ाइल कैसे प्रबंधित करें?
Windows फ़ायरवॉल में तीन प्रकार के नेटवर्क प्रोफ़ाइल हैं:
- डोमेन - एक सक्रिय निर्देशिका डोमेन में कंप्यूटर पर लागू होता है
- निजी - घर या कॉर्पोरेट नेटवर्क
- सार्वजनिक - सार्वजनिक नेटवर्क
नेटवर्क लोकेशन अवेयरनेस (NLA) अपने डेटाबेस में नेटवर्क प्रकारों की जानकारी रखता है। आप अपनी नेटवर्क प्रोफ़ाइल (स्थान) को बदल सकते हैं यदि यह गलत तरीके से पाई गई है।
प्रत्येक नेटवर्क प्रोफ़ाइल (स्थान) उपयोग किए गए फ़ायरवॉल नियमों के सेट से भिन्न हो सकती है। डिफ़ॉल्ट रूप से, कंप्यूटर के सभी नेटवर्क इंटरफेस फ़ायरवॉल द्वारा सुरक्षित होते हैं, और सभी तीन प्रकार के प्रोफाइल उन पर लागू होते हैं।
सभी तीन नेटवर्क प्रोफाइल को सक्षम करने के लिए:डोमेन, सार्वजनिक और निजी, इस कमांड का उपयोग करें:
Set-NetFirewallProfile -All -Enabled True
या इसके बजाय विशिष्ट प्रोफ़ाइल सेट करें सभी :
Set-NetFirewallProfile -Profile Public -Enabled True
तीनों नेटवर्क स्थान के लिए फ़ायरवॉल को अक्षम करने के लिए, कमांड का उपयोग करें:
Set-NetFirewallProfile -All -Enabled False
Set-NetFirewallProfile cmdlet का उपयोग करके, आप प्रोफ़ाइल विकल्प (एक डिफ़ॉल्ट क्रिया, लॉगिंग, एक पथ और लॉग फ़ाइल का आकार, अधिसूचना सेटिंग्स, आदि) बदल सकते हैं।
आप जानते होंगे कि आधुनिक ओएस संस्करणों में सभी प्रोफाइल के लिए विंडोज फ़ायरवॉल सक्षम है। सभी आउटबाउंड कनेक्शन की अनुमति है और इनबाउंड वाले को प्रोफ़ाइल सेटिंग में (अनुमति वाले को छोड़कर) ब्लॉक कर दिया गया है।
आइए सभी इनबाउंड कनेक्शन को ब्लॉक करने के लिए सार्वजनिक प्रोफ़ाइल के लिए डिफ़ॉल्ट क्रिया को बदलें।
Set-NetFirewallProfile –Name Public –DefaultInboundAction Block
आप वर्तमान प्रोफ़ाइल सेटिंग इस प्रकार प्रदर्शित कर सकते हैं:
Get-NetFirewallProfile -Name Public
यदि आप GPO का उपयोग करके अपनी Windows फ़ायरवॉल सेटिंग्स का प्रबंधन करते हैं, तो आप वर्तमान परिणामी प्रोफ़ाइल सेटिंग निम्नानुसार प्रदर्शित कर सकते हैं:
Get-NetFirewallProfile -policystore activestore
सुनिश्चित करें कि सभी फ़ायरवॉल सेटिंग्स कंप्यूटर के सभी नेटवर्क इंटरफेस पर लागू होती हैं।
Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases
यदि सभी इंटरफेस सुरक्षित हैं, तो कमांड निम्नलिखित लौटाएगा:
DisabledInterfaceAliases : {NotConfigured}
आप विशिष्ट इंटरफ़ेस प्रोफ़ाइल को अक्षम कर सकते हैं (इंटरफ़ेस नामों की सूची प्रदर्शित करने के लिए, Get-NetIPInterface का उपयोग करें):
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
जैसा कि आप देख सकते हैं, सार्वजनिक प्रोफ़ाइल अब इथरनेट पर लागू नहीं होती है0:
DisabledInterfaceAliases : {Ethernet0}
आप प्रोफ़ाइल स्तर पर नेटवर्क कनेक्शन लॉगिंग विकल्प सेट कर सकते हैं। डिफ़ॉल्ट रूप से, Windows फ़ायरवॉल लॉग को %systemroot%\system32\LogFiles\Firewall में संग्रहीत किया जाता है, और फ़ाइल का आकार 4MB है। आप सभी कनेक्शन लॉगिंग को सक्षम कर सकते हैं और अधिकतम फ़ाइल आकार बदल सकते हैं:
Set-NetFireWallProfile -Profile Domain -LogBlocked True -LogMaxSize 20000 -LogFileName ‘%systemroot%\system32\LogFiles\Firewall\pfirewall.log’
PowerShell के साथ Windows फ़ायरवॉल नियम कैसे बनाएं, संपादित करें या निकालें?
आपके फ़ायरवॉल नियमों को प्रबंधित करने के लिए 9 cmdlets हैं:
- नया-नेटफ़ायरवॉल नियम
- कॉपी-नेटफ़ायरवॉल नियम
- अक्षम-नेटफ़ायरवॉल नियम
- सक्षम-नेटफ़ायरवॉल नियम
- गेट-नेटफ़ायरवॉल नियम
- निकालें-नेटफ़ायरवॉल नियम
- नाम बदलें-नेटफ़ायरवॉल नियम
- सेट-नेटफ़ायरवॉल नियम
- शो-नेटफ़ायरवॉल नियम
आइए विंडोज फ़ायरवॉल में पोर्ट कैसे खोलें, इसके कुछ सरल उदाहरणों पर विचार करें।
उदाहरण के लिए, यदि आप डोमेन और निजी प्रोफाइल के लिए पोर्ट 80 और 443 के लिए इनबाउंड टीसीपी कनेक्शन की अनुमति देना चाहते हैं, तो इस कमांड का उपयोग करें:
New-NetFirewallRule -DisplayName 'HTTP-Inbound' -Profile @('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('80', '443')
आप किसी ऐप के लिए नेटवर्क एक्सेस की अनुमति दे सकते हैं या ब्लॉक कर सकते हैं। उदाहरण के लिए, आप Firefox के लिए आउटबाउंड कनेक्शन ब्लॉक करना चाहते हैं:
New-NetFirewallRule -Program “C:\Program Files (x86)\Mozilla Firefox\firefox.exe” -Action Block -Profile Domain, Private -DisplayName “Block Firefox browser” -Description “Block Firefox browser” -Direction Outbound
केवल एक आईपी पते से पोर्ट 3389 पर इनबाउंड आरडीपी कनेक्शन की अनुमति देने के लिए:
New-NetFirewallRule -DisplayName "AllowRDP" –RemoteAddress 192.168.2.200 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Allow
निर्दिष्ट IP सबनेट या IP श्रेणी के पतों के लिए पिंग (ICMP) की अनुमति देने के लिए, इन आदेशों का उपयोग करें:
$ips = @("192.168.2.15-192.168.2.40", "192.168.100.15-192.168.100.200", ”10.1.0.0/16”)
New-NetFirewallRule -DisplayName "Allow inbound ICMPv4" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ips -Action Allow
New-NetFirewallRule -DisplayName "Allow inbound ICMPv6" -Direction Inbound -Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ips -Action Allow
मौजूदा फ़ायरवॉल नियम को संपादित करने के लिए, Set-NetFirewallRule cmdlet का उपयोग किया जाता है। उदाहरण के लिए, पहले बनाए गए नियम के लिए निर्दिष्ट आईपी पते से इनबाउंड कनेक्शन की अनुमति देने के लिए:
Get-NetFirewallrule -DisplayName 'HTTP-Inbound' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.10
यदि आप फ़ायरवॉल नियम में एक से अधिक IP पते जोड़ना चाहते हैं, तो इस स्क्रिप्ट का उपयोग करें:
$ips = @("192.168.2.15", "192.168.2.17",”192.168.100.15”)
कोड>
Get-NetFirewallrule -DisplayName 'WEB-Inbound'|Set-NetFirewallRule -RemoteAddress $ips
सभी IP पतों को फ़ायरवॉल नियम में प्रदर्शित करने के लिए:
Get-NetFirewallrule -DisplayName 'Allow inbound ICMPv4'|Get-NetFirewallAddressFilter
आप Disable-NetFirewallRule . का उपयोग करके फ़ायरवॉल नियमों को सक्षम/अक्षम कर सकते हैं और Enable-NetFirewallRule cmdlets.
Disable-NetFirewallRule –DisplayName 'WEB-Inbound'
ICMP (पिंग) को अनुमति देने के लिए, यह कमांड चलाएँ:
Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In
फ़ायरवॉल नियम को हटाने के लिए, Remove-NetFirewallRule cmdlet का उपयोग किया जाता है।
Windows फ़ायरवॉल नियमों को PowerShell के साथ सूचीबद्ध करना
आप अपने इनबाउंड ट्रैफ़िक के लिए सक्रिय फ़ायरवॉल नियमों की सूची निम्नानुसार प्रदर्शित कर सकते हैं:
Get-NetFirewallRule | where {($_.enabled -eq $True) -and ($_.Direction -eq "Inbound")} |ft
यदि आप आउटबाउंड अवरोधन नियमों की सूची प्रदर्शित करना चाहते हैं:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound
एक नियम में ऐप का नाम प्रदर्शित करने के लिए:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound | %{$_.Name; $_ | Get-NetFirewallApplicationFilter}
जैसा कि आप देख सकते हैं, Get-NetFirewallRule cmdlet आपके फ़ायरवॉल नियमों के लिए नेटवर्क पोर्ट और IP पते नहीं दिखाता है। अनुमत इनबाउंड (आउटबाउंड) कनेक्शन के बारे में विस्तृत जानकारी पोर्ट नंबर दिखाने के लिए अधिक सुविधाजनक तरीके से प्रदर्शित करने के लिए, निम्न पावरशेल स्क्रिप्ट का उपयोग करें:
Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Format-Table -Property Name,
@{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},
@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}},
@{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},
@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},
Enabled,Profile,Direction,Action
पावरशेल कमांड प्रॉम्प्ट से विंडोज फ़ायरवॉल नियमों को प्रबंधित करने के पर्याप्त अवसर प्रदान करता है। यदि कुछ घटनाएँ होती हैं, तो आप पोर्ट को खोलने/बंद करने के लिए स्वचालित रूप से PowerShell स्क्रिप्ट चला सकते हैं। अगले लेख में, हम आपके विंडोज वीडीएस सर्वर पर आरडीपी पर दूरस्थ रूप से ब्रूट-फोर्स पासवर्ड का प्रयास करने वाले आईपी पते को स्वचालित रूप से अवरुद्ध करने के लिए एक साधारण पावरशेल- और विंडोज फ़ायरवॉल-आधारित समाधान पर विचार करेंगे।