امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

آموزش تنظیمات فایروال ویندوز با پاورشل : مدیریت Windows Firewall

حتما شما به عنوان یک مدیر شبکه تجربه مدیریت و پیکربندی فایروال ویندوز را با استفاده از کنسول مدیریتی و گرافیکی قدرتمند Windows Firewall with Advanced Security و نیز با استفاده از ابزار خط فرمانی netsh.exe دارید. ما در این مطلب می خواهیم با استفاده از دستورات PowerShell مدیریت فایروال ویندوز را داشته باشیم که به مراتب آسان تر و سریع تر از دو روش قبلی میتوان این کار را انجام داد. شما این را در عمل خواهید دید.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

از آنجا که فایروال ویندوز دارای Rule های بسیار زیادی است پس Filter کردن Rule ها بر اساس اسم و گروه و ... از اهمیت بسیار زیادی برخوردار است. ابزار خط فرمانی netsh.exe این کار را برای ما به سختی انجام می داد اما با استفاده از کنسول GUI فایروال تا حدی میتوانیم Predefined Rule ها و Filter کردن Rule ها را براحتی انجام دهیم. از این رو با استفاده از CMDLET ها و دستورات PowerShell مخصوص مدیریت فایروال به مراتب راحت تر از خود کنسول مدیریتی فایروال میتوانیم این کار را انجام دهیم چون واقعا ابزار های انعطاف پذیری در این خصوص در اختیار ما قرار می دهد.

مهم ترین دستور PowerShell برای مدیریت فایروال ویندوز دستور Get-NetFirewallRule است که اگر این دستور را بدون هیچ پارامتری اجرا کنید تمامی Rule های فایروال با جزئیات شان در خروجی نشان داده می شود. برای مثال اگر بخواهید بدانید که فایروال جلوی ارتباط سیستم شما را با یک سیستم ریموت در شبکه میگیرد میتوانید از دستور زیر استفاده کنید :

Get-NetFirewallRule -DisplayGroup Remote*

میتوانید پارامتر های Name ، Group ، DisplayName و ... را نیز بکار ببرید. علامت star ( ستاره ) در مقابل Remote تمامی Rule هایی با DisplayGroup ای که با اسم اولشان با Remote آغاز می شود مثل Remote Management و یا Remote Desktop را در خروجی نشان می دهد.سایر پارامتر های مهم دستور Get-NetFirewallRule عبارتند از Action ، Enabled ، Direction. پارامتر Action دو مقدار Allow و Block را میتواند قبول کند. پارامتر Direction هم دو مقدار Inbound و Outbound را میتواند قبول کند. پارامتر Enabled هم دو مقدار True و False را میتواند قبول کند. مثال :

Get-NetFirewallRule -Action Block -Enabled True -Direction Inbound

این دستور تمامی Inbound Rule هایی که Block شده اند را در خروجی نشان می دهد.

Get-NetFirewallRule -Action Allow -Enabled False -Direction Inbound -DisplayGroup Network* | select DisplayName, DisplayGroup

در این مثال تمامی Inbound Rule هایی که غیرفعال هستند و اول اسم آنها با Network شروع می شود و ترافیک آنها اجازه عبور از فایروال را دارد را در خروجی به ما نشان می دهد. خروجی این دستور دو ستون به نام های DisplayName و DisplayGroup دارد که DisplayName اسم Rule است و DisplayGroup اسم گروهی است که Rule مربوطه در آن قرار دارد.

قابلیت مهم دیگری که فایروال ویندوز دارد Network Profile ها هست که شامل Domain ، Public و Private می باشد. برای مثال شما میتوانید تنها Rule های محدوده Domain را فیلتر کنید و مشاهده کنید. برای انجام این کار باید از دستور Where-Object برای فیلتر کردن استفاده کنید از آنجا که استفاده از این روش کمی سنگین است از این رو ما از دستور Get-NetFirewallProfile استفاده می کنیم. به دستور زیر توجه کنید :

Get-NetFirewallProfile -Name Domain | Get-NetFirewallRule | ? DisplayName ‑like File*

این دستور تمامی Rule هایی که در محدوده Domain هستند و DisplayName آنها با File شروع می شود را در خروجی نشان می دهد.اگر شما بخواهید یک Rule را که مانع برقراری ارتباط می شود غیرفعال کنید میتوانید از دستور Disable-NetFirewallRule استفاده کنید. مثال :

	Disable-NetFirewallRule -Action Block -Enabled True -Direction Inbound

این دستور تمامی Inbound Rule هایی که Action آنها بصورت Block است و بصورت فعال هستند را غیرفعال می کند. البته شما در محیط واقعی هیچوقت نباید این دستور را اجرا کنید و تنها Rule هایی که مورد نیاز هست را به سمت داخل یا Inbound باز کنید. توجه کنید که دستور Disable-NetFirewallRule تنها Rule ها را غیرفعال می کند و به تنظیمات Rule کاری ندارد. حالا اگر بخواهید عکس این کار را انجام دهید بجای Disable-NetFirewallRule باید دستور Enable-NetFirewallRule را اجرا کنید. امیدوارم مورد توجه شما قرار گرفته باشد.

نویسنده : امیرحسین کریم پور

منبع : جزیره سرویس های شبکه مایکروسافت وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی میباشد


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس و... ، سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی

نظرات