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

দুই পিয়ার, একটি কী আর প্রতি-ক্লায়েন্ট কোনো অবস্থা নেই: এই আকৃতিই মোডের পুরো গল্প।

স্ট্যাটিক-কী মোড কীসের জন্য

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

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

এই কারণেই দুই-পিয়ার সীমাটি কাঠামোগত, বদলানোর মতো কোনো সেটিং নয়।

কেন client-to-client অনুপস্থিত টুকরো নয়

client-to-client নিয়ন্ত্রণ করে সংযুক্ত ক্লায়েন্টরা সার্ভারের মাধ্যমে ট্রাফিক বিনিময় করতে পারে কি না। এটি ক্লায়েন্টকে প্রবেশ করায় না, পরিচয় দেয় না, কনফিগার না করা সার্ভার মোড তৈরি করে না, এবং স্ট্যাটিক-কী কনফিগারেশনে তার শাসন করার মতো কোনো ক্লায়েন্ট তালিকা থাকে না।

অন্য সাধারণ বিভ্রান্তিটি tls-crypt বা tls-auth উপাদান নিয়ে। একটি TLS সার্ভার সেই কীগুলোর একটি সব ক্লায়েন্টের মধ্যে ভাগ করতে পারে, কারণ এটি প্রতিটি ক্লায়েন্ট কে তা প্রমাণ করার বদলে নিয়ন্ত্রণ চ্যানেল রক্ষা করে। TLS মোডে ভাগ করা নিয়ন্ত্রণ-চ্যানেল কী ভাগ করা স্ট্যাটিক ডেটা কী থেকে ভিন্ন বস্তু, যদিও দুটোই একই রকম দেখতে ফাইল হিসেবে আসে।

মোডের মধ্যে বাছাই দুটি প্রশ্নে এসে দাঁড়ায়। একাধিক ডিভাইসকে কি স্বাধীনভাবে সংযুক্ত হতে হবে, এবং ডিপ্লয়মেন্টের কি প্রতি-ডিভাইস বাতিলকরণ দরকার? দুইটিতেই না হলে স্ট্যাটিক-কী মোড টিকে থাকে; যেকোনো একটিতে হ্যাঁ হলে তা TLS-এর দিকে ইশারা করে। তৃতীয় কোনো বিকল্প নেই যেখানে নিজের পরিচয় ছাড়া দ্বিতীয় ক্লায়েন্টকে প্রবেশ করানো হয়।

বহু-ক্লায়েন্ট সার্ভার তৈরি

বহু-ক্লায়েন্ট সার্ভারের জন্য TLS মোড, সার্ভার-পক্ষের সার্টিফিকেট এবং প্রতি-ক্লায়েন্ট পরিচয় দরকার। সার্ভার হেল্পার ঠিকানা পুল ও বহু-ক্লায়েন্ট মোড তৈরি করে, কিন্তু এটি TLS কনফিগারেশন, বিশ্বাসের নোঙ্গর বা প্রবেশকে অর্থবহ করা ক্লায়েন্ট সার্টিফিকেট সরবরাহ করে না।

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

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

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

ক্লায়েন্টরা সত্যিই স্বাধীন কি না যাচাই

দুটি ক্লায়েন্ট সংযুক্ত করুন এবং নিশ্চিত করুন যে তারা ভিন্ন ঠিকানা পায় ও সার্ভারের লগে ভিন্ন পরিচয়ে দেখা যায়। তারপর একটি বাতিল করুন এবং নিশ্চিত করুন অন্যটি কাজ করতে থাকে, এটিই বাস্তব পরীক্ষা যে পরিচয় ভাগ হয়নি।

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

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

লগে যদি প্রতিটি ডিভাইসের জন্য একই সাধারণ নাম দেখায়, সমস্যা মোডে নয়। সমস্যা নথিভুক্তির প্রক্রিয়ায়।

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