در این مقاله قصد داریم نحوهی تنظیم فایروال ویندوز با CMD را آموزش دهیم. در مقالات قبلی از اهمیت وجود فایروال یا دیواه آتش در سیستمعامل مفصل صحبت کردیم. پیش از شروع آموزش بیایید با عبارت CMD آشنا شویم.
CMD یا Command Prompt ابزاری در سیستمعامل ویندوز بوده که از آن جهت کار با برنامههای کامندی خود ویندوز استفاده میشود. برای باز کردن این ابزار کافی است در منوی استارت عبارت Command Prompt را جستوجو کنید.
در اولین مرحله پس از وارد شدن به محیط CMD میتوانید از دستور Netsh Advfirewall استفاده کنید.
نکته: توجه داشته باشید که حتماً CMD را بهصورت Run As Administrator باز کنید تا مجوز ویرایش و مدیریت ویندوز را داشته باشید.
اکنون با وارد کردن دستور Advfirewall وارد محیط تنظیم و پیکربندی فایروال ویندوز شوید:
Netsh -c advfirewall
بهمنظور فعال یا غیرفعال کردن فایروال ویندوز بر اساس نوع پروفایل شبکه میتوانید از دستور Set در محیط Advfirewall با نوع پروفایل شبکه موردنظر و پارامتر State استفاده کنید. بهعنوانمثال جهت غیرفعال کردن پروفایل دامنه دستور netsh بهصورت زیر عمل کنید:
Netsh -c advfirewall
Set domainprofile state off
البته میتوانید این دستورات را در قالب یک دستور بنویسید:
Netsh Advfirewall set domainprofile state off
بهمنظور فعالسازی مجدد فایروال دامنه کافی است بهجای مقدار off از کلمهی on استفاده کنید:
Netsh advfirewall set domainprofile state on
برای تنظیم فایروال این نکات را رعایت کنید:
اگر میخواهید وضعیت پروفایلهای فایروال را بررسی کنید، باید در بخش Advfirewall از دستور show استفاده کنید. سپس میتوانید در جلوی آن پروفایل مدنظر را وارد کنید. به مثال زیر توجه کنید:
Netsh advfirewall show privateprofile
در این مثال وضعیت فعلی پروفایل خصوصی یا Private نشان داده شده است. همانگونه که مشاهده میکنید در جلوی State وضعیت فعال یا غیرفعال بودن فایروال ویندوز نشان داده شده است (on به معنی فعال بودن است). در جلوی Firewall Policy هم نوع سیاست ارتباطات ورودی و خروجی مشخص شده است.
فایروال ویندوز برای انواع شبکه دارای ۳ نوع پروفایل است:
هرکدام از این پروفایلها دارای یک ورودی و یک خروجی هستند که ارتباطات شبکه را مطابق با قوانین نوشتهشدهی فایروال کنترل میکنند. قوانین ورودی و خروجی فایروال بدینصورت است:
جهت تنظیم سیاستهای اصلی هر پروفایل میتوانید از دستور Netsh Advfirewall با پارامتر Set و سپس مشخص کردن نوع پروفایل و پارامتر firewallpolicy برای تعیین سیاست ورودی و خروجی استفاده کنید.
به مثال زیر توجه کنید:
Netsh Advfirewall set domainprofile firewallpolicy blockinboundalways,blockoutbound
در مثال بالا تمام ارتباطات ورودی از طریق شبکه Domain که برای آنها قانونی نوشتهشده یا نشده باشد، باید توسط سیاست Block Inbound Always مسدود شوند. همچنین با گزینهی Blockoutbound مشخص شده که تمام ارتباطات ورودی که برای آنها قانونی نوشتهنشده باشد، باید مسدود شوند.
اکنون فرض کنید بخواهید با کلیهی ارتباطات ورودی از شبکهی Private طبق قوانین فایروال ویندوز برخورد شود و ارتباطات خروجی مجوز برقراری داشته باشند. در این حالت دستور بهصورت زیر خواهد بود:
Netsh Advfirewall Set privateprofile firewallpolicy blockinbound,allowoutbound
پس از تنظیم پروفایل فایروال میتوانید مجدداً از دستور Netsh advfirewall show برای مشاهدهی تنظیمات انجامشده استفاده کنید.
جهت ایجاد قانون در فایروال ویندوز میتوانید از دستور Add استفاده کنید. بدین ترتیب میتوانید قانون دلخواه خود را بهصورت inbound یا outbound اضافه کنید. بهوسیلهی فرمان Set هم میتوانید قوانین موجود را ویرایش کنید.
اگر فرمان Netsh Advfirewall را بهصورت زیر وارد کنید، فهرستی از پارامترهای آن را مشاهده خواهید کرد:
Netsh advfirewall firewall add rule /?
در جدول زیر فهرستی از پارامترهای ایجاد قانون (Rule) در فایروال را مشاهده میکنید:
پارامتر ها | توضیحات |
Dir | مشخص کردن نوع قانون in به معنای Inbound است و out به معنای Outbound |
Action | مشخص کردن نوع عملکرد قانون برای منع دسترسی از Block و برای مجوز دادن از Allow و برای دور زدن از Bypass استفاده میشود. |
Program | مسیر برنامه مد نظر خود را میتوانید در جلوی Program مشخص کنید. |
Service | نام مخفف سرویس (مثل Audiosrv) مد نظر خود را میبایست در جلوی پارامتر Service مشخص کنید. |
Description | برای اضافه کردن توضیحات به قانون مد نظر خود میتوانید از پارامتر Description استفاده کنید. |
Enable | برای فعال بودن یا غیر فعال بودن قانون ایجاد شده میبایست از گزینهی Enable استفاده کنید. به صورت پیشفرض قانون بعد از اضافه شدن فعال است. (Yes) |
Profile | نوع پروفایل شبکه را میتوانید در جلوی این پارامتر مشخص کنید. مقادیر قابل استفاده Public و Private یا Domain بوده و برای مشخص کردن همهی پروفایلها باید از مقدار Any استفاده کنید. |
LocalIP | برای مشخص کردن آدرس مبدا باید از پارامتر Localip استفاده کنید. میتوانید آدرس IPv4 یا IPv6 یا یک Subnet یا یک Range از آدرسها را مشخص کنید. برای مشخص کردن همه آدرسها باید از مقدار Any استفاده کنید. |
RemoteIP | برای مشخص کردن آدرس IP شبکه مقصد میبایست از پارامتر RemoteIP استفاده کنید. مقادیر قابل استفاده در جلوی این دستور Any برای مشخص کردن همه آدرسها، IPv4 یا IPv6 یا DNS یا DHCP یا WINS یا Default Gateway یا Subnet یا یک Range از آدرسها را میتوانید مشخص کنید. |
LocalPort | در جلوی پارامتر LocalPort میتوانید عدد پورت مورد نظر خود را وارد کنید. مقدار Any به معنای همه Port ها است. عدد پورت میتواند از ۰ تا ۶۵۵۳۵ باشد. همچنین میتوانید از مقدار RPC یا IPHTTPS یا RPC-EPMap هم استفاده کنید. |
RemotePort | برای مشخص کردن عدد پورتهای شبکه مقصد میتوانید از پارامتر RemotePort استفاده کنید. مقادیر قابل استفاده از عدد ۰ تا ۶۵۵۳۵ است و همچنین میتوانید از مقدار Any برای مشخص کردن همه Port ها استفاده کنید. |
Protocol | برای مشخص کردن Protocol میتوانید از عدد ۰ تا ۲۵۵ یا نام پروتکلهای موردنظر خود استفاده کنید. مثلا میتوانید از مقادیر ICMPv4 یا ICMPv6 یا ICMPv4:Type,Code یا ICMPv6:Type,Code یا TCP یا UDP یا مقدار Any برای مشخص کردن همه پروتکلها استفاده کنید. |
InterfaceType | برای مشخص کردن نوع کارت شبکه میتوانید از InterfaceType استفاده کنید. مقادیر قابل استفاده در جلوی این پارامتر، Wireless یا LAN یا RAS یا مقدار Any برای مشخص کردن همه انوع کارت شبکه ها است. |
RmtComputerGrp | احراز هویت و تایید ارتباط کامپیوتر مقصد با مشخص کردن مقدار SSDL آن. |
RmtUserGrp | احراز هویت و تایید ارتباط کاربر مقصد با مشخص کردن مقدار SDDL آن. |
Edge | مقادیر قابل استفاده در جلوی این پارامتر Deferapp یا DeferUser یا No است. مقدار پیشفرض No است. |
Security | مقادیر قابل استفاده در جلوی این پارامتر authenticate یا authenc یا authdynenc یا authnoencap یا notrequired است که به صورت پیشفرض آخرین گزینه یعنی notrequired استفاده میشود. |
در این قسمت به چند مثال کاربردی از نحوهی ایجاد قانون درفایروال ویندوز اشاره خواهیم کرد.
ابتدا فرض کنید بخواهیم جهت افزایش امنیت ارتباط کاربر با وبسایتهای اینترنتی، پروتکل HTTP را کاملاً مسدود کنیم. بنابراین بدینصورت عمل میکنیم:
Netsh Adv Fir Ad Ru Name=”Block HTTP Traffics” Dir=Out Action=Block Protocol=TCP RemotePort=80
همانگونه که مشاهده میکنید، دستور Netsh کاملاً مخفف واردشده تا فرایند ایجاد قانون هرچه سریعتر انجام شود.
اگر بخواهید از دسترسی برنامهها به اینترنت جلوگیری کنید، باید از دستور Program استفاده کنید. در مثال زیر از دسترسی برنامهی Google Chrome به اینترنت جلوگیری شده است:
Netsh adv fir ad ru Name=”Chrome Traffic Blocker” Dir=Out
Program=”C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe” Action=Block
چنانچه بخواهید از دسترسی سیستم به یک IP مشخص جلوگیری کنید، میتوانید از فرمان RemoteIP استفاده کنید. بهعنوانمثال اگر بخواهیم دسترسی سیستم به آیپی XXX.XXX.XXX.XXX را مسدود کنیم، دستور Netsh بهصورت زیر خواهد شد:
Netsh adv fir ad rul Name=”Block Specific IP” Dir=Out Action=Block RemoteIP= XXX.XXX.XXX.XXX
با استفاده از فرمان LocalIP میتوانید آدرس مبدأ را مشخص کنید. به مثال زیر توجه کنید. برای جلوگیری از دسترسی سیستم با آدرس مبدأ ۱۰.۱.۱.۱۰ به آدرس مقصد ۱۰.۱۰.۱۰.۱ بهصورت زیر عمل میکنیم:
Netsh adv fir ad ru Name=”IP Blocker” Dir=out Action=Block LocalIP=10.1.1.10 RemoteIP=10.10.10.1
ما میتوانیم قانونی بنویسیم که هنگام استفاده از کارت شبکهی Wireless، LAN یا RAS دسترسی به یک آدرس IP مسدود یا باز شود. بهعنوانمثال برای جلوگیری از دسترسی به آدرس XXX.XXX.XXX.XXX در زمان استفاده از کارت شبکه وایرلس، دستور Netsh به شکل زیر خواهد بود:
netsh adv fi ad ru Name=”Block Network By Interface Type” Dir=Out Action=Block InterfaceType=Wireless RemoteIP= XXX.XXX.XXX.XXX
جهت تهیه لیست و نمایش قوانین نوشتهشده در فایروال ویندوز میتوانید از فرمان Show استفاده کنید. به مثال زیر توجه کنید:
Netsh Adv Fir Show Rule Name=All Dir=In
در اینجا پارامتر Name=All تمام قوانین ورودی را نمایش خواهد داد. اگر میخواهید این قوانین را یکبهیک بررسی کنید، فرمان زیر را وارد کنید:
Netsh Adv Fir Show Rule Name=All Dir=Out | More
بهمنظور بررسی جزئیات یک قانون باید در جلوی پارامتر Name، بهجای مقدار All از قانون موردنظر خود استفاده کنید. بهعنوانمثال برای نمایش جزئیات قوانین مربوط به AnyDesk، فرمان Netsh بهصورت زیر خواهد بود:
Netsh Adv Fir Show Rule Name=AnyDesk
بهمنظور ویرایش قوانین نوشتهشده در فایروال ویندوز میتوانید از فرمان Set استفاده کنید. فقط کافی است بعد از پارامتر Set از پارامتر Rule استفاده کنید و سپس نام قانون مدنظر خود را مشخص کنید.
مثلاً برای تنظیم مجدد نام یک قانون از Network Blocker به Specific Host Blocker، فرمان بهصورت زیر خواهد بود:
Netsh Adv fir set Ru Name=”Network Blocker” new Name=”Specific Host Blocker”
جهت فعال یا غیرفعال کردن قوانین با فرمان Netsh Advfirewall، باید از پارامتر Enable استفاده کنید. در مثال زیر قانون Network Blocker غیرفعال شده است:
Netsh Adv Fir set Ru Name=”Specific Host Blocker” New Enable=No
توجه کنید برای تنظیم مجدد یا ویرایش یک قانون، حتماً باید آن قانون نوشتهشده باشد؛ در غیر این صورت با خطا مواجه خواهید شد.
برای حذف قوانین فایروال میتوانید از فرمان Delete استفاده کنید. فقط کافی است بعد از دستور Delete از پارامتر Rule و بعد از آن از پارامتر Name و جزئیات قانون مدنظر خود استفاده کنید. در مثال زیر تمام قوانینی که نام آنها Specific Host Blocker هستند، حذف شدهاند:
Netsh Adv Fir Del Ru Name=”Specific Host Blocker”
و در نهایت پارامترهایی که میتوانید از آنها جهت حذف یک قانون استفاده کنید، بهصورت زیر هستند:
Name – Dir – Profile – Program – Service – LocalIP – RemoteIP – LocalPort – RemoteProt – Protocol
سینداد یعنی هدیهی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.