Windows ফায়ারওয়াল: প্রয়োজনীয় পোর্ট খোলা
আপনার সার্ভিসের জন্য পোর্ট কীভাবে খুলবেন, অ্যাড্রেস অনুযায়ী অ্যাক্সেস সীমাবদ্ধ করবেন, এবং সার্ভারে অ্যাক্সেস না হারিয়ে রুলটি সত্যিই কাজ করছে কিনা যাচাই করবেন।
আপডেট: ২৩ আগস্ট, ২০২৬
Windows Server সহ একটি VDS-এ, ফায়ারওয়ালই আপনার সার্ভিস এবং ইন্টারনেটের মধ্যে একমাত্র ফিল্টার: IPv4 অ্যাড্রেসটি পাবলিক, এবং মেশিনের সামনে কোনো বাহ্যিক সুরক্ষা নেই। তাই নিয়মটি সহজ: আপনি সচেতনভাবে যা খুলেছেন কেবল সেটিই বাইরে থেকে অ্যাক্সেসযোগ্য।
এখন কী খোলা আছে
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction
Get-NetFirewallRule -Enabled True -Direction Inbound |
Where-Object Action -eq Allow |
Get-NetFirewallPortFilter | Select-Object Protocol, LocalPort -Unique
Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess
শেষ কমান্ডটি দেখায় কোন পোর্টগুলো আসলে লিসেন করছে। কোনো সার্ভিস যদি কেবল 127.0.0.1-এ লিসেন করে, তবে নিয়ম যাই হোক না কেন, সেটি বাইরে থেকে অ্যাক্সেসযোগ্য নয়।
একটি পোর্ট খোলা
ওয়েব সার্ভার:
New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
কেবল বিশ্বস্ত অ্যাড্রেসের জন্য আপনার নিজের সার্ভিস:
New-NetFirewallRule -DisplayName "App 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 `
-RemoteAddress 203.0.113.5,198.51.100.0/24 -Action Allow
অ্যাপ্লিকেশন যদি ডাইনামিক পোর্ট ব্যবহার করে, তবে পোর্টের বদলে নির্দিষ্ট প্রোগ্রামের জন্য নিয়ম তৈরি করা বেশি নির্ভরযোগ্য:
New-NetFirewallRule -DisplayName "MyApp" -Direction Inbound -Program "C:\apps\myapp.exe" -Action Allow
একটি নিয়ম মুছে ফেলা এবং দেখা:
Remove-NetFirewallRule -DisplayName "App 8080"
Get-NetFirewallRule -DisplayName "App 8080" | Format-List
কী বন্ধ রাখবেন
অ্যাড্রেস দিয়ে সীমাবদ্ধ না করে কখনোই বাইরে এক্সপোজ করবেন না:
| পোর্ট | সার্ভিস | কেন |
|---|---|---|
| 3389 | RDP | প্রথম কয়েক ঘণ্টার মধ্যেই পাসওয়ার্ড ব্রুট-ফোর্সিং শুরু হয়, দেখুন RDP সুরক্ষা |
| 1433 | MS SQL | ডেটাবেস ইন্টারনেট থেকে অ্যাক্সেসযোগ্য হওয়া উচিত নয়, দেখুন MS SQL Server |
| 5985, 5986 | WinRM | রিমোট ম্যানেজমেন্ট, কেবল আপনার নিজের অ্যাড্রেস থেকে |
| 445 | SMB | ব্যাপক আক্রমণের একটি ক্লাসিক টার্গেট |
আপনার কম্পিউটার থেকে ডেটাবেসে অ্যাক্সেস প্রয়োজন হলে 1433 খুলবেন না; বরং RDP সেশনের ভিতরে পোর্ট ফরওয়ার্ড করুন বা একটি VPN সেট আপ করুন।
যাচাই
মেশিনের ভিতর থেকে একটি পোর্ট লিসেন করছে মানেই বাইরে থেকে অ্যাক্সেসযোগ্য নয়। অন্য একটি হোস্ট থেকে পরীক্ষা করুন:
nc -vz YOUR_ADDRESS 443
curl -I http://YOUR_ADDRESS
বাইরে থেকে যদি এটি বন্ধ থাকে কিন্তু Get-NetTCPConnection একটি লিসেনার দেখায়, তবে সমস্যাটি নিয়ম বা নেটওয়ার্ক প্রোফাইলে: নিশ্চিত করুন যে নিয়মটি সক্রিয় প্রোফাইলে তৈরি হয়েছে (সাধারণত “Public network”)।
সাধারণ ভুল
- “ডিবাগিংয়ের জন্য” পুরো ফায়ারওয়াল নিষ্ক্রিয় করা। আপনি কাজ শেষ করার আগেই মেশিনটি খুঁজে পাওয়া যাবে। এর বদলে অ্যাড্রেস সীমাবদ্ধতাসহ একটি সাময়িক নিয়ম তৈরি করুন।
- একটি পোর্ট খোলা কিন্তু অ্যাপ্লিকেশনের কথা ভুলে যাওয়া। অনেক সার্ভিস ডিফল্টভাবে কেবল localhost-এ লিসেন করে; নিয়মের এর সাথে কোনো সম্পর্ক নেই।
- নিজেকে RDP থেকে লক আউট করা। এরপর প্যানেল
/hosting/vds/m/<id>-এর “Console” ট্যাব, “Screen” মোডে লগ ইন করুন এবং সেখান থেকে নিয়ম সম্পাদনা করুন। - একটি deny নিয়মের উপরে allow নিয়ম তৈরি করা। Windows-এ deny সর্বদা allow-এর উপরে জয়ী হয় — একই পোর্টের একটি ব্লকিং নিয়ম খুঁজুন।
প্রতিটি পরিবর্তনের পরে কনফিগারেশনের একটি স্ন্যাপশট সংরক্ষণ করা কাজে দেয়:
Get-NetFirewallRule -Enabled True | Export-Csv C:\fw.csv। এভাবে কোনো সার্ভিস হঠাৎ সাড়া দেওয়া বন্ধ করলে কী পরিবর্তন হয়েছে তা আপনি বুঝতে পারবেন।