কম্পিউটার টিউটোরিয়াল

উইন্ডোজ ডিফেন্ডার ফায়ারওয়াল ও পাওয়ারশেল দিয়ে ওয়েবসাইট/ডোমেইন ব্লক করা

ভূমিকা

থার্ড-পার্টি টুল ছাড়া উইন্ডোজের বিল্ট-ইন টুল এবং পাওয়ারশেল অটোমেশন ব্যবহার করে নির্দিষ্ট ওয়েবসাইট, ডোমেইন নাম, URL বা IP ঠিকানা ব্লক করার পদ্ধতিগুলো নিচে দেওয়া হলো।

সাধারণত নেটওয়ার্ক রাউটার (সুইচ বা Wi-Fi অ্যাক্সেস পয়েন্ট) বা থার্ড-পার্টি সফটওয়্যার (কন্টেন্ট ফিল্টার, DNS ফিল্টার) দিয়ে ওয়েবসাইট ব্লক করা সহজ।

Hosts ফাইল দিয়ে ওয়েবসাইট ব্লক করা

সর্বाधিক প্রচলিত পদ্ধতি: hosts ফাইল এডিট করা। সাধারণত এটি থাকে: %windir%\system32\drivers\etc\ ডিরেক্টরিতে (এক্সটেনশন নেই)।

hosts ফাইলের পাথ রেজিস্ট্রি কী HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters-এর DataBasePath প্যারামিটার থেকে পাওয়া যায় (ডিফল্ট: %SystemRoot%\System32\drivers\etc)।

hosts ফাইল ম্যানুয়ালি IP ঠিকানা এবং DNS নামের ম্যাপিং করতে ব্যবহৃত হয়। নেম রেজোলিউশনে hosts ফাইলকে DNS সার্ভারের চেয়ে প্রাধান্য দেওয়া হয়।

facebook.com ব্লক করার উদাহরণ:

অ্যাডমিনিস্ট্রেটর অধিকার দিয়ে hosts ফাইল খুলুন এবং নিচের লাইনগুলো যোগ করুন:

127.0.0.1 facebook.com
127.0.0.1 www.facebook.com

ফাইল সেভ করুন এবং কম্পিউটার রিস্টার্ট করুন (বা ipconfig /flushdns চালান)। এখন ব্রাউজারে facebook.com খোলার চেষ্টা করলে "Page not found" দেখাবে।

.bat ফাইল দিয়ে অটোমেট করা:

@echo off
set hostspath=%windir%\System32\drivers\etc\hosts
echo 127.0.0.1 www.facebook.com >> %hostspath%
echo 127.0.0.1 facebook.com >> %hostspath%
exit

PowerShell ফাংশন দিয়ে ব্লক/আনব্লক:

Function BlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) {
$hosts = 'C:\Windows\System32\drivers\etc\hosts'
$is_blocked = Get-Content -Path $hosts | Select-String -Pattern ([regex]::Escape($Url))
If(-not $is_blocked) {
$hoststr="127.0.0.1 " + $Url
Add-Content -Path $hosts -Value $hoststr
}
}

Function UnBlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) {
$hosts = 'C:\Windows\System32\drivers\etc\hosts'
$is_blocked = Get-Content -Path $hosts | Select-String -Pattern ([regex]::Escape($Url))
If($is_blocked) {
$newhosts = Get-Content -Path $hosts | Where-Object { $_ -notmatch ([regex]::Escape($Url)) }
Set-Content -Path $hosts -Value $newhosts
}
}

ব্লক করতে: BlockSiteHosts ("twitter.com")
আনব্লক করতে: UnBlockSiteHosts ("twitter.com")

DNS ফিল্টারিং দিয়ে ব্লক করা

যদি সব ক্লায়েন্ট একই DNS সার্ভার ব্যবহার করে, তবে সেটাতে DNS এন্ট্রি তৈরি করে নির্দিষ্ট ওয়েবসাইট ব্লক করা যায় (যেমন: 127.0.0.1 পয়েন্ট করিয়ে)। কমার্সিয়াল DNS কন্টেন্ট ফিল্টার (OpenDNS, SafeDNS, Cisco Umbrella) একই prinsip ব্যবহার করে।

Windows Defender Firewall-এ ওয়েবসাইটের IP ব্লক করা

Windows Defender Firewall-ও ব্যবহার করা যায়। তবে এখানে ডোমেইন নাম বা URL দিয়ে ব্লক করা যায় না, শুধু IP ঠিকানা বা সাবনেট দিতে হয়।

IP ঠিকানা বের করুন:

nslookup twitter.com

কমান্ড একাধিক IP রিটার্ন করবে। সবগুলো ব্লক করতে হবে।

ফায়ারওয়াল রুল তৈরি (GUI):

  1. firewall.cpl চালু করুন → Advanced Settings → Outbound Rules → New Rule
  2. Rule Type: Custom
  3. Program: All programs
  4. Protocol Type: Any
  5. Scope: "These IP addresses" → Add → IP ঠিকানা/সাবনেট/রেঞ্জ দিন
  6. Action: Block the connection
  7. Profile: সবগুলো रहने দিন → নাম দিয়ে সেভ করুন

ব্লক হলে ব্রাউজারে "Unable to connect" বা "ERR_NETWORK_ACCESS_DENIED" দেখাবে।

নোট: AD ডোমেইনে GPO দিয়ে ফায়ারওয়াল পলিসি ডিপ্লয় করা যায়, কিন্তু এটি তত্ত্বাবধানে না। ইন্টারনেট গেটওয়ে/রাউটার/প্রক্সি সার্ভারে ফিল্টার করা ভালো।

PowerShell দিয়ে ফায়ারওয়াল রুল তৈরি (ডোমেইন নাম বা IP দিয়ে)

PowerShell কমান্ড:

New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress 104.244.42.129, 104.244.42.0/24

"The rule was parsed successfully from the store" মানে রুল সফল হয়েছে।

Resolve-DnsName দিয়ে IP অটোমেটিক বের করে ব্লক:

$IPAddress = Resolve-DnsName "twitter.com"| Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress

একসাথে একাধিক ওয়েবসাইট ব্লক:

$SitesToBlock = "facebook.com","instagram.com","youtube.com"
$IPAddress = $SitesToBlock | Resolve-DnsName -NoHostsFile | Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Web Sites" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress

–NoHostsFile প্যারামিটার দিয়ে hosts ফাইল ব্যবহার না করে DNS রেজোলভ করা হয়েছে।

এই আর্টিকেল মূলত ব্রেন ট্রেনিং এক্সারসাইজ। কর্পোরেট নেটওয়ার্কে ইন্টারনেট গেটওয়ে, রাউটার বা প্রক্সি সার্ভারে ওয়েবসাইট ফিল্টারিং করা উচিত। হোস্ট-লেভেল ব্লকিং খুব কার্যকর নয়।

  1. Windows Defender Firewall-এ প্রোগ্রাম এক্সেস ম্যানেজ করুন: ব্লক ও আনব্লক করার নির্দেশনা

  2. উইন্ডোজ ১০ ডিফেন্ডার অ্যান্টিভাইরাস ও ফায়ারওয়াল ডিজেবল করার ধাপে ধাপে গাইড

  3. উইন্ডোজ ১০ ফায়ারওয়ালে প্রোগ্রাম ব্লক করুন: ধাপে ধাপে গাইড

  4. আপনার PC রক্ষা করুন: Microsoft Defender-এর এক্সপার্ট গাইড