آموزش تنظیم فایروال ویندوز با CMD

رضا فرخندگان ۲۱ خرداد ۱۳۹۸ ۰ دیدگاه

در این مقاله قصد داریم نحوه‌ی تنظیم فایروال ویندوز با CMD را آموزش دهیم. در مقالات قبلی از اهمیت وجود فایروال یا دیواه آتش در سیستم‌عامل مفصل صحبت کردیم. پیش از شروع آموزش بیایید با عبارت CMD آشنا شویم.

CMD چیست؟

CMD یا Command Prompt ابزاری در سیستم‌عامل ویندوز بوده که از آن جهت کار با برنامه‌های کامندی خود ویندوز استفاده می‌شود. برای باز کردن این ابزار کافی است در منوی استارت عبارت Command Prompt را جست‌وجو کنید.

آموزش تنظیم فایروال ویندوز با CMD

تنظیم و پیکربندی فایروال ویندوز با CMD

در اولین مرحله پس از وارد شدن به محیط CMD می‌توانید از دستور  Netsh Advfirewall استفاده کنید.

نکته: توجه داشته باشید که حتماً CMD را به‌صورت Run As Administrator باز کنید تا مجوز ویرایش و مدیریت ویندوز را داشته باشید.

اکنون با وارد کردن دستور Advfirewall وارد محیط تنظیم و پیکربندی فایروال ویندوز شوید:

Netsh -c advfirewall

تنظیم و پیکربندی فایروال ویندوز با CMD

تنظیم فایروال بر اساس نوع پروفایل شبکه

به‌منظور فعال یا غیرفعال کردن فایروال ویندوز بر اساس نوع پروفایل شبکه می‌توانید از دستور 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

برای تنظیم فایروال این نکات را رعایت کنید:

  • جهت تنظیم پروفایل دامنه از دستور domainprofile استفاده کنید.
  • جهت تنظیم پروفایل خصوصی از دستور privateprofile استفاده کنید.
  • جهت تنظیم پروفایل عمومی از دستور publicprofile استفاده کنید.
  • جهت تنظیم تمام پروفایل‌ها از دستور allprofile استفاده کنید.
  • جهت تنظیم پروفایل فعلی از دستور currentprofile استفاده کنید.

بررسی وضعیت پروفایل‌ها

اگر می‌خواهید وضعیت پروفایل‌های فایروال را بررسی کنید، باید در بخش Advfirewall از دستور show استفاده کنید. سپس می‌توانید در جلوی آن پروفایل مدنظر را وارد کنید. به مثال زیر توجه کنید:

Netsh advfirewall show privateprofile

بررسی وضعیت پروفایل‌ها

در این مثال وضعیت فعلی پروفایل خصوصی یا Private نشان داده شده است. همان‌گونه که مشاهده می‌کنید در جلوی State وضعیت فعال یا غیرفعال بودن فایروال ویندوز نشان داده شده است (on به معنی فعال بودن است). در جلوی Firewall Policy هم نوع سیاست ارتباطات ورودی و خروجی مشخص شده است.

قوانین ورودی و خروجی فایروال

فایروال ویندوز برای انواع شبکه دارای ۳ نوع پروفایل است:

  • پروفایل دامنه: زمانی که به یک دامنه ملحق شده باشید.
  • پروفایل عمومی: زمانی‌ که به یک شبکه‌ی عمومی مانند فرودگاه یا هتل متصل شده باشید.
  • پروفایل خصوصی: زمانی که در یک شبکه خصوصی و خانگی هستید.

هرکدام از این پروفایل‌ها دارای یک ورودی و یک خروجی هستند که ارتباطات شبکه را مطابق با قوانین نوشته‌شده‌ی فایروال کنترل می‌کنند. قوانین ورودی و خروجی فایروال بدین‌صورت است:

  • گزینه‌های Blockinbound و Blockoutbound: اگر قانونی برای ارتباط ورودی یا خروجی نوشته‌شده باشد، باید طبق آن قانون با ارتباط برخورد شود؛ در غیر این صورت ارتباط مسدود خواهد شد.
  • گزینه Blockinboundalways: تمامی ارتباطات ورودی باید مسدود شوند؛ حتی اگر برای آن‌ها قانون نوشته‌شده باشد.
  • گزینه Allowoutbound: اگر برای ارتباطات خروجی قانونی نوشته‌نشده باشد، آن ارتباط می‌تواند برقرار شود.

تنظیم قوانین ورودی و خروجی پروفایل

جهت تنظیم سیاست‌های اصلی هر پروفایل می‌توانید از دستور 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 برای مشاهده‌ی تنظیمات انجام‌شده استفاده کنید.

ایجاد قانون در فایروال با استفاده از فرمان Netsh

جهت ایجاد قانون در فایروال ویندوز می‌توانید از دستور Add استفاده کنید. بدین ترتیب می‌توانید قانون دلخواه خود را به‌صورت inbound یا outbound اضافه کنید. به‌وسیله‌ی فرمان Set هم می‌توانید قوانین موجود را ویرایش کنید.

اگر فرمان Netsh Advfirewall را به‌صورت زیر وارد کنید، فهرستی از پارامترهای آن را مشاهده خواهید کرد:

Netsh advfirewall firewall add rule /?

ایجاد قانون در فایروال با استفاده از فرمان Netsh

جدول پارامترهای ایجاد قانون در فایروال

در جدول زیر فهرستی از پارامترهای ایجاد قانون (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

ابتدا فرض کنید بخواهیم جهت افزایش امنیت ارتباط کاربر با وب‌سایت‌های اینترنتی، پروتکل HTTP را کاملاً مسدود کنیم. بنابراین بدین‌صورت عمل می‌کنیم:

Netsh Adv Fir Ad Ru Name=”Block HTTP Traffics” Dir=Out Action=Block Protocol=TCP RemotePort=80

مسدود کردن پروتکل HTTP

همان‌گونه که مشاهده می‌کنید، دستور 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 مشخص

چنانچه بخواهید از دسترسی سیستم به یک 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”

ویرایش قوانین فایروال

غیر فعال کردن قوانین با دستور Set

جهت فعال یا غیرفعال کردن قوانین با فرمان Netsh Advfirewall، باید از پارامتر Enable استفاده کنید. در مثال زیر قانون Network Blocker غیرفعال شده است:

Netsh Adv Fir set Ru Name=”Specific Host Blocker” New Enable=No

توجه کنید برای تنظیم مجدد یا ویرایش یک قانون، حتماً باید آن قانون نوشته‌شده باشد؛ در غیر این صورت با خطا مواجه خواهید شد.

حذف قوانین فایروال با دستور Netsh

برای حذف قوانین فایروال می‌توانید از فرمان Delete استفاده کنید. فقط کافی است بعد از دستور Delete از پارامتر Rule و بعد از آن از پارامتر Name و جزئیات قانون مدنظر خود استفاده کنید. در مثال زیر تمام قوانینی که نام آن‌ها Specific Host Blocker هستند، حذف شده‌اند:

Netsh Adv Fir Del Ru Name=”Specific Host Blocker”

 

حذف قوانین فایروال با دستور Netsh

و در نهایت پارامترهایی که می‌توانید از آن‌ها جهت حذف یک قانون استفاده کنید، به‌صورت زیر هستند:

Name – Dir – Profile – Program – Service – LocalIP – RemoteIP – LocalPort – RemoteProt – Protocol

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.