يحتوي Windows على جدار حماية متقدم قوي وسهل الاستخدام، وباستخدام PowerShell 7 يمكننا بسهولة تكوين جدار الحماية من سطر الأوامر. تتناول هذه المقالة الأوامر الشائعة المستخدمة في جدار حماية Windows والأماكن التي يمكن استخدامها فيها.
وحدة NetSecurity جيدة موثقة. ضع في اعتبارك أن هذه المقالة تنطبق فقط على نظام التشغيل Windows. بالنسبة لأنظمة التشغيل الأخرى، هناك أدوات سطر أوامر أخرى يمكن استخدامها للقيام بنفس النوع من الوظائف مثل
UFW
أو
IPTables
على لينكس.
تحميل NetSecurity
الوحدة النمطية
ال NetSecurity
تحتوي الوحدة المضمنة والمقدمة من Microsoft على كافة الوظائف اللازمة لإضافة قواعد جدار الحماية وإزالتها وتعديلها. لتحميل الوحدة، ما عليك سوى استيراد الوحدة كما هو موضح أدناه.
Import-Module -Name 'NetSecurity'
قائمة قواعد جدار الحماية الموجودة
الأمر cmdlet، Get-NetFirewallRule
سوف تظهر كافة قواعد جدار الحماية الموجودة. هناك العديد منها، بشكل افتراضي، ولتوضيح ذلك، نقوم بإخراج العشرة الأولى.
Get-NetFirewallRule | Select-Object DisplayName, Enabled, Direction, Action -First 10
<img src="https://static0.howtogeekimages.com/wordpress/wp-content/uploads/csit/2020/03/dbfa394e.png" alt="" width="941" height="281" />
هناك العديد من الخصائص التي يتم إرجاعها بواسطة Get-NetFirewallRule
. على الرغم من أننا ندرج فقط الخصائص المذكورة أعلاه، قيد التشغيل Get-NetFirewallRule | Select-Object * -First 1
، سيتم سرد كل ما هو متاح.
إنشاء قاعدة جدار الحماية الجديدة
هناك العديد من الطرق المختلفة لإنشاء قاعدة جدار حماية جديدة ولكن الأمر الذي يقوم بذلك هو (Net-NewFirewallRule)()
. الخصائص الأساسية التي يجب ملؤها هي:
DisplayName
– الاسم المألوف لقاعدة جدار الحمايةDirection
– ما إذا كان سيتم منع حركة المرور الخارجة من الكمبيوترOutbound
أو الدخول إلى الكمبيوترInbound
Action
– ما الإجراء الذي يجب اتخاذه في حالة استيفاء القاعدة،Allow
أوBlock
$Params = @{ "DisplayName" = 'Block WINS' "Direction" = 'Inbound' "Action" = 'Block' "RemoteAddress" = 'WINS' }
New-NetFirewallRule @Params
إذا Name
لم يتم استخدام المعلمة، ثم يتم استخدام GUID عشوائي. ال DisplayName
قد تكون قابلة للقراءة من قبل الإنسان ولكن Name
نفسه تعيين GUID عشوائي.
تعديل قاعدة جدار الحماية الموجودة
ماذا لو أردنا تعديل قاعدة موجودة دون إزالة القاعدة وإعادة إنشائها بالكامل. للقيام بذلك، يجب علينا تشغيل Set-NetFirewallRule
، وسوف يسمح لنا بتعديل قاعدة جدار الحماية حسب الضرورة.
$Params = @{
"DisplayName" = 'Block WINS'
"Action" = 'Allow'
}Set-NetFirewallRule @Params
القدرات المفيدة الأخرى التي Set-NetFirewallRule
لديه القدرة على العمل على قواعد متعددة في وقت واحد. يمكن القيام بذلك عن طريق تحديد موقع القواعد بواسطة إحدى المعلمات الثلاثة.
Name
هذا هو الإعداد الافتراضي، وإذا تم تعيين الأسماء عبر المسار أو مصفوفة سلسلة، فسيتم التصرف بناءً على كل منها.DisplayName
مماثلة لName
، ستقوم الكائنات المتعددة المسارات أو مصفوفة السلسلة بتعديل هذه القواعد وفقًا لذلك.DisplayGroup
أوGroup
إذا تم تجميع القواعد معًا، فيمكن التصرف بناءً على كل هذه القواعد المجمعة مرة واحدة.
إزالة قاعدة جدار الحماية الموجودة
وأخيرًا، نود إزالة القاعدة الحالية لأنه ربما لم تعد هناك حاجة إليها. للقيام بذلك، قم بتشغيل الأمر Remove-NetFirewallRule
. عند القيام بذلك، غالبًا ما يكون من الحكمة استخدام WhatIf
المعلمة للتحقق من أن القاعدة هي القاعدة الصحيحة المراد إزالتها.
Remove-NetFirewallRule -DisplayName "Block WINS"
من المهم أن نلاحظ أن Remove-NetFirewallRule
يمكن إزالة قواعد متعددة في وقت واحد. يوجد أدناه مثال على هذا النوع من الوظائف. ستقوم القاعدة أدناه بإزالة جميع القواعد المعطلة الموجودة في السياسة firewall_gpo
في ad.local.test
اِختِصاص.
Remove-NetFirewallRule -Enabled 'False' -PolicyStore 'ad.local.test\firewall_gpo'
هناك أمر مفيد قيد التشغيل، ولكنه قد يكون خطيرًا Remove-NetFirewallFule
في حد ذاته والذي يزيل كافة قواعد جدار الحماية المحلية الثابتة التي تم إنشاؤها. إذا كان لديك مجال GPO يحدد قواعد جدار الحماية، فسيؤدي ذلك إلى إزالة أي قواعد قد تتعارض مع قواعد GPO المحددة.
وظائف إضافية
هناك العديد من الأوامر الأخرى المتاحة داخل NetSecurity
وحدة. على الرغم من أننا لا نغطيها جميعًا هنا، إلا أن بعض الأوامر البارزة موضحة أدناه لتوضيح مدى شمول الوحدة.
Copy-NetFirewallRule
سيقوم هذا الأمر بنسخ قاعدة جدار الحماية الموجودة وجميع عوامل التصفية المرتبطة بها إلى مخزن السياسة نفسه أو مخزن سياسة مختلف.Disable-NetFirewallRule
سيؤدي هذا إلى تعطيل قاعدة جدار الحماية التي تم تمكينها مسبقًا. ستظل القاعدة موجودة، ولكن لن يتم تعديل أي بيانات شبكة بشكل فعال. إذا قمت بتشغيل هذا الأمر دون أي معلمات، فسيتم تعطيل كافة القواعد النشطة على الكمبيوتر الهدف. يُنصح دائمًا بتشغيل هذا الأمر باستخدام الملفWhatIf
المعلمة إذا لم تكن تستهدف قاعدة معينة أو مجموعة من القواعد.Enable-NetFirewallRule
مثلDisable-NetFirewallRule
، فسيعمل هذا الأمر على تمكين قاعدة أو مجموعة من القواعد التي تم تعطيلها مسبقًا. إذا تم تشغيل هذا الأمر بدون أية معلمات، فسوف يقوم بتمكين جميع القواعد التي تم تعطيلها مسبقًا. يُنصح دائمًا بتشغيل هذا الأمر باستخدام الملفWhatIf
المعلمة إذا لم تكن تستهدف قاعدة معينة أو مجموعة من القواعد.Get-NetFirewallProfile
يعرض هذا الأمر الخيارات التي تم تكوينها حاليًا لملف تعريف محدد، مثلDomain
,Private
، أوPublic
الملفات الشخصية.Get-NetFirewallSetting
يمكن استرداد إعدادات جدار الحماية العامة باستخدامGet-NetFirewallSetting
يأمر. تتضمن هذه الإعدادات خيارات مثل خيارات الشهادات أو قائمة انتظار الحزم أو قوائم التفويض.Rename-NetFirewallRule
لإعادة تسمية قاعدة جدار الحماية الموجودة، استخدم الأمرRename-NetFirewallRule
يأمر. يعد هذا مفيدًا إذا تم إنشاء قاعدة بدون اسم محدد، وبالتالي يتم تلقي معرف GUID عشوائي كاسم لها، ويفضل تعيين اسم يمكن قراءته بواسطة الإنسان.Set-NetFirewallProfile
لتعيين إعدادات محددة لملفات التعريف الفردية، استخدمSet-NetFirewallProfile
يأمر. يتيح ذلك لكل ملف تعريف أن يكون له إعدادات مميزة.Set-NetFirewallSetting
يقوم هذا الأمر بتكوين سلوكيات جدار الحماية العامة التي يتم تطبيقها بغض النظر عن ملف تعريف الشبكة المستخدم حاليًا.Show-NetFirewallRule
سيُظهر هذا الأمر المساعد قواعد جدار الحماية والكائنات المرتبطة بها في قائمة منسقة.
توجد وظائف IPSec واسعة النطاق داخل الوحدة. الأوامر المذكورة أعلاه هي تلك التي تعمل على إعدادات جدار حماية Windows القياسية.
خاتمة
هناك العديد من الأوامر المتاحة لإدارة جدار حماية Windows. تتناول هذه المقالة القليل منها فقط، ولا سيما أهم الأوامر لإدراج قواعد جدار الحماية وإنشائها وتعديلها وإزالتها بسرعة. حتى تكوينات جدار الحماية المعقدة يمكن إنجازها بدقة من خلال سطر الأوامر باستخدام NetSecurity
وحدة بوويرشيل!
(العلامات للترجمة)مايكروسوفت