Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

यह लेख बिल्ट-इन Windows Defender Firewall with Advanced Security की सेटिंग्स और नियमों को PowerShell का उपयोग करके प्रबंधित करने की मूल बातें देता है। हम देखेंगे कि विभिन्न नेटवर्क प्रोफाइल के लिए फायरवॉल को कैसे सक्षम/अक्षम करें, फायरवॉल नियम बनाएं या हटाएं, और वर्तमान सक्रिय फायरवॉल नियमों को दिखाने वाली एक सुविधाजनक तालिका प्राप्त करने के लिए एक छोटा PS स्क्रिप्ट लिखें।

आप Windows Firewall सेटिंग्स को ग्राफिकल कंसोल से प्रबंधित कर सकते हैं: Control Panel → System and Security → Windows Defender Firewall। हालांकि, Windows 8.1 (Windows Server 2012 R2) से शुरू होकर, आप फायरवॉल को प्रबंधित करने के लिए बिल्ट-इन NetSecurity PowerShell मॉड्यूल का उपयोग कर सकते हैं।

पहले, Windows Firewall नियमों और सेटिंग्स को प्रबंधित करने के लिए निम्न कमांड का उपयोग किया जाता था: netsh advfirewall firewall

NetSecurity मॉड्यूल में Windows 10 पर 85 कमांड उपलब्ध हैं। आप पूरी सूची प्रदर्शित कर सकते हैं:

Get-Command -Module NetSecurity

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

PowerShell से Windows Firewall नेटवर्क प्रोफाइल कैसे प्रबंधित करें?

Windows Firewall में तीन प्रकार के नेटवर्क प्रोफाइल हैं:

  • Domain — Active Directory डोमेन में कंप्यूटर्स पर लागू होता है
  • Private — होम या कॉर्पोरेट नेटवर्क
  • Public — पब्लिक नेटवर्क

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

Network Location Awareness (NLA) अपने डेटाबेस में नेटवर्क प्रकारों के बारे में जानकारी रखता है। यदि इसका गलत पता चला है तो आप अपना नेटवर्क प्रोफाइल (लोकेशन) बदल सकते हैं।

प्रत्येक नेटवर्क प्रोफाइल (लोकेशन) उपयोग किए जाने वाले फायरवॉल नियमों के सेट से भिन्न हो सकती है। डिफ़ॉल्ट रूप से, कंप्यूटर के सभी नेटवर्क इंटरफ़ेस फायरवॉल द्वारा संरक्षित होते हैं, और सभी तीन प्रकार के प्रोफाइल उन पर लागू होते हैं।

सभी तीन नेटवर्क प्रोफाइल को सक्षम करने के लिए: Domain, Public और Private, इस कमांड का उपयोग करें:

Set-NetFirewallProfile -All -Enabled True

या All के बजाय विशिष्ट प्रोफाइल सेट करें:

Set-NetFirewallProfile -Profile Public -Enabled True

सभी तीन नेटवर्क लोकेशन के लिए फायरवॉल को अक्षम करने के लिए, कमांड का उपयोग करें:

Set-NetFirewallProfile -All -Enabled False

Set-NetFirewallProfile cmdlet का उपयोग करके, आप प्रोफाइल विकल्प बदल सकते हैं (एक डिफ़ॉल्ट एक्शन, लॉगिंग, लॉग फ़ाइल का पथ और आकार, अधिसूचना सेटिंग्स, आदि)।

आप जानते होंगे कि आधुनिक OS संस्करणों में Windows Firewall सभी प्रोफाइल के लिए सक्षम है। सभी आउटबाउंड कनेक्शन अनुमत हैं और इनबाउंड ब्लॉक हैं (अनुमत को छोड़कर) प्रोफाइल सेटिंग्स में।

आइए Public प्रोफाइल के लिए डिफ़ॉल्ट एक्शन को सभी इनबाउंड कनेक्शन ब्लॉक करने के लिए बदलें।

Set-NetFirewallProfile –Name Public –DefaultInboundAction Block

आप वर्तमान प्रोफाइल सेटिंग्स को इस प्रकार प्रदर्शित कर सकते हैं:

Get-NetFirewallProfile -Name Public

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

यदि आप GPO का उपयोग करके अपनी Windows Firewall सेटिंग्स प्रबंधित करते हैं, तो आप परिणामी प्रोफाइल सेटिंग्स को इस प्रकार प्रदर्शित कर सकते हैं:

Get-NetFirewallProfile -policystore activestore

सुनिश्चित करें कि सभी फायरवॉल सेटिंग्स कंप्यूटर के सभी नेटवर्क इंटरफ़ेस पर लागू हैं।

Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases

यदि सभी इंटरफ़ेस संरक्षित हैं, तो कमांड निम्न लौटाएगी:

DisabledInterfaceAliases : {NotConfigured}

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

आप विशिष्ट इंटरफ़ेस प्रोफाइल को अक्षम कर सकते हैं (इंटरफ़ेस नामों की सूची प्रदर्शित करने के लिए, Get-NetIPInterface का उपयोग करें):

Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"

जैसा कि आप देख सकते हैं, Public प्रोफाइल अब Ethernet0 पर लागू नहीं होता:

DisabledInterfaceAliases : {Ethernet0}

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

आप प्रोफाइल स्तर पर नेटवर्क कनेक्शन लॉगिंग विकल्प सेट कर सकते हैं। डिफ़ॉल्ट रूप से, Windows Firewall लॉग %systemroot%\system32\LogFiles\Firewall में संग्रहीत होते हैं, और फ़ाइल आकार 4MB है। आप सभी कनेक्शन लॉगिंग सक्षम कर सकते हैं और अधिकतम फ़ाइल आकार बदल सकते हैं:

Set-NetFireWallProfile -Profile Domain -LogBlocked True -LogMaxSize 20000 -LogFileName ‘%systemroot%\system32\LogFiles\Firewall\pfirewall.log’

PowerShell के साथ Windows Firewall नियम कैसे बनाएं, संपादित करें या हटाएं?

आपके फायरवॉल नियमों को प्रबंधित करने के लिए 9 cmdlets हैं:

  • New-NetFirewallRule
  • Copy-NetFirewallRule
  • Disable-NetFirewallRule
  • Enable-NetFirewallRule
  • Get-NetFirewallRule
  • Remove-NetFirewallRule
  • Rename-NetFirewallRule
  • Set-NetFirewallRule
  • Show-NetFirewallRule

आइए Windows Firewall में पोर्ट खोलने के कुछ सरल उदाहरणों पर विचार करें।

उदाहरण के लिए, यदि आप डोमेन और प्राइवेट प्रोफाइल के लिए पोर्ट 80 और 443 पर इनबाउंड TCP कनेक्शन की अनुमति देना चाहते हैं, तो इस कमांड का उपयोग करें:

New-NetFirewallRule -DisplayName 'HTTP-Inbound' -Profile @('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('80', '443')

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

आप किसी ऐप के लिए नेटवर्क एक्सेस की अनुमति या ब्लॉक कर सकते हैं। उदाहरण के लिए, आप 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

केवल एक IP पते से पोर्ट 3389 पर इनबाउंड RDP कनेक्शन की अनुमति देने के लिए:

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

पिछले लेख में हमने दिखाया कि PowerShell का उपयोग करके साइट एक्सेस को IP पते और डोमेन/साइट DNS नाम दोनों द्वारा कैसे ब्लॉक करें।

मौजूदा फायरवॉल नियम को संपादित करने के लिए, Set-NetFirewallRule cmdlet का उपयोग किया जाता है। उदाहरण के लिए, पहले बनाए गए नियम के लिए निर्दिष्ट IP पते से इनबाउंड कनेक्शन की अनुमति देने के लिए:

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

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

आप Disable-NetFirewallRule और Enable-NetFirewallRule cmdlets का उपयोग करके फायरवॉल नियमों को सक्षम/अक्षम कर सकते हैं।

Disable-NetFirewallRule –DisplayName 'WEB-Inbound'

पिंग (ICMP) की अनुमति देने के लिए, यह कमांड चलाएं:

Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In

फायरवॉल नियम को हटाने के लिए, Remove-NetFirewallRule cmdlet का उपयोग किया जाता है।

PowerShell के साथ Windows Firewall नियमों की सूची

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

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}

PowerShell के साथ Windows Firewall नियम कॉन्फ़िगर करना

जैसा कि आप देख सकते हैं, Get-NetFirewallRule cmdlet आपके फायरवॉल नियमों के लिए नेटवर्क पोर्ट और IP पते नहीं दिखाता है। अनुमत इनबाउंड (आउटबाउंड) कनेक्शन के बारे में विस्तृत जानकारी को अधिक सुविधाजनक तरीके से प्रदर्शित करने के लिए पोर्ट नंबर दिखाते हुए, निम्न PowerShell स्क्रिप्ट का उपयोग करें:

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 के साथ Windows Firewall नियम कॉन्फ़िगर करना

PowerShell कमांड प्रॉम्प्ट से Windows Firewall नियमों को प्रबंधित करने के लिए पर्याप्त अवसर प्रदान करता है। आप कुछ घटनाएं होने पर पोर्ट खोलने/बंद करने के लिए PowerShell स्क्रिप्ट को स्वचालित रूप से चला सकते हैं। अगले लेख में, हम आपके Windows VDS सर्वर पर RDP पर पासवर्ड ब्रूट-फोर्स करने का प्रयास करने वाले IP पतों को स्वचालित रूप से ब्लॉक करने के लिए PowerShell- और Windows Firewall-आधारित एक सरल समाधान पर विचार करेंगे।

  1. PowerShell या Wevtutil का उपयोग करके Windows इवेंट लॉग्स कैसे साफ़ करें PowerShell या Wevtutil का उपयोग करके Windows इवेंट लॉग्स कैसे साफ़ करें

    कुछ मामलों में कंप्यूटर या सर्वर पर Windows इवेंट लॉग्स से सभी एंट्रीज़ को हटाना आवश्यक हो जाता है। बेशक, आप Event Viewer कंसोल GUI— Eventvwr.msc से सिस्टम लॉग्स को साफ़ कर सकते हैं (उस लॉग पर राइट-क्लिक करें जिसे आप साफ़ करना चाहते हैं और Clear Log चुनें)। हालांकि, Vista से शुरू होकर, Windows विभिन

  1. पावरशेल के साथ विंडोज डिफेंडर फ़ायरवॉल पर डोमेन या वेबसाइट कैसे ब्लॉक करें? पावरशेल के साथ विंडोज डिफेंडर फ़ायरवॉल पर डोमेन या वेबसाइट कैसे ब्लॉक करें?

    आइए विशिष्ट वेबसाइटों, डोमेन नामों, URL या IP पतों तक पहुंच को विंडोज में थर्ड-पार्टी टूल्स के बिना ब्लॉक करने के कुछ तरीकों पर विचार करें। हमारे मामले में, हम अंतर्निहित विंडोज 10 टूल्स और पावरशेल ऑटोमेशन सुविधाओं का उपयोग करके कुछ वेबसाइटों को ब्लॉक करने का प्रयास करेंगे। आमतौर पर अपने नेटवर्क राउ

  1. विंडोज 10 फायरवॉल सेटिंग्स में महारत हासिल करें: सुरक्षित इनबाउंड और आउटबाउंड ट्रैफिक के लिए नियमों को फाइन-ट्यून करें विंडोज 10 फायरवॉल सेटिंग्स में महारत हासिल करें: सुरक्षित इनबाउंड और आउटबाउंड ट्रैफिक के लिए नियमों को फाइन-ट्यून करें

    विंडोज 10 में, विंडोज फायरवॉल विस्टा के बाद से बहुत अधिक नहीं बदला है। कुल मिलाकर, यह बहुत हद तक वही है। इनबाउंड कनेक्शन प्रोग्राम्स के लिए अवरुद्ध हैं जब तक कि वे अनुमति सूची में न हों। आउटबाउंड कनेक्शन अवरुद्ध नहीं हैं यदि वे किसी नियम से मेल नहीं खाते। आपके पास फायरवॉल के लिए Public और Private ने