আমাদের একটি সার্বজনীন সার্ভার রয়েছে যা ফায়ারওয়ালের পিছনে একাধিক ক্লায়েন্টের এসএসএইচ সংযোগ গ্রহণ করে।
এই ক্লায়েন্টগুলির প্রত্যেকে ssh -Rআমাদের সার্বজনীন সার্ভারে পোর্ট 80 এ তাদের ওয়েব সার্ভার থেকে কমান্ডটি ব্যবহার করে একটি বিপরীত এসএসএইচ টানেল তৈরি করে ।
বিপরীত এসএসএইচ টানেলের গন্তব্য পোর্টটি (ক্লায়েন্টের পাশে) 80 এবং উত্স বন্দর (পাবলিক সার্ভারের পাশে) ব্যবহারকারীর উপর নির্ভর করে। আমরা প্রতিটি ব্যবহারকারীর জন্য পোর্ট ঠিকানার মানচিত্র বজায় রাখার পরিকল্পনা করছি are
উদাহরণস্বরূপ, ক্লায়েন্ট এ তাদের ওয়েব সার্ভারটি 80 বন্দর থেকে 8000 পোর্টে সুড়ঙ্গ করবে; 80 থেকে 8001 ক্লায়েন্ট বি; 80 থেকে 8002 ক্লায়েন্ট সি।
Client A: ssh -R 8000:internal.webserver:80 clienta@publicserver
Client B: ssh -R 8001:internal.webserver:80 clientb@publicserver
Client C: ssh -R 8002:internal.webserver:80 clientc@publicserver
মূলত, আমরা যা করার চেষ্টা করছি তা হ'ল প্রতিটি ব্যবহারকারীকে একটি বন্দরের সাথে আবদ্ধ করা এবং তাদের অন্য কোনও বন্দরগুলিতে সুড়ঙ্গ করার অনুমতি না দেওয়া ।
আমরা যদি এসএসএইচের ফরোয়ার্ড টানেলিং বৈশিষ্ট্যটি ব্যবহার করতাম ssh -Lতবে permitopen=host:portকনফিগারেশনটি ব্যবহার করে কোন পোর্টটি টানেল করার অনুমতি দিতে পারতাম । তবে বিপরীত এসএসএইচ টানেলের সমতুল্য নেই।
ব্যবহারকারীর বিপরীত টানেলিং বন্দরগুলিকে সীমাবদ্ধ করার কোনও উপায় আছে কি?