NetworkManager-এ OpenConnect-এর TOTP অনুরোধ অনুপস্থিত: চারটি পরীক্ষা
গেটওয়ে একবার ব্যবহারের কোড চায়, কিন্তু NetworkManager ডায়ালগে তার জন্য কোনো ঘর নেই। সিক্রেট সম্পাদনার আগে প্রমাণীকরণ কোথায় থেমেছে তা যাচাই করুন।
গেটওয়ে পাসওয়ার্ড গ্রহণ করে, কোড চায়, আর ডায়ালগে তার জন্য কোনো ঘর নেই। ভুল কিছু টাইপ হয়নি: NetworkManager প্লাগইন ছয় অঙ্কের মানটি না চেয়েই সিক্রেট বিনিময় সম্পূর্ণ করেছে। নিচের চারটি পরীক্ষা ক্রমানুসারে করুন, কারণ তাদের মধ্যে একটিই ক্লায়েন্ট বদলায়। বাকি তালিকা গেটওয়ে, অ্যাকাউন্ট ও প্লাগইন বিল্ডকে বাদ দেয়।
পরীক্ষা এক: প্রমাণীকরণ কোথায় থেমেছে পড়ুন
ভুল পাসওয়ার্ড সঙ্গে সঙ্গে ব্যর্থ হয়। অনুপস্থিত দ্বিতীয় ফ্যাক্টর ক্রেডেনশিয়াল ধাপের পরে ব্যর্থ হয়, সাধারণত পুনরাবৃত্ত অনুরোধ বা গেটওয়ের দিকে সময়সীমা শেষ হয়ে। সময় ও গেটওয়ে লগ বলে দেয় কোন রাউন্ড উত্তরহীন রয়ে গেছে।
প্রোফাইল স্পর্শ করার আগে সংযোগ লগ পড়ুন। গেটওয়ে যদি অসম্পূর্ণ প্রমাণীকরণ বা সময়োত্তীর্ণ চ্যালেঞ্জ জানায়, তবে ক্লায়েন্ট কোডটি কখনো পাঠায়নি। যদি অবৈধ ক্রেডেনশিয়াল জানায়, তবে সমস্যা পাসওয়ার্ডে এবং কোনো TOTP সেটিং তা ঠিক করবে না।
গেটওয়ে যে সঠিক অনুরোধ-ক্রম আশা করে তা লিখে নিন: ব্যবহারকারীর নাম, পাসওয়ার্ড, তারপর কোড, অথবা ব্যবহারকারীর নাম, কোড, তারপর পাসওয়ার্ড। কিছু গেটওয়ে রাউন্ডের ক্রম বদলায়, আর যে ক্লায়েন্ট কেবল প্রথম ক্রম জানে সে দ্বিতীয়টিতে আটকে যাবে।
পরীক্ষা দুই: যে ক্লায়েন্ট চ্যালেঞ্জের মালিক তাকেই ব্যবহার করুন
OpenConnect নিজেই চ্যালেঞ্জ রাউন্ডসহ পুরো কথোপকথন বাস্তবায়ন করে। এটি সরাসরি চালানোই অ্যাকাউন্ট ও গেটওয়ে কাজ করছে কি না নিশ্চিত করার সবচেয়ে অনুমানযোগ্য উপায়:
sudo openconnect --protocol=anyconnect --useragent=AnyConnect vpn.example.netক্লায়েন্ট গেটওয়ে যে ক্রমে চায় সেই ক্রমেই অনুরোধ করে। ইউজার এজেন্ট গুরুত্বপূর্ণ, কারণ কিছু গেটওয়ে পরিচিত ক্লায়েন্টের জন্য লগইন প্রবাহ সাজায়, আর সাধারণ স্ট্রিং ছোট প্রবাহ তৈরি করতে পারে যা কখনো কোড চায় না। কোনো ব্যাকগ্রাউন্ড সার্ভিস সাজানোর আগে এটি একবার ফোরগ্রাউন্ডে চালান।
কমান্ড লাইন সঠিকভাবে অনুরোধ করলে অ্যাকাউন্ট, গেটওয়ে ও দ্বিতীয় ফ্যাক্টর ঠিক আছে। বাকি সমস্যা প্লাগইনের ডায়ালগ, প্রমাণীকরণ সার্ভিস নয়। এটি সার্ভার স্পর্শ না করেই ত্রুটিপূর্ণ উপাদানটিকে আলাদা করে। কমান্ডের আউটপুট ঘটনার রেকর্ডের সঙ্গে রাখুন।
কমান্ড লাইনও অনুরোধ বাদ দিলে থামুন এবং গেটওয়ে কনফিগারেশন তার মালিকের সঙ্গে যাচাই করুন। সার্ভার যে চ্যালেঞ্জ কখনো পাঠায় না, কোনো ডেস্কটপ ক্লায়েন্ট তার উত্তর দিতে পারে না।
পরীক্ষা তিন: আপনার প্লাগইন TOTP মোড দেয় কি না দেখুন
কিছু NetworkManager OpenConnect বিল্ড সংযোগের Identity ট্যাবে টোকেন মোড ও ইউজার এজেন্ট ঘর দেয়। ইউজার এজেন্ট গেটওয়ের প্রত্যাশিত মানে সেট করুন, ম্যানুয়াল TOTP এন্ট্রি বেছে নিন এবং সংযোগ সংরক্ষণ করুন।
এই ঘরগুলো আছে কি না তা নির্ভর করে প্লাগইন সংস্করণ এবং ডেস্কটপ কোন সংযোগ সম্পাদক ব্যবহার করে তার উপর। স্বতন্ত্র সম্পাদক GNOME প্যানেলের লুকানো অপশন দেখাতে পারে, বা উল্টোটাও। লুকানো সেটিং খোঁজার আগে ইনস্টল করা প্যাকেজের সংস্করণ দেখুন।
টোকেন মোড থাকা সত্ত্বেও অনুরোধ না এলে বিল্ডে প্লাগইন ও সাধারণ সিক্রেট ডায়ালগের মধ্যে চ্যালেঞ্জ হ্যান্ডঅফ নেই। পাসওয়ার্ড আবার টাইপ করা, একই প্যাকেজ পুনরায় ইনস্টল করা বা কীরিং পরিষ্কার করা এমন ঘর তৈরি করবে না যা বিল্ড বাস্তবায়ন করে না।
পরীক্ষা চার: তৈরি কোডকে একটি সমঝোতা হিসেবে দেখুন
একটি স্ক্রিপ্ট বর্তমান কোডের জন্য oathtool ডাকতে পারে এবং ব্যবহারকারীর নাম, পাসওয়ার্ড ও কোড nmcli connection up --ask কমান্ডে পাঠাতে পারে। ক্রমটি কাজ করে, কিন্তু ভাগ করা সিক্রেট শেষে এমন জায়গায় সংরক্ষিত হয় যা স্ক্রিপ্ট খুলতে পারে এমন যে কেউ পড়তে পারে, এবং সেই পাঠক চিরকাল কোড তৈরি করতে পারে। এটি ক্রেডেনশিয়াল পৃষ্ঠের স্থায়ী সম্প্রসারণ, ক্লায়েন্টের সমাধান নয়।
যে কেউ এটি বেছে নেবে তাকে সিক্রেট ফাইল root-এ সীমাবদ্ধ করতে হবে, তৈরি মান শেল ইতিহাসের বাইরে রাখতে হবে এবং স্ক্রিপ্টকে ক্রেডেনশিয়াল উপাদান হিসেবে গণ্য করতে হবে। যে র্যাপার কোড টার্মিনালে প্রতিধ্বনি করে সে দ্বিতীয় ফ্যাক্টর নষ্ট করে। প্রথমে অস্থায়ী অ্যাকাউন্ট দিয়ে র্যাপার পরীক্ষা করুন।
স্ক্রিপ্টকে গেটওয়ের অনুরোধ-ক্রমও অনুসরণ করতে হবে। সার্ভার যদি পাসওয়ার্ডের আগে কোড চায়, তবে নির্দিষ্ট ইনপুট ক্রম ভুল মান ভুল অনুরোধে পাঠায় এবং একই অসম্পূর্ণ প্রমাণীকরণ ঘটায়। লগইন কাজে যুক্ত করার আগে পরীক্ষামূলক অ্যাকাউন্টে এটি অনুশীলন করুন।
একই গেটওয়ে ও অ্যাকাউন্ট নিশ্চিত করুন
প্রতিটি বিকল্প সমাধান একই গেটওয়ে, একই অ্যাকাউন্ট ও একই টানেল গ্রুপের বিরুদ্ধে পরীক্ষা করুন। যে গেটওয়ে ডিভাইস সার্টিফিকেটও চায় TOTP-এর সঙ্গে সম্পর্কহীন কারণে কমান্ড-লাইন ক্লায়েন্ট প্রত্যাখ্যান করতে পারে, আর অনুরোধ-ক্রম আপনার অনুশীলনের চেয়ে ভিন্ন হতে পারে।
যে ক্লায়েন্ট, তার সংস্করণ, ইউজার এজেন্ট ও অনুরোধ-ক্রম কাজ করেছে তা লিখে রাখুন। সেই রেকর্ড পরের ব্যক্তিকে বলে দেয় সমস্যাটি প্লাগইন বিল্ডে, গেটওয়ে প্রবাহে নাকি অ্যাকাউন্ট নীতিতে, পাসওয়ার্ড রিসেটের আরেক রাউন্ড ছাড়াই।
সম্পূর্ণ লগআউটের পরে একবার পুনরায় সংযোগ দিয়ে শেষ করুন। ক্যাশে করা সিক্রেট ভাঙা প্রবাহকে পরের সেশনের আগ পর্যন্ত ঠিক দেখাতে পারে, আর দ্বিতীয় সংযোগেই অনুপস্থিত অনুরোধ সাধারণত ফিরে আসে।