কম্পিউটার

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

PowerShell ব্যবহার করে অ্যাডভান্সড সিকিউরিটি সহ বিল্ট-ইন উইন্ডোজ ডিফেন্ডার ফায়ারওয়ালের সেটিংস এবং নিয়মগুলি কীভাবে পরিচালনা করতে হয় তার মূল বিষয়গুলি এই নিবন্ধটি দেয়৷ আমরা বিবেচনা করব কিভাবে বিভিন্ন নেটওয়ার্ক প্রোফাইলের জন্য ফায়ারওয়াল সক্রিয়/অক্ষম করা যায়, ফায়ারওয়াল নিয়ম তৈরি বা সরানো যায় এবং একটি সুবিধাজনক সারণী পেতে একটি ছোট পিএস স্ক্রিপ্ট লিখব যা সক্রিয় ফায়ারওয়াল নিয়মের বর্তমান সেট দেখায়।

আপনি গ্রাফিক কনসোল থেকে উইন্ডোজ ফায়ারওয়াল সেটিংস পরিচালনা করতে পারেন:কন্ট্রোল প্যানেল -> সিস্টেম এবং নিরাপত্তা -> উইন্ডোজ ডিফেন্ডার ফায়ারওয়াল . যাইহোক, Windows 8.1 (Windows Server 2012 R2) দিয়ে শুরু করে আপনি বিল্ট-ইন NetSecurity ব্যবহার করতে পারেন ফায়ারওয়াল পরিচালনা করার জন্য পাওয়ারশেল মডিউল।

পূর্বে, নিম্নলিখিত কমান্ডটি উইন্ডোজ ফায়ারওয়াল নিয়ম এবং সেটিংস পরিচালনা করতে ব্যবহৃত হত:netsh advfirewall firewall

Windows 10-এ NetSecurity মডিউলে 85টি কমান্ড উপলব্ধ রয়েছে। আপনি পুরো তালিকাটি প্রদর্শন করতে পারেন:

গেট-কমান্ড -মডিউল নেট সিকিউরিটি

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

পাওয়ারশেল থেকে উইন্ডোজ ফায়ারওয়াল নেটওয়ার্ক প্রোফাইলগুলি কীভাবে পরিচালনা করবেন?

উইন্ডোজ ফায়ারওয়ালে তিন ধরনের নেটওয়ার্ক প্রোফাইল রয়েছে:

  • ডোমেন - একটি সক্রিয় ডিরেক্টরি ডোমেনে কম্পিউটারে প্রয়োগ করা হয়
  • ব্যক্তিগত – হোম বা কর্পোরেট নেটওয়ার্ক
  • সর্বজনীন – পাবলিক নেটওয়ার্ক

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

নেটওয়ার্ক অবস্থান সচেতনতা (NLA) তার ডাটাবেসে নেটওয়ার্ক প্রকারের তথ্য রাখে। আপনি আপনার নেটওয়ার্ক প্রোফাইল (অবস্থান) পরিবর্তন করতে পারেন যদি এটি ভুলভাবে সনাক্ত করা হয়।

প্রতিটি নেটওয়ার্ক প্রোফাইল (অবস্থান) ব্যবহৃত ফায়ারওয়াল নিয়মের সেট দ্বারা পৃথক হতে পারে। ডিফল্টরূপে, একটি কম্পিউটারের সমস্ত নেটওয়ার্ক ইন্টারফেস ফায়ারওয়াল দ্বারা সুরক্ষিত থাকে, এবং তিনটি ধরণের প্রোফাইলই তাদের উপর প্রয়োগ করা হয়৷

তিনটি নেটওয়ার্ক প্রোফাইল সক্রিয় করতে:ডোমেন, পাবলিক এবং প্রাইভেট, এই কমান্ডটি ব্যবহার করুন:

Set-NetFirewallProfile -All-Enabled True

অথবা এর পরিবর্তে নির্দিষ্ট প্রোফাইল সেট করুন সমস্ত :

Set-NetFirewallProfile -প্রোফাইল পাবলিক -সক্ষম সত্য

তিনটি নেটওয়ার্ক অবস্থানের জন্য ফায়ারওয়াল নিষ্ক্রিয় করতে, কমান্ডটি ব্যবহার করুন:

Set-NetFirewallProfile -সমস্ত -সক্ষম মিথ্যা

Set-NetFirewallProfile cmdlet ব্যবহার করে, আপনি প্রোফাইল বিকল্পগুলি পরিবর্তন করতে পারেন (একটি ডিফল্ট অ্যাকশন, লগিং, একটি পথ এবং একটি লগ ফাইলের আকার, বিজ্ঞপ্তি সেটিংস ইত্যাদি)।

আপনি হয়ত জানেন যে আধুনিক ওএস সংস্করণে উইন্ডোজ ফায়ারওয়াল সমস্ত প্রোফাইলের জন্য সক্ষম। সমস্ত আউটবাউন্ড সংযোগ অনুমোদিত এবং অন্তর্মুখী সংযোগগুলি প্রোফাইল সেটিংসে (অনুমতিপ্রাপ্তগুলি ব্যতীত) ব্লক করা হয়েছে৷

আসুন সকল ইনবাউন্ড সংযোগ ব্লক করতে পাবলিক প্রোফাইলের জন্য ডিফল্ট অ্যাকশন পরিবর্তন করি।

Set-NetFirewallProfile -Name Public -DefaultInboundAction Block

আপনি নিম্নরূপ বর্তমান প্রোফাইল সেটিংস প্রদর্শন করতে পারেন:

Get-NetFirewallProfile -Name Public

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

আপনি যদি জিপিও ব্যবহার করে আপনার উইন্ডোজ ফায়ারওয়াল সেটিংস পরিচালনা করেন, তাহলে আপনি নিম্নরূপ বর্তমান ফলাফল প্রোফাইল সেটিংস প্রদর্শন করতে পারেন:

Get-NetFirewallProfile -policystore activestore

নিশ্চিত করুন যে সমস্ত ফায়ারওয়াল সেটিংস কম্পিউটারের সমস্ত নেটওয়ার্ক ইন্টারফেসে প্রয়োগ করা হয়েছে৷

Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases

যদি সমস্ত ইন্টারফেস সুরক্ষিত থাকে, কমান্ডটি নিম্নলিখিতগুলি ফিরিয়ে দেবে:

DisabledInterfaceAliases : {NotConfigured}

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

আপনি নির্দিষ্ট ইন্টারফেস প্রোফাইল নিষ্ক্রিয় করতে পারেন (ইন্টারফেসের নামের তালিকা প্রদর্শন করতে, Get-NetIPInterface ব্যবহার করুন):

Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"

আপনি দেখতে পাচ্ছেন, পাবলিক প্রোফাইল আর Ethernet0:

এ প্রয়োগ করা হয় না
DisabledInterfaceAliases : {Ethernet0}

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

আপনি প্রোফাইল স্তরে নেটওয়ার্ক সংযোগ লগিং বিকল্পগুলি সেট করতে পারেন৷ ডিফল্টরূপে, উইন্ডোজ ফায়ারওয়াল লগগুলি %systemroot%\system32\LogFiles\Firewall-এ সংরক্ষণ করা হয় এবং ফাইলের আকার 4MB। আপনি সমস্ত সংযোগ লগিং সক্ষম করতে পারেন এবং সর্বাধিক ফাইলের আকার পরিবর্তন করতে পারেন:

Set-NetFireWallProfile -প্রোফাইল ডোমেন -LogBlocked True -LogMaxSize 20000 -LogFileName ‘%systemroot%\system32\LogFiles\Firewall\pfirewall.log’

কিভাবে PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম তৈরি, সম্পাদনা বা সরাতে হয়?

আপনার ফায়ারওয়াল নিয়মগুলি পরিচালনা করার জন্য 9টি cmdlet আছে:

  • নতুন-NetFirewallRule
  • কপি-NetFirewallRule
  • অক্ষম-NetFirewallRule
  • Enable-NetFirewallRule
  • Get-NetFirewallRule
  • Remove-NetFirewallRule
  • পুনঃনামকরণ-NetFirewallRule
  • Set-NetFirewallRule
  • Show-NetFirewallRule

উইন্ডোজ ফায়ারওয়ালে কিভাবে পোর্ট খুলতে হয় তার কিছু সহজ উদাহরণ বিবেচনা করা যাক।

উদাহরণস্বরূপ, আপনি যদি ডোমেন এবং ব্যক্তিগত প্রোফাইলের জন্য 80 এবং 443 পোর্টে অন্তর্মুখী TCP সংযোগের অনুমতি দিতে চান, তাহলে এই কমান্ডটি ব্যবহার করুন:

নতুন-NetFirewallRule -DisplayName 'HTTP-ইনবাউন্ড' -প্রোফাইল @('ডোমেন', 'প্রাইভেট') -নির্দেশ ইনবাউন্ড -অ্যাকশন মঞ্জুরি -প্রটোকল TCP -LocalPort @('80', '443')

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

আপনি একটি অ্যাপের জন্য নেটওয়ার্ক অ্যাক্সেসের অনুমতি দিতে বা ব্লক করতে পারেন। উদাহরণস্বরূপ, আপনি ফায়ারফক্সের জন্য আউটবাউন্ড সংযোগ ব্লক করতে চান:

নতুন-NetFirewallRule -প্রোগ্রাম "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -অ্যাকশন ব্লক -প্রোফাইল ডোমেন, ব্যক্তিগত -ডিসপ্লেনাম "ব্লক ফায়ারফক্স ব্রাউজার" -বিবরণ "ব্লক ফায়ারফক্স ব্রাউজার" -ডিরেকশন আউটবাউন্ড

শুধুমাত্র একটি আইপি ঠিকানা থেকে 3389 পোর্টে ইনবাউন্ড RDP সংযোগের অনুমতি দিতে:

নতুন-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress 192.168.2.200 -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow

নির্দিষ্ট আইপি সাবনেট বা আইপি পরিসর থেকে ঠিকানাগুলির জন্য পিং (ICMP) অনুমতি দিতে, এই কমান্ডগুলি ব্যবহার করুন:

$ips =@("192.168.2.15-192.168.2.40", "192.168.100.15-192.168.100.200", "10.1.0.0/16")
New-NetFirewallb-4Mp-Lame-এ " -ডাইরেকশন ইনবাউন্ড -প্রটোকল ICMPv4 -IcmpType 8 -RemoteAddress $ips -Action Allow
New-NetFirewallRule -DisplayName "Allow inbound ICMPv6" -Direction Inbound -Protocol ICMPv6 -IcmpTypesAddress -$

আগের প্রবন্ধে আমরা দেখিয়েছি কিভাবে PowerShell ব্যবহার করে IP ঠিকানা এবং একটি ডোমেন/সাইট DNS নাম দ্বারা সাইট অ্যাক্সেস ব্লক করতে হয়।

একটি বিদ্যমান ফায়ারওয়াল নিয়ম সম্পাদনা করার জন্য, Set-NetFirewallRule cmdlet ব্যবহার করা হয়। উদাহরণস্বরূপ, পূর্বে তৈরি করা নিয়মের জন্য নির্দিষ্ট আইপি ঠিকানা থেকে অন্তর্মুখী সংযোগের অনুমতি দিতে:

Get-NetFirewallrule -DisplayName 'HTTP-ইনবাউন্ড' | Get-NetFirewallAddressFilter | সেট-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

ফায়ারওয়াল নিয়মে সমস্ত আইপি ঠিকানা প্রদর্শন করতে:

Get-NetFirewallrule -DisplayName 'Allow inbound ICMPv4'|Get-NetFirewallAddressFilter

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

আপনি Disable-NetFirewallRule ব্যবহার করে ফায়ারওয়াল নিয়মগুলি সক্ষম/অক্ষম করতে পারেন এবং Enable-NetFirewallRule cmdlets।

Disable-NetFirewallRule –DisplayName 'WEB-Inbound'

ICMP (পিং) অনুমতি দিতে, এই কমান্ডটি চালান:

Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In

একটি ফায়ারওয়াল নিয়ম সরাতে, Remove-NetFirewallRule cmdlet ব্যবহার করা হয়৷

PowerShell এর সাথে উইন্ডোজ ফায়ারওয়াল নিয়ম তালিকাভুক্ত করা

আপনি আপনার অন্তর্মুখী ট্র্যাফিকের জন্য সক্রিয় ফায়ারওয়াল নিয়মগুলির তালিকা নিম্নরূপ প্রদর্শন করতে পারেন:

Get-NetFirewallRule | যেখানে {($_.enabled -eq $True) -and ($_.Direction -eq "Inbound")} |ft

আপনি যদি আউটবাউন্ড ব্লকিং নিয়মের তালিকা প্রদর্শন করতে চান:

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

একটি নিয়মে একটি অ্যাপের নাম প্রদর্শন করতে:

Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound | %{$_.নাম; $_ | Get-NetFirewallApplicationFilter}

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

আপনি দেখতে পাচ্ছেন, Get-NetFirewallRule cmdlet আপনার ফায়ারওয়াল নিয়মগুলির জন্য নেটওয়ার্ক পোর্ট এবং IP ঠিকানাগুলি দেখায় না। অনুমোদিত ইনবাউন্ড (আউটবাউন্ড) সংযোগগুলি সম্পর্কে বিস্তারিত তথ্য পোর্ট নম্বরগুলি দেখানো আরও সুবিধাজনক উপায়ে প্রদর্শন করতে, নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি ব্যবহার করুন:

Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Format-Table -Protocol 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}},
সক্ষম,প্রোফাইল,ডিয়ার

PowerShell দিয়ে উইন্ডোজ ফায়ারওয়াল নিয়ম কনফিগার করা

PowerShell কমান্ড প্রম্পট থেকে উইন্ডোজ ফায়ারওয়াল নিয়ম পরিচালনা করার জন্য যথেষ্ট সুযোগ প্রদান করে। কিছু ঘটনা ঘটলে আপনি স্বয়ংক্রিয়ভাবে পাওয়ারশেল স্ক্রিপ্টগুলি খুলতে/বন্ধ করতে পোর্ট চালাতে পারেন। পরবর্তী প্রবন্ধে, আমরা আপনার Windows VDS সার্ভারে RDP-এর মাধ্যমে দূরবর্তীভাবে পাশবিক পাসওয়ার্ড দেওয়ার চেষ্টা করে IP ঠিকানাগুলিকে স্বয়ংক্রিয়ভাবে ব্লক করার জন্য একটি সাধারণ PowerShell- এবং Windows ফায়ারওয়াল-ভিত্তিক সমাধান বিবেচনা করব।


  1. PowerShell এর সাথে Windows এ সক্রিয় TCP/IP সংযোগ পরীক্ষা করা হচ্ছে

  2. পাওয়ারশেল বা ওয়েভটুটিল ব্যবহার করে কীভাবে উইন্ডোজ ইভেন্ট লগ সাফ করবেন

  3. কিভাবে PowerShell দিয়ে Windows Defender ফায়ারওয়ালে একটি ডোমেন বা ওয়েবসাইট ব্লক করবেন?

  4. Windows 10 ফায়ারওয়াল নিয়ম ও সেটিংস সামঞ্জস্য করুন