কম্পিউটার টিউটোরিয়াল

রিভার্স SSH টানেল ব্যবহার করে আপনার PC-এ এক্সটার্নাল কানেকশন অনুমতি দেওয়ার পদ্ধতি

আপনি যদি খুশিকিস্মত হন যে আপনার ইন্টারনেট সার্ভিস প্রোভাইডার (ISP) আপনাকে একটি ডেডিকেটেড IP ঠিকানা দেয়, তবে আপনি একটি হোম সার্ভার সেট আপ করতে পারেন এবং আপনার রাউটারে কয়েকটি পোর্ট ফরওয়ার্ডিং রুল যোগ করে এটি ইন্টারনেটে উপলব্ধ করতে পারেন। কিন্তু আপনার ISP আপনাকে সেই IP আপনার প্রতিবেশীদের সাথে শেয়ার করতে বাধ্য করলে, পোর্ট ফরওয়ার্ডিং সাহায্য করবে না। অন্যান্য প্রোভাইডার সিম্পলি ফায়ারওয়ার রুলের মাধ্যমে ইনকামিং সংযোগ ব্লক করে।

আপনি একটি ভার্চুয়াল প্রাইভেট সার্ভারের সাহায্যে এই সব সীমাবদ্ধতা বাইপাস করতে পারেন। যেকোনো কিছুই কাজ করবে, এমনকি যদি এর ৫১২MB-এর কম RAM থাকে, কারণ এটি শুধু নেটওয়ার্ক ট্রাফিক রিডাইরেক্ট করতে হবে। এটি CPU এবং RAM-এ খুব হালকা। সার্ভারটি ইনকামিং সংযোগ গ্রহণ করবে এবং একটি "রিভার্স SSH টানেল" নামক কিছুর মাধ্যমে সেগুলো আপনার কম্পিউটারে রিডাইরেক্ট করবে। এইভাবে আপনি যেকোনো ধরনের হোম সার্ভার সেট আপ করতে পারেন, খুব কম মাসিক খরচে।

কল্পনা করুন আপনি একটি NextCloud সার্ভার তৈরি করেছেন ফাইল আপলোড/সিঙ্ক্রোনাইজ করার জন্য। আপনি সেই ফাইলগুলোর গোপনীয়তা পাবেন কারণ সেগুলো আপনার হোম সার্ভারে আছে, এবং তারপর আপনি একটি ৬TB হার্ড ড্রাইভ কিনতে পারেন আপনার প্রয়োজনীয় সব স্পেস পেতে। আপনাকে শুধু মাসিক বিল এবং ভার্চুয়াল প্রাইভেট সার্ভারের জন্য মাসিক $৫-এর কম খরচ করতে হবে। ৬TB স্পেস 가진 সার্ভারের মাসিক বিলের চেয়ে এটা অনেক সস্তা।

দ্রষ্টব্য: এটি শুধু TCP নেটওয়ার্ক ট্রাফিক রিডাইরেক্ট করার জন্য কাজ করে। TCP ব্যবহার করা হয় জিনিসগুলোর জন্য যেমন ওয়েব সার্ভার (পোর্ট 80/tcp)। UDP ব্যবহার করা হয় কিছু (সব নয়) গেম সার্ভারের জন্য, উদাহরণস্বরূপ Counter Strike (পোর্ট 27015/UDP)। UDP টানেলিং সম্ভব, কিন্তু কিছু "হ্যাক"-এর সাথে, যা ভবিষ্যতের একটি টিউটোরিয়ালের বিষয় হতে পারে।

Windows 10-এ এখন বিল্ট-ইন SSH ক্লায়েন্ট আছে

SSH সংযোগ শুরু করার জন্য PuTTY ব্যবহার করার প্রয়োজন নেই। আসলে, এই টিউটোরিয়ালে আপনি এই বিল্ট-ইন ক্লায়েন্ট ব্যবহার করবেন টানেল সেট আপ করার জন্য। Windows 10-এর OpenSSH ক্লায়েন্ট সম্পর্কে টিউটোরিয়াল পড়ুন আপনি যদি ইতিমধ্যে এর সাথে পরিচিত না হন।

ভার্চুয়াল প্রাইভেট সার্ভার প্রস্তুত করুন সংযোগ টানেল করার জন্য

আপনার পছন্দের প্রোভাইডার মতো DigitalOcean, Linode, Vultr, বা যেকোনো অন্য সহ একটি ভার্চুয়াল প্রাইভেট সার্ভার তৈরি করুন। সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো আপনার যতটা সম্ভব কাছাকাছি একটি সার্ভার লোকেশন বেছে নেওয়া নেটওয়ার্ক লেটেন্সি কমাতে। সার্ভারটি এমনভাবে সেট আপ করার চেষ্টা করুন যাতে আপনি সরাসরি রুট অ্যাকাউন্টে লগ ইন করতে পারেন, ভালো হলো SSH কী দিয়ে, কারণ এটি আরও সিকিউর। এটি আবশ্যক যদি আপনি চান সার্ভারটি ১০২৪-এর নিচে পোর্টে আসা সংযোগ শোনে, যাকে প্রিভিলেজড পোর্ট বলা হয়।

কমান্ড প্রম্পট খুলুন (অথবা আপনি যদি লিনাক্সে হন তবে একটি টার্মিনাল), এবং SSH দিয়ে সার্ভারে লগ ইন করুন।

OpenSSH সার্ভার সেটিংস এডিট করুন:

nano /etc/ssh/sshd_config

আপনি যদি রুট হিসেবে লগ ইন না করে থাকেন বরং একটি রেগুলার ইউজার হিসেবে, তবে আপনাকে এই কমান্ড ব্যবহার করতে হবে, অন্যথায় আপনি ফাইলটি সংরক্ষণ করতে পারবেন না:

sudo nano /etc/ssh/sshd_config

নিচে স্ক্রল করুন যতক্ষণ না "GatewayPorts" নামক একটি ভেরিয়েবল পান। লাইনটি এভাবে দেখতে পারে: #GatewayPorts no। আগের "#"-টি মুছুন (আনকমেন্ট করতে) এবং লাইনটি GatewayPorts yes-এ পরিবর্তন করুন।

রিভার্স SSH টানেল ব্যবহার করে আপনার PC-এ এক্সটার্নাল কানেকশন অনুমতি দেওয়ার পদ্ধতি

আপনি যদি লাইনটি না পান, তবে এন্ডে স্ক্রল করুন এবং আপনি নিজে লাইনটি যোগ করুন:

GatewayPorts yes

Ctrl + X চাপুন, তারপর y চাপুন, এবংสุดে Enter চাপুন ফাইল সংরক্ষণ করতে।

SSH ডিমন রিলোড করুন যাতে এটি নতুন সেটিং পিক আপ করে।

systemctl reload ssh.service

SSH সেশন থেকে এক্সিট করুন।

exit

রিভার্স SSH টানেল সেট আপ করার পদ্ধতি

কমান্ড প্যারামিটারগুলো লিনাক্স, উইন্ডোজ, এবং এমনকি BSD অপারেটিং সিস্টেমে একই। সাধারণ সিনট্যাক্স হলো:

ssh -R remote_port:host:localport your_username@IP-of-server
  • remote_port সার্ভারকে বলে সেটি সেই পোর্টে আসা সংযোগ রিডাইরেক্ট করতে।
  • host সার্ভারকে বলে সংযোগ কোন IP ঠিকানায় রিডাইরেক্ট করা উচিত। 127.0.0.1 এখানে ব্যবহার করা হবে আপনার নিজস্ব কম্পিউটারে রিডাইরেক্ট করতে।
  • localport নির্দেশ করে ডেটা প্যাকেট কোন পোর্টে রিডাইরেক্ট করা উচিত। এখানে, আপনার লোকাল কম্পিউটারে ইনস্টল করা আপনার অ্যাপ্লিকেশন যে পোর্ট নম্বরে শুনে সেটি দিন।

উদাহরণস্বরূপ, পোর্ট ৮০-এ আসা সব সংযোগ (সার্ভারে) ফরওয়ার্ড করতে এবং সেগুলো আপনার লোকাল কম্পিউটারের পোর্ট ৮০৮০-এ পাঠাতে, কমান্ডটি হবে:

ssh -R 80:127.0.0.1:8080 root@203.0.113.1

এটি ধরে নেয় যে আপনার কাছে একটি ওয়েব সার্ভার আছে, যেমন Apache বা Nginx, যা আপনার লোকাল মেশিনে পোর্ট ৮০৮০-এ শুনছে। কিন্তু যদি Apache/Nginx ডিফল্ট পোর্ট ৮০-এ শুনছে, তবে আগের কমান্ডে একই পোর্ট দুবার ব্যবহার করা কোনো সমস্যা নেই (কারণ সেগুলো ভিন্ন সার্ভারের পোর্ট ৮০-কে রেফার করে)।

ssh -R 80:127.0.0.1:80 root@203.0.113.1

এই মুহূর্তে, কেউ যদি আপনার ভার্চুয়াল প্রাইভেট সার্ভারের IP ঠিকানা ব্রাউজারের অ্যাড্রেস বারে লিখে, তাদের সংযোগ রিডাইরেক্ট হবে এবং আপনার লোকাল কম্পিউটার দ্বারা সার্ভ হবে।

রিভার্স SSH টানেল ব্যবহার করে আপনার PC-এ এক্সটার্নাল কানেকশন অনুমতি দেওয়ার পদ্ধতি

উপরের ছবিতে, Chrome-এর জন্য একটি সিম্পল ওয়েব সার্ভার ব্যবহার করা হয়েছিল যা ডিফল্টভাবে পোর্ট ৮৮৮৭-এ শুনে। আপনি এই সেটআপ নিজে চেষ্টা করতে পারেন অ্যাপটি ইনস্টল করে এবং ছবির মতো কমান্ড ব্যবহার করে।

এটি উল্লেখ করা ভালো যে টানেলটি এক্টিভ রাখতে, আপনার SSH সেশন এক্টিভ থাকতে হবে। টানেল বন্ধ করতে, টার্মিনাল/কমান্ড প্রম্পট উইন্ডোতে exit লিখুন।

উপসংহার

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

এবং, আপনি জানেন ... সবসময় সেটি ব্যাক আপ করুন যা আপনি হারাতে চান না!

  1. রিভার্স চার্জিং: আপনার ফোনকে একটি ইম্প্রোভাইজড পাওয়ার ব্যাংক হিসেবে ব্যবহার করার পদ্ধতি

  2. স্মার্টফোনকে স্মার্ট টিভি রিমোটে রূপান্তর করুন: ধাপে ধাপে গাইড

  3. পিসিতে টেলিগ্রাম নিরাপদে অ্যাক্সেস করার ধাপে ধাপে গাইড

  4. SSH দিয়ে ক্র্যাশ করা উইন্ডোজ PC অ্যাক্সেস করুন: ধাপে ধাপে গাইড