ফায়ারওয়াল প্রোফাইল বনাম VPN ইগ্রেস: কেন পাবলিক কোনো পথ নয়
একটি ফায়ারওয়াল প্রোফাইল ঠিক করে কোন নিয়মের সেট প্রযোজ্য হবে। প্যাকেট কোন ইন্টারফেসে গেছে তা এটি বলে না, আর স্পষ্ট ব্লক সংকীর্ণ অনুমতির চেয়ে অগ্রাধিকার পায়।
নিয়মটি নির্দিষ্ট শোনায়: প্রাইভেট প্রোফাইলে লোকাল ট্রাফিক এবং পাবলিক প্রোফাইলে শুধু VPN ট্রাফিক অনুমোদন করুন। কিন্তু তা নয়, কারণ একটি নেটওয়ার্ক প্রোফাইল ঠিক করে কোন ফায়ারওয়াল নিয়মের সেট প্রযোজ্য হবে এবং প্যাকেট কোন অ্যাডাপ্টার বহন করেছে তা বলে না। প্রোফাইলের নামকে পথের শর্ত হিসেবে ধরা হলো সেই ভুল, যার কারণে একটি সীমিত ইগ্রেস ডিজাইন শেষ না হয়েও শেষ দেখায়।
প্রথমে ফ্লোগুলো লিখে ফেলুন, তারপর ঠিক করুন কোন ব্যবস্থা প্রতিটিকে সত্যিই প্রয়োগ করতে পারে। সেই ফ্লো তালিকাই একমাত্র উপাদান যা পরের নিয়ম পরিবর্তনেও টিকে থাকে।
শ্রেণি নিয়ম বেছে নেয়, পথ নয়
যখন Windows একটি নেটওয়ার্ককে পাবলিক বা প্রাইভেট হিসেবে শ্রেণিবদ্ধ করে, ফায়ারওয়াল সেই প্রোফাইলের জন্য কনফিগার করা নিয়মের সেট প্রয়োগ করে। শ্রেণিবিন্যাস অ্যাডাপ্টার যে নেটওয়ার্কে যুক্ত হয়েছে তা অনুসরণ করে, আর নিয়মের সেট ঠিক করে সেখানে কী অনুমোদিত। এই তথ্যগুলোর কোনোটিই নির্ভর করে না যে কোনো অ্যাপ্লিকেশনের ট্রাফিক টানেল ব্যবহার করেছে কি না। এই স্বাধীনতাই পুরো কঠিন অংশ।
পথের পছন্দ করে রাউটিং, ইন্টারফেস মেট্রিক এবং টানেল যে প্রিফিক্স ইনস্টল করে তার মাধ্যমে। তাই একটি প্রোফাইল পাবলিক হিসেবে চিহ্নিত থাকতে পারে, অথচ কোনো অ্যাপ্লিকেশনের সংযোগ ভৌত পথ নেয়, আর ফায়ারওয়াল তবুও জানাবে যে পাবলিক নিয়মের সেট প্রয়োগ হয়েছে।
এই কারণেই প্রোফাইলে সীমাবদ্ধ নিয়ম শুধু-টানেল অর্থ দিতে পারে না। দুটি বৈশিষ্ট্য ভিন্ন উপাদান ঠিক করে এবং একটি অন্যটির জায়গা নিতে পারে না।
| Flow | What decides it | What a rule can enforce |
|---|---|---|
| VPN client to its endpoint | Routing plus the outer transport | Allow the client process before the tunnel exists |
| Application to an internet host | Interface metric and prefix length | Block the process unless the tunnel interface is up |
| Application to a LAN host | Local subnet route | Allow one destination, not the whole category |
স্পষ্ট ব্লক সংকীর্ণ অনুমতির চেয়ে অগ্রগণ্য
Microsoft-এর ফায়ারওয়াল নিয়ম নির্দেশিকা ডিফল্ট ব্লক অ্যাকশনের প্রতি অনুমোদনের ব্যতিক্রম আর অনুমোদনের সঙ্গে সংঘর্ষকারী স্পষ্ট ব্লকের মধ্যে পার্থক্য করে। স্পষ্ট ব্লক সেই সংঘর্ষে জেতে, এবং আউটবাউন্ড নিয়মও একই অগ্রাধিকার মানে।
তাই সবকিছু ব্লক করার নিয়ম যোগ করে তার উপরে রাখা সংকীর্ণ অনুমোদনের উপর ভরসা করার জনপ্রিয় রেসিপি তার লেখক যা আশা করেন তা করে না। Windows Firewall প্রশাসকের নির্ধারিত নিয়মের ক্রম দিয়ে সংঘর্ষ মেটায় না। ব্লকটি কেবল প্রয়োগ হয়, এবং সংযোগকারী অ্যাপ্লিকেশন টাইমআউট জানায়। ব্যতিক্রমের মতো দেখতে নিয়মটি কখনোই প্রতিযোগিতায় ছিল না।
সমর্থিত রূপ হলো অনুমোদিত অনুমোদন নিয়মসহ ডিফল্ট-ডিনাই নীতি, যেখানে প্রতিটি অনুমোদন একটি প্রোগ্রাম, সেবা বা গন্তব্যকে পর্যালোচনার জন্য যথেষ্ট নির্দিষ্টভাবে নাম দেয়। সেই ডিজাইন অডিটে টিকে, কারণ প্রতিটি ব্যতিক্রম দৃশ্যমান এবং কোনোটিই সৃষ্টির ক্রমের উপর নির্ভর করে না।
পরস্পরবিরোধী দুটি নিয়ম একটি নিয়মের চেয়ে খারাপ, কারণ ফলাফল আচরণ একই সঙ্গে সঠিক এবং ব্যাখ্যাতীত।
আউটবাউন্ড নীতিকে একজন মালিক দিন
একটি সমর্থিত VPN ক্লায়েন্ট ইতিমধ্যেই নিজের ব্লকিং আচরণ ও নিজের এন্ডপয়েন্ট ব্যতিক্রম রাখে। অসমন্বিত ম্যানুয়াল নিয়ম যোগ করলে ওই ক্লায়েন্ট সেটআপের জন্য প্রয়োজনীয় টানেলের বাইরে আটকে যেতে পারে, বা কেউ খেয়াল না করা দ্বিতীয় পথ খোলা রেখে দিতে পারে।
নিয়ম লেখার আগে ঠিক করুন আউটবাউন্ড নীতির মালিক কে: ক্লায়েন্টের নিজের কনফিগারেশন, একটি ব্যবস্থাপিত ফায়ারওয়াল নীতি, নাকি মালিকসহ নথিভুক্ত স্থানীয় ব্যতিক্রম তালিকা। তারপর কিছু সংযুক্ত হওয়া পর্যন্ত পরীক্ষা স্তূপ না করে স্তরগুলো সমন্বয় করুন। নামযুক্ত মালিকই সেই ব্যক্তি, যাকে দুটি স্তর অসঙ্গত হলে জিজ্ঞাসা করা হয়।
কিছু বদলানোর আগে একটি পুনরুদ্ধার চ্যানেল সংরক্ষণ করুন। নিজের ব্যবস্থাপনা পথ থেকে বাইরে আটকে থাকা দূরবর্তী মেশিন আপনার বন্ধ করা নীতি ফাঁকের চেয়ে খারাপ ফল। পুনরুদ্ধার নিয়ম আগে থেকে লিখে রাখলে তা ন্যায্য প্রমাণ করা সহজ, আর কেউ না পছন্দ করা সময়ে পরিবর্তন খারাপ হলে তা খুঁজে পাওয়াও সহজ।
লেবেল পড়ার বদলে চারটি ফলাফল পরীক্ষা করুন
একটি নীতি ততটাই ভালো যতটা সে যে কেসগুলো আলাদা করে; তাই প্রোফাইল লেবেলকে ফলাফল নয়, শুরুর বিন্দু ধরে নিন। চারটি ফলাফল বলে দেয় এটি কাজ করে কি না: অভীষ্ট LAN অনুরোধ সফল হয়, আওতাভুক্ত ইন্টারনেট অনুরোধ সফল হয়, নিষিদ্ধ সরাসরি অনুরোধ ব্যর্থ হয়, আর টানেল-ব্যর্থতার কেসটি চুপচাপ পিছিয়ে না পড়ে ডিজাইন অনুযায়ী আচরণ করে। চারটি ফলাফল নিয়ম পরিবর্তনের পাশে লিখে রাখুন। চারটি নামযুক্ত কেসের পরীক্ষা পরিকল্পনা প্রতিবার চালানোর জন্য যথেষ্ট ছোট এবং জোরে ব্যর্থ হওয়ার জন্য যথেষ্ট নির্দিষ্ট।
Get-NetConnectionProfile | Select-Object Name,NetworkCategory,InterfaceAlias Get-NetFirewallProfile | Select-Object Name,DefaultOutboundAction Get-NetFirewallRule -Direction Outbound -Enabled True | Where-Object Action -eq Block | Select-Object DisplayName,Profile
প্রথম কমান্ড দেখায় প্রতিটি সংযুক্ত নেটওয়ার্ক কীভাবে শ্রেণিবদ্ধ, যা প্রায়ই নিয়ম লেখকের ধরে নেওয়া বিষয় নয়। দ্বিতীয়টি প্রতিটি প্রোফাইলের ডিফল্ট অ্যাকশন দেখায়, আর তৃতীয়টি সক্রিয় আউটবাউন্ড ব্লক তালিকাভুক্ত করে, যার মধ্যে সেগুলোও আছে যা চুপচাপ সংকীর্ণ অনুমোদন বাতিল করবে।
নেটওয়ার্ক পরিবর্তনের পরে চারটি কেস আবার চালান, কারণ মেশিন ভিন্ন নেটওয়ার্কে যোগ দিলে প্রোফাইল পুনঃশ্রেণিবদ্ধ হতে পারে। মিলে যাওয়া প্রোফাইল লেবেল প্রমাণ নয় যে পথটি আপনার অভীষ্ট ছিল।