আসুন তৃতীয় পক্ষের সরঞ্জামগুলি ব্যবহার না করে উইন্ডোজে নির্দিষ্ট ওয়েবসাইট, ডোমেন নাম, URL বা IP ঠিকানাগুলিতে অ্যাক্সেস ব্লক করার কিছু উপায় বিবেচনা করি। আমাদের ক্ষেত্রে, আমরা বিল্ট-ইন Windows 10 টুলস এবং PowerShell অটোমেশন বৈশিষ্ট্যগুলি ব্যবহার করে কিছু ওয়েবসাইট ব্লক করার চেষ্টা করব।
সাধারণত আপনার নেটওয়ার্ক রাউটারে (ইন্টারনেট অ্যাক্সেস করার জন্য আপনি যে সুইচ বা Wi-Fi অ্যাক্সেস পয়েন্ট ব্যবহার করছেন) বা তৃতীয় পক্ষের সফ্টওয়্যার (কন্টেন্ট ফিল্টার, DNS ফিল্টার ইত্যাদি) ব্যবহার করে ওয়েবসাইটগুলিকে ব্লক করা সহজ।
উইন্ডোজে হোস্ট ফাইল ব্যবহার করে ওয়েবসাইট ব্লক করা
Windows এ একটি নির্দিষ্ট ওয়েবসাইট ব্লক করার সবচেয়ে জনপ্রিয় পদ্ধতি হল হোস্ট সম্পাদনা করা ফাইল সাধারণত এটি %windir%\system32\drivers\etc\-এ অবস্থিত ডিরেক্টরি দয়া করে মনে রাখবেন হোস্ট ফাইলের কোনো এক্সটেনশন নেই।
হোস্ট ধারণকারী ডিরেক্টরির পথ ফাইলটি DataBasePath-এ সেট করা আছে রেজিস্ট্রি কীর অধীনে প্যারামিটার HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters . ডিফল্টরূপে এটি %SystemRoot%\System32\drivers\etc.
হোস্ট ফাইলটি ম্যানুয়ালি আইপি ঠিকানা এবং DNS নামের মধ্যে ম্যাপিং বরাদ্দ করতে ব্যবহৃত হয়। নামগুলি সমাধান করার সময়, নেটওয়ার্ক সংযোগ সেটিংসে নির্দিষ্ট করা DNS সার্ভারের তুলনায় হোস্টের অগ্রাধিকার বেশি থাকে৷
একটি নির্দিষ্ট ওয়েবসাইট ব্লক করতে (উদাহরণস্বরূপ, facebook.com), হোস্ট ফাইলটি খুলুন (প্রশাসকের বিশেষাধিকার সহ) এবং এতে এই জাতীয় স্ট্রিংগুলি যুক্ত করুন:
127.0.0.1 facebook.com 127.0.0.1 www.facebook.com
ফাইলটি সংরক্ষণ করুন এবং আপনার কম্পিউটার পুনরায় চালু করুন (অথবা কমান্ডটি ব্যবহার করে DNS ক্যাশে সাফ করুন:ipconfig /flushdns
)।
এর পরে, যেকোন ব্রাউজারে facebook.com খুলতে গেলে আপনি "পৃষ্ঠাটি পাওয়া যায়নি" / "পৃষ্ঠা উপলব্ধ নেই" বার্তাটি দেখতে পাবেন৷
আপনি এই ধরনের একটি .bat ফাইল ব্যবহার করে আপনার হোস্ট ফাইলে ওয়েবসাইট URL সম্বলিত নতুন লাইন যোগ করতে পারেন:
@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
}
}
ব্লক করা URL-এর তালিকায় একটি ওয়েবসাইট যোগ করতে, শুধুমাত্র কমান্ডটি চালান:
BlockSiteHosts ("twitter.com")
ওয়েবসাইটটি আনব্লক করতে, চালান:
UnBlockSiteHosts ("twitter.com")
DNS ফিল্টারিং ব্যবহার করে ওয়েবসাইট ব্লক করুন
যদি আপনার ক্লায়েন্ট একই DNS সার্ভার ব্যবহার করে, একইভাবে আপনি সেই DNS-এ একটি DNS এন্ট্রি তৈরি করে নির্দিষ্ট ওয়েবসাইটগুলিকে ব্লক করতে পারেন এবং এতে 127.0.0.1 এর মতো কিছু নির্দিষ্ট করতে পারেন। যাইহোক, বেশিরভাগ বাণিজ্যিক DNS সামগ্রী ফিল্টার (OpenDNS, SafeDNS, Cisco Umbrella, ইত্যাদি) একই নীতি ব্যবহার করে।
উইন্ডোজ ডিফেন্ডার ফায়ারওয়ালে ওয়েবসাইটের আইপি ঠিকানা কীভাবে ব্লক করবেন?
এছাড়াও, আপনি বিল্ট-ইন উইন্ডোজ ডিফেন্ডার ফায়ারওয়াল ব্যবহার করে কিছু ওয়েবসাইট ব্লক করতে পারেন। এই পদ্ধতির প্রধান অসুবিধা হল যে আপনি ব্লক করার নিয়মে কোনও ডোমেনের নাম বা কোনও ওয়েবসাইটের URL ব্যবহার করতে পারবেন না। উইন্ডোজ ডিফেন্ডার ফায়ারওয়াল আপনাকে উৎস/গন্তব্য হিসাবে শুধুমাত্র একটি আইপি ঠিকানা বা একটি সাবনেট নির্দিষ্ট করতে দেয়।
প্রথমত, আপনি যে ওয়েবসাইটটি ব্লক করতে চান তার IP ঠিকানা পেতে হবে। nslookup ব্যবহার করে এটি করা সহজ কমান্ড:
nslookup twitter.com
আপনি দেখতে পাচ্ছেন, কমান্ডটি ওয়েবসাইটে নির্ধারিত বেশ কয়েকটি আইপি ঠিকানা ফিরিয়ে দিয়েছে। আপনাকে তাদের সবাইকে ব্লক করতে হবে।
উইন্ডোজ ডিফেন্ডার ফায়ারওয়াল ম্যানেজমেন্ট স্ন্যাপ-ইন চালান (কন্ট্রোল প্যানেল\সমস্ত কন্ট্রোল প্যানেল আইটেম\Windows ডিফেন্ডার ফায়ারওয়াল\Advanced সেটিংস বা firewall.cpl চালিয়ে )।
আউটবাউন্ড নিয়মে বিভাগে, নিম্নলিখিত সেটিংস সহ একটি নতুন নিয়ম তৈরি করুন:
- নিয়মের ধরন :কাস্টম
- প্রোগ্রাম :সমস্ত প্রোগ্রাম
- প্রোটোকল প্রকার :যেকোনো
- স্কোপ :"কোন দূরবর্তী আইপি ঠিকানাগুলিতে এই নিয়ম প্রযোজ্য?" বিভাগে "এই আইপি ঠিকানাগুলি" নির্বাচন করুন -> যোগ করুন। পরবর্তী উইন্ডোতে, আইপি ঠিকানা, সাবনেট বা আইপি ঠিকানাগুলির একটি পরিসর লিখুন যা আপনি ব্লক করতে চান৷
ঠিক আছে -> পরবর্তী -> অ্যাকশন -> কানেকশন ব্লক করুন ক্লিক করুন .
ফায়ারওয়াল প্রোফাইলগুলির সাথে নিয়মটি প্রয়োগ করা হয়েছে এমন সমস্ত বিকল্পগুলিকে উইন্ডোতে রেখে দিন৷ তারপর নিয়মের নাম উল্লেখ করুন এবং এটি সংরক্ষণ করুন।
এর পরে উইন্ডোজ ডিফেন্ডার ফায়ারওয়াল নির্দিষ্ট ওয়েবসাইটের আইপি ঠিকানাগুলিতে সমস্ত বহির্গামী সংযোগগুলিকে ব্লক করবে। অবরুদ্ধ সাইটে সংযোগ করার চেষ্টা করার সময় নিম্নলিখিত বার্তাটি আপনার ব্রাউজারে উপস্থিত হবে:
Unable to connect
অথবা
Your Internet access is blocked Firewall or antivirus software may have blocked the connection ERR_NETWORK_ACCESS_DENIED
আপনার AD ডোমেনে আপনি GPO ব্যবহার করে ব্যবহারকারী কম্পিউটারে একটি ওয়েবসাইটের অ্যাক্সেস ব্লক করতে একটি Windows ফায়ারওয়াল নীতি স্থাপন করতে পারেন। যাইহোক, এটি যুক্তিসঙ্গত নয়। আপনার ইন্টারনেট অ্যাক্সেস রাউটারে (গেটওয়ে) ওয়েবসাইটগুলি ফিল্টার করা ভাল।
ডোমেন নাম বা IP ঠিকানা দ্বারা ওয়েবসাইট ব্লক করতে ফায়ারওয়াল নিয়ম তৈরি করতে PowerShell ব্যবহার করে
আপনি একটি ফায়ারওয়াল নিয়মও তৈরি করতে পারেন যা PowerShell:
ব্যবহার করে ওয়েবসাইটের সংযোগ ব্লক করে
New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress 104.244.42.129, 104.244.42.0/24
স্ট্রিং "নিয়মটি স্টোর থেকে সফলভাবে পার্স করা হয়েছে" এর অর্থ হল নতুন ফায়ারওয়াল নিয়ম সফলভাবে প্রয়োগ করা হয়েছে। আপনি এটি আপনার উইন্ডোজ ডিফেন্ডার ফায়ারওয়ালের গ্রাফিক্যাল ইন্টারফেসে খুঁজে পেতে পারেন।
আইপি ঠিকানাগুলিতে ওয়েবসাইটের নামগুলি ম্যানুয়ালি সমাধান না করার জন্য, আপনি Resolve-DnsName ব্যবহার করতে পারেন ওয়েবসাইটের আইপি ঠিকানা পেতে পাওয়ারশেল cmdlet:
Resolve-DnsName "twitter.com"| Select-Object -ExpandProperty IPAddress
এইভাবে, আপনি ওয়েবসাইটের নামটিকে এর 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
তাই আপনি এখন একাধিক ওয়েবসাইটের জন্য আপনার Windows ফায়ারওয়ালে একটি ব্লক করার নিয়ম যোগ করতে পারেন:
$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 যোগ করেছি সমাধানের জন্য হোস্ট ফাইল ব্যবহার না করার জন্য Resolve-DnsName cmdlet-এর প্যারামিটার।
আসুন নিশ্চিত করি যে উইন্ডোজ ফায়ারওয়াল কনসোলে একটি ব্লক আউটবাউন্ড নিয়ম উপস্থিত হয়েছে।
এই নিবন্ধটি বেশিরভাগই একটি মস্তিষ্ক প্রশিক্ষণ ব্যায়াম। একটি কর্পোরেট নেটওয়ার্কে, আপনাকে অবশ্যই আপনার ইন্টারনেট অ্যাক্সেস গেটওয়ে, রাউটার বা একটি প্রক্সি সার্ভারে ওয়েবসাইট ফিল্টারিং ব্যবহার করতে হবে৷ হোস্ট-লেভেল ব্লকিং খুব কার্যকর নয়।