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

লগইনের সময় গেটওয়ে কী দাবি করে তা নিশ্চিত করুন

কমান্ড লেখার আগে ডিপ্লয়মেন্ট যে ক্রেডেনশিয়াল পথ চাপিয়ে দেয় তা লিখে রাখুন। শুধু সার্টিফিকেট, পাসওয়ার্ড ও টোকেন, এবং SAML প্রদানকারীর মাধ্যমে ব্রাউজার রাউন্ড ট্রিপ—এরা একে অপরের থেকে আলাদা আচরণ করে, আর ব্যাকগ্রাউন্ড মোড এর কোনোটিই বাদ দিতে পারে না। অপশনটি স্টার্টআপের পরে কী ঘটে তা বদলায়, কখনোই তার সময়ে কী ঘটে তা নয়।

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

প্রথম সেশনটি ফোরগ্রাউন্ডে চালান এবং আউটপুট পড়ুন

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

তারপর একই কমান্ড ব্যাকগ্রাউন্ড মোড ও একটি PID ফাইল যোগ করে পুনরাবৃত্তি করুন, যেমন openconnect --background --pid-file /run/openconnect.pid vpn.example.net, এবং আপনার গেটওয়ের প্রয়োজনীয় প্রোটোকল ও প্রমাণীকরণ অপশন একই লাইনে রাখুন। OpenConnect ম্যানুয়াল এই অপশনটিকে স্টার্টআপ শেষে ব্যাকগ্রাউন্ডে চলতে থাকা হিসেবে বর্ণনা করে, আর ঠিক সেই কারণেই ইন্টারঅ্যাকটিভ পর্বটি আগে শেষ হতে হবে।

চলমান প্রক্রিয়াটিকে খুঁজে পাওয়া ও থামানো সম্ভব করুন

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

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

সুপারভাইজারের অধীনে ব্যাকগ্রাউন্ড মোড স্তূপ করবেন না

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

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

সেশন কুকিকে ক্রেডেনশিয়াল হিসেবে গণ্য করুন

OpenConnect --authenticate-এর মাধ্যমে আলাদা প্রমাণীকরণ পর্বের নথিভুক্ত করে, আর ফলিত উপাদান --cookie-on-stdin দিয়ে ফেরত দেওয়া যায়। এই জোড়াটি ইন্টিগ্রেশন কাজের জন্য, এবং এটি যা তৈরি করে তা ততটা সংবেদনশীল যতটা তৈরি করা পাসওয়ার্ড।

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

টার্মিনাল বন্ধ করার আগে তালিকাটি মিটিয়ে নিন

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

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

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