VPN চালু থাকা অবস্থায় দ্বিতীয় ব্যক্তিগত পথে SSH
টানেল ঠিকানায় বাঁধা একটি SSH ডেমন নতুন ব্যক্তিগত ইন্টারফেসে সাড়া দেবে না। পুরনো সেশন বন্ধ করার আগে বাঁধনটি যোগ করুন এবং নতুন সেশন যাচাই করুন।
একটি মেশিন VPN-এর মাধ্যমে অন্যটিতে পৌঁছায়, আর এখন কেউ প্রোভাইডারের ব্যক্তিগত নেটওয়ার্কে একই শেল চায়। রুটটি আছে, ping সফল হয়, তবুও SSH রাজি হয় না। সাধারণ কারণ হলো ডেমনটি নতুন ঠিকানায় কখনও শোনেনি, তাই সংযোগ করার মতো কিছু নেই। এটি ফায়ারওয়াল সমস্যার আগে একটি ঠিকানা-বাঁধনের সমস্যা।
কেন নতুন রুট নতুন শ্রবণকারী তৈরি করে না
শ্রবণকারী সকেট তৈরি করে এমন একটি প্রক্রিয়া, যা সে কোন ঠিকানাগুলো গ্রহণ করবে তা নাম দিয়ে বলে দেয়। রুট কেবল প্যাকেটদের বলে কোথায় যেতে হবে; এটি গন্তব্যে কোনো শ্রবণকারী তৈরি করে না। sshd যখন একটিমাত্র ListenAddress দিয়ে কনফিগার করা থাকে, তখন ইন্টারফেস চালু থাকলেও অন্য যেকোনো লোকাল ঠিকানায় সংযোগ প্রত্যাখ্যাত হয়। একই কথা প্রযোজ্য পোর্টের মালিক একটি সকেট ইউনিটের ক্ষেত্রেও, তাই প্রথম পরীক্ষা সবসময়ই হলো আসলে কে শুনছে।
ইন্টারফেসের নাম নয়, গন্তব্য ঠিকানা দিয়ে দুটি পথ তুলনা করুন। ক্লায়েন্ট একটি ঠিকানায় সংযোগ করে, আর কোনো ফায়ারওয়াল নিয়ম গুরুত্বপূর্ণ হওয়ার আগেই সেই ঠিকানাটি বাঁধা থাকতে হবে।
ঠিকানা ও শ্রবণকারীদের তালিকা করুন
কিছু সম্পাদনার আগে হোস্টের ঠিকানাগুলো এবং এখন যে সকেটগুলো আছে তা লিখে রাখুন।
ip -br addr
ss -ltnp | grep ':22'ঠিকানার তালিকা দেখায় কোন ব্যক্তিগত ঠিকানাটি আসল এবং কোন ইন্টারফেসে, আর সকেট তালিকা দেখায় সেখানে কিছু বাঁধা আছে কি না। 0.0.0.0:22-এ থাকা শ্রবণকারী ইতিমধ্যেই প্রতিটি ঠিকানা গ্রহণ করে, তাই নতুন বাঁধন কিছুই যোগ করে না। একটি নির্দিষ্ট ঠিকানায় থাকা শ্রবণকারী প্রত্যাখ্যানের কারণ সঙ্গে সঙ্গে ব্যাখ্যা করে। পোর্টটি ডেমনের নয় বরং সকেট ইউনিটের হলে, ডেমন কনফিগারেশনই পুরো গল্প নয়।
বাঁধনটি যোগ করুন এবং পুরনোটি রাখুন
OpenSSH একাধিক ListenAddress এন্ট্রি গ্রহণ করে, তাই ব্যক্তিগত পথ যোগ করার সময় VPN পথটি থাকতে পারে। পুনরায় লোড করার আগে ফাইলটি পরীক্ষা করুন।
sshd -t
systemctl reload sshdব্যর্থ কনফিগারেশন পরীক্ষা চলমান ডেমনকে অক্ষত রাখে, আর আপনি যে পথ সম্পাদনা করছেন সেটি দিয়েই সংযুক্ত থাকাকালে ঠিক এটাই চান। বিদ্যমান এন্ট্রিটি রাখুন, নতুন লোকাল ঠিকানা যোগ করুন এবং নিশ্চিত করুন যে বর্তমান সেশন না হারিয়ে পরিষেবা পুনরায় লোড হয়। সকেট-সক্রিয় ইনস্টলেশনে ঠিকানাটি বরং সকেট ইউনিটে যোগ করুন এবং সেই ইউনিটটি পুনরায় লোড করুন। তারপর শ্রবণকারীদের তালিকা আবার পড়ুন, কারণ যে বাঁধন কখনও দেখা যায়নি তার মানে ভুল উপাদান সম্পাদনা করা হয়েছে।
পুরনো সেশন বন্ধ করার আগে নতুন সেশন যাচাই করুন
মূল সেশন খোলা থাকা অবস্থাতেই নতুন ঠিকানায় সংযোগ করুন এবং কোন ঠিকানা ও চাবি ব্যবহৃত হয়েছে তা দেখতে বিস্তারিত আউটপুট ব্যবহার করুন। পরীক্ষাটি দুইবার সফল না হওয়া পর্যন্ত মূল সেশন খোলা রাখুন।
ssh -v [email protected]গন্তব্য ঠিকানা এবং পরিবেশিত হোস্ট চাবির জন্য ডিবাগ লাইনগুলো পড়ুন। নেটওয়ার্ককে ব্যক্তিগত বলা হয়েছে বলে অপরিচিত চাবি গ্রহণ না করে, আপনার আগে থেকে বিশ্বস্ত কোনো মানের সঙ্গে হোস্ট চাবির ফিঙ্গারপ্রিন্ট মিলিয়ে নিন। নতুন গন্তব্যের নিজস্ব known_hosts এন্ট্রি দরকার, আর সেটাই প্রত্যাশিত। ব্যক্তিগত পথ কাজ করার পরেই কেবল পুরনো ব্যবস্থাপনা সেশন বন্ধ করা উচিত।
SSH পরিবহনকে সুরক্ষা দেয়, কিন্তু এটি দুটি নেটওয়ার্ককে বিচ্ছিন্নভাবে সমতুল্য করে না। ব্যক্তিগত ট্রানজিটের আস্থা তথ্যের সঙ্গে মেলে কি না তা তার উপর নির্ভর করার আগে ঠিক করুন।