আপনার VPN নিয়ম ডাটাবেসে ঢোকা নিষিদ্ধ করে, আর টিকিটটি ফায়ারওয়াল ত্রুটি হিসেবে বন্ধ হয়ে যায়, অথচ একই ব্যবহারকারী একটি প্রকাশিত ডেস্কটপ খুলে ওই ডাটাবেসে কোনো ঝামেলা ছাড়াই কোয়েরি চালায়। দুটি বাক্যই সত্য। ডেস্কটপটি আলাদা একটি ক্লায়েন্ট, যার নিজের ঠিকানা এমন সেগমেন্টে আছে যাকে নিয়মগুলো আগেই বিশ্বাস করে, আর সামনে সংযোগ করলে তার নিজের পরিচয়ও আছে। বিরোধপূর্ণ মনে হওয়া নিয়মটি সাধারণত দ্বিতীয় একটি অনুরোধ, যা কেউ পর্যালোচনায় রাখেনি।

দ্বিতীয় অনুরোধের নিজস্ব ক্লায়েন্ট ঠিকানা আছে

সেশনের ভিতরের কোনো অ্যাপ্লিকেশন ডাটাবেসে সংযোগ খুললে TCP হ্যান্ডশেক শুরু হয় সেশন হোস্টে। এর উৎস ঠিকানা ওই হোস্টের নেটওয়ার্কের, তাই পথের প্রতিটি রাউটার ও ডাটাবেস ফায়ারওয়াল আপনার ল্যাপটপ যে টানেল পুল থেকে এসেছে তা নয়, ডেস্কটপের সেগমেন্ট মূল্যায়ন করে। ওই ফ্লোতে VPN ঠিকানা কখনো আসে না। এজন্যই উৎসভিত্তিক নিষেধ নিয়ম একইসাথে সঠিক ও অপ্রাসঙ্গিক হতে পারে।

উৎসটি ল্যাপটপ থেকে নয়, সেশনের ভিতর থেকে পড়ুন, তারপর একই জায়গা থেকে সামনের পথ পরীক্ষা করুন। দুটি উত্তর কোন হোস্ট অনুরোধ করছে তা নিয়ে একমত হওয়া উচিত।

whoami
ipconfig /all
Test-NetConnection db01.corp.internal -Port 5432

সেশন যা জানায় তা একই সময়ের জন্য ডাটাবেস যে ঠিকানা লিখেছে তার সাথে মেলান। সার্ভার লগ টানেল পুলের বদলে ডেস্কটপের সাবনেট দেখালে প্রশ্নটি আর নিয়ম চালু হলো কি না তা থাকে না, প্রশ্ন হয় কোন হোস্ট অনুরোধটি করেছে। এটি ভিন্ন মালিকের ভিন্ন তদন্ত।

ঠিকানার সাথে পরিচয়ও বদলায়

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

অনুমোদন দুইবার ঘটে, আর দ্বিতীয় সিদ্ধান্ত নেওয়া হয় ভিন্ন ইনপুট দিয়ে। প্রথমটি নির্দিষ্ট ব্যবহারকারীর জন্য ডেস্কটপ সাইন-ইন দেয়, দ্বিতীয়টি দেয় সেই ব্যবহারকারীর টোকেন বা অ্যাপ্লিকেশনের অ্যাকাউন্ট রিসোর্সে যা করতে পারে। ডেস্কটপ খুলতে পারা হেল্পডেস্ক দল স্বয়ংক্রিয়ভাবে গ্রাহক টেবিল পড়তে পারা দল নয়।

অ্যাক্সেস নোট লেখার আগে টোকেন ও ডেলিগেশন পথটি দেখুন। দুটোই সেশনের ভিতর থেকে দৃশ্যমান, আর সেটিই একমাত্র জায়গা যেখানে উত্তরটি অনুমান নয়।

whoami /groups
klist
query session

অ্যাপ্লিকেশন সার্ভিস অ্যাকাউন্ট ব্যবহার করলে তার অধিকারই সামনে গুরুত্বপূর্ণ। ওই ক্রেডেনশিয়াল ঘোরানো অ্যাক্সেস পর্যালোচনার অংশ, পরিচালনাগত পরবর্তী ভাবনার নয়।

সরাসরি পথ কেন এখনো সঠিকভাবেই বন্ধ

গন্তব্যে অন্য পথে পৌঁছানো যায় বলে নিষেধ নিয়মটি ভুল নয়। সেগমেন্টেশন প্রতিটি উৎস অনুযায়ী মূল্যায়িত হয়, আর ডেস্কটপ বসে আছে এমন সেগমেন্টে যাকে ডাটাবেসের পথ হিসেবে কেউ ভাবার অনেক আগেই অনুমতি দেওয়া হয়েছিল। কিছুই নীতিটি এড়ায়নি। নীতিটি কেবল দুটি ভিন্ন ফলাফলসহ দুটি ভিন্ন উৎস বর্ণনা করে।

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

এটি স্প্রেডশিট থেকে নয়, একটি পরীক্ষামূলক সেশনের ভিতর থেকে গণনা করুন। কয়েকটি কমান্ডই অধিকাংশ পৃষ্ঠ ঢেকে দেয়।

Get-NetTCPConnection -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess
net use
Get-ChildItem Env: | Where-Object Name -match 'PROXY|DATABASE|API'

সীমাটি সচেতনভাবে বাছুন

তিনটি আকৃতি ভিন্ন কাজে মানায়, আর বাছাই কাজটিকে অনুসরণ করা উচিত, হঠাৎ বিদ্যমান যন্ত্রটিকে নয়। প্রকাশিত অ্যাপ্লিকেশন নিজের অনুমতিসহ একটি প্রোগ্রাম দেখায়, পূর্ণ ডেস্কটপ ব্যবহারকারীর প্রোফাইল যা করতে পারে সব দেখায়, আর উৎস-সীমাবদ্ধ সংকীর্ণ ডাটাবেস অ্যাকাউন্ট ডেস্কটপ ছাড়াই একটি রিসোর্স দেখায়। কাজটি এখনো সম্পন্ন করে এমন সংকীর্ণতম আকৃতিই নথিভুক্ত করার যোগ্য। এর চেয়ে প্রশস্ত কিছুর পাশে কারণ লেখা থাকা দরকার।

একটি প্রতিবেদনের জন্য প্রকাশিত অ্যাপ্লিকেশন বা সীমিত অ্যাকাউন্ট সাধারণ ডেস্কটপের চেয়ে ছোট অনুমতি। যে রক্ষণাবেক্ষণে সত্যিই কয়েকটি যন্ত্র লাগে সেখানে ডেস্কটপ ঠিক হতে পারে, কিন্তু তখন অনুমোদনটি একটি অ্যাপ্লিকেশন নয়, পুরো হোস্ট বর্ণনা করে। রিসোর্স মালিককে জিজ্ঞাসা করুন তারা কোনটিতে সম্মত হচ্ছেন।

তথ্য চলাচল আলাদা একটি সুইচ। ক্লিপবোর্ড, ড্রাইভ রিডাইরেকশন ও ডাউনলোড কোম্পানির তথ্য ক্লায়েন্টে নিতে পারে, আর দূর থেকে অ্যাপ্লিকেশন চালানো নিজে থেকে তথ্য দূরে রাখে না।

দুটি অনুমোদন ও অপসারণের পথ দুটোই যাচাই করুন

রেকর্ডে দুটি অনুমোদন থাকা উচিত: ডেস্কটপে পৌঁছে তা খোলার অধিকার, এবং তার ভিতর থেকে রিসোর্স ব্যবহারের অধিকার। প্রতিটির জন্য একজন মালিকের নাম দিন এবং দ্বিতীয়টি রিসোর্স পর্যালোচনা করেন এমন সবার জন্য দৃশ্যমান রাখুন। নিরীক্ষক ওই দ্বিতীয় এন্ট্রি নিয়েই জিজ্ঞাসা করবেন, কারণ এটি প্রবেশ নয়, নাগাল বর্ণনা করে। পরিবর্তন অনুমোদনের আগেই দুটোই লিখুন, প্রথম ঘটনার পরে নয়।

তারপর অপসারণ পরীক্ষা করুন, কারণ বিচ্ছিন্ন সেশন তার কারণের চেয়ে বেশিদিন টিকে থাকতে পারে। সেশন টেবিলই এখনো কী চলছে তা দেখার দ্রুততম জায়গা।

query session
query user
qwinsta /server:rdsh01.corp.internal

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

সম্পর্কিত নিবন্ধ