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

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

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

आप ग्राफिक कंसोल से विंडोज फ़ायरवॉल सेटिंग्स का प्रबंधन कर सकते हैं:नियंत्रण कक्ष -> सिस्टम और सुरक्षा -> विंडोज डिफेंडर फ़ायरवॉल . हालाँकि, Windows 8.1 (Windows Server 2012 R2) से शुरू करके आप अंतर्निहित NetSecurity का उपयोग कर सकते हैं फ़ायरवॉल को प्रबंधित करने के लिए पावरशेल मॉड्यूल।

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

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

Get-Command -Module NetSecurity

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

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

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

  • डोमेन - एक सक्रिय निर्देशिका डोमेन में कंप्यूटर पर लागू होता है
  • निजी - घर या कॉर्पोरेट नेटवर्क
  • सार्वजनिक - सार्वजनिक नेटवर्क

PowerShell के साथ 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

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

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

Get-NetFirewallProfile -policystore activestore

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

Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases

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

DisabledInterfaceAliases : {NotConfigured}

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

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

Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"

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

DisabledInterfaceAliases : {Ethernet0}

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

आप प्रोफ़ाइल स्तर पर नेटवर्क कनेक्शन लॉगिंग विकल्प सेट कर सकते हैं। डिफ़ॉल्ट रूप से, 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')

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

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

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

आप 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}

PowerShell के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

जैसा कि आप देख सकते हैं, 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 के साथ Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना

पावरशेल कमांड प्रॉम्प्ट से विंडोज फ़ायरवॉल नियमों को प्रबंधित करने के पर्याप्त अवसर प्रदान करता है। यदि कुछ घटनाएँ होती हैं, तो आप पोर्ट को खोलने/बंद करने के लिए स्वचालित रूप से PowerShell स्क्रिप्ट चला सकते हैं। अगले लेख में, हम आपके विंडोज वीडीएस सर्वर पर आरडीपी पर दूरस्थ रूप से ब्रूट-फोर्स पासवर्ड का प्रयास करने वाले आईपी पते को स्वचालित रूप से अवरुद्ध करने के लिए एक साधारण पावरशेल- और विंडोज फ़ायरवॉल-आधारित समाधान पर विचार करेंगे।


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

    कुछ मामलों में कंप्यूटर या सर्वर पर विंडोज इवेंट लॉग से सभी प्रविष्टियों को हटाना आवश्यक है। बेशक, आप इवेंट व्यूअर कंसोल GUI से सिस्टम लॉग साफ़ कर सकते हैं—  Eventvwr.msc (उस लॉग पर राइट-क्लिक करें जिसे आप साफ़ करना चाहते हैं और लॉग साफ़ करें select चुनें ) हालाँकि, विस्टा से शुरू होकर, विंडोज विभिन

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

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

  1. Windows 10 फ़ायरवॉल नियम और सेटिंग्स समायोजित करें

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