আপনি যদি ভাগ্যবান হন যে আপনার ইন্টারনেট পরিষেবা প্রদানকারী (ISP) আপনাকে একটি ডেডিকেটেড IP ঠিকানা দেয়, আপনি একটি হোম সার্ভার সেট আপ করতে পারেন এবং আপনার রাউটারে কয়েকটি পোর্ট ফরওয়ার্ডিং নিয়ম যোগ করে এটি ইন্টারনেটে উপলব্ধ করতে পারেন। কিন্তু যদি আপনার আইএসপি আপনাকে সেই আইপিটি আপনার প্রতিবেশীদের সাথে শেয়ার করে, তাহলে পোর্ট ফরওয়ার্ডিং সাহায্য করবে না। অন্যান্য প্রদানকারীরা ফায়ারওয়াল নিয়মের মাধ্যমে ইনকামিং সংযোগগুলিকে ব্লক করে৷
আপনি ভার্চুয়াল প্রাইভেট সার্ভারের সাহায্যে এই সমস্ত বিধিনিষেধ বাইপাস করতে পারেন। 512MB এর কম RAM থাকলেও যেকোন কিছু কাজ করবে, কারণ এটি যা করতে হবে তা হল নেটওয়ার্ক ট্রাফিক রিডাইরেক্ট করা। এটি সিপিইউ এবং র্যামে খুব হালকা। সার্ভার ইনকামিং সংযোগগুলি পাবে এবং সেগুলিকে "বিপরীত SSH টানেল" বলে আপনার কম্পিউটারে পুনঃনির্দেশ করবে৷ এইভাবে আপনি খুব কম মাসিক খরচ সহ যেকোনো ধরনের হোম সার্ভার সেট আপ করতে পারেন।
কল্পনা করুন যে আপনি আপনার ফাইলগুলি আপলোড/সিঙ্ক্রোনাইজ করার জন্য একটি নেক্সটক্লাউড সার্ভার তৈরি করেছেন। আপনি আপনার হোম সার্ভারে সেই ফাইলগুলি রাখার গোপনীয়তা পান এবং তারপরে আপনার প্রয়োজনীয় সমস্ত স্থান পেতে আপনি একটি 6TB হার্ড ড্রাইভ কিনতে পারেন৷ ভার্চুয়াল প্রাইভেট সার্ভারের জন্য আপনাকে শুধুমাত্র একটি মাসিক বিদ্যুৎ বিল এবং $5/মাসের কম দিতে হবে। এটি 6TB স্পেস সহ সার্ভারের মাসিক বিলের চেয়ে সস্তা৷
৷দ্রষ্টব্য :এটি শুধুমাত্র TCP নেটওয়ার্ক ট্রাফিক পুনঃনির্দেশের জন্য কাজ করে। ওয়েব সার্ভার (পোর্ট 80/tcp) এর মতো জিনিস দ্বারা TCP ব্যবহার করা হয়। UDP কিছু (সমস্ত নয়) গেম সার্ভার দ্বারা ব্যবহৃত হয়, উদাহরণস্বরূপ কাউন্টার স্ট্রাইক (পোর্ট 27015/UDP)। UDP টানেলিং সম্ভব, তবে কিছু "হ্যাকস" সহ যা ভবিষ্যতের টিউটোরিয়ালের বিষয় হতে পারে৷
Windows 10-এ এখন একটি অন্তর্নির্মিত SSH ক্লায়েন্ট আছে
SSH সংযোগ শুরু করার জন্য আর পুটিটি ব্যবহার করার দরকার নেই। আসলে, এই টিউটোরিয়ালের জন্য আপনি আসলে টানেল সেট আপ করতে এই অন্তর্নির্মিত ক্লায়েন্ট ব্যবহার করবেন। Windows 10 এর OpenSSH ক্লায়েন্ট সম্পর্কে টিউটোরিয়াল পড়ুন যদি আপনি এটির সাথে আগে থেকেই পরিচিত না হন।
টানেল সংযোগে ভার্চুয়াল প্রাইভেট সার্ভার প্রস্তুত করুন
আপনার প্রিয় প্রদানকারীর সাথে একটি ভার্চুয়াল প্রাইভেট সার্ভার তৈরি করুন, যেমন DigitalOcean, Linode, Vultr, বা আপনি যা পছন্দ করেন। নেটওয়ার্ক লেটেন্সি কমাতে যতটা সম্ভব আপনার কাছাকাছি এমন একটি সার্ভারের অবস্থান বেছে নেওয়া সবচেয়ে গুরুত্বপূর্ণ। সার্ভারটি এমনভাবে সেট আপ করার চেষ্টা করুন যাতে আপনি সরাসরি রুট অ্যাকাউন্টে লগ ইন করতে পারেন, বিশেষত একটি SSH কী দিয়ে, কারণ এটি আরও নিরাপদ। আপনি যদি সার্ভারটিকে 1024-এর নীচের পোর্টে আসা সংযোগগুলি শুনতে চান, তথাকথিত বিশেষাধিকারপ্রাপ্ত পোর্টগুলিকে শোনাতে চান তাহলে এটি প্রয়োজন৷
কমান্ড প্রম্পট খুলুন (বা আপনি লিনাক্সে থাকলে একটি টার্মিনাল), এবং SSH এর মাধ্যমে সার্ভারে লগ ইন করুন।
OpenSSH সার্ভার সেটিংস সম্পাদনা করুন:
nano /etc/ssh/sshd_config
আপনি যদি রুট হিসাবে লগ ইন না করে থাকেন তবে নিয়মিত ব্যবহারকারী হিসাবে, আপনাকে এই কমান্ডটি ব্যবহার করতে হবে, অন্যথায় আপনি ফাইলটি সংরক্ষণ করতে পারবেন না:
sudo nano /etc/ssh/sshd_config
আপনি "গেটওয়ে পোর্টস" নামক একটি ভেরিয়েবল না পাওয়া পর্যন্ত নিচে স্ক্রোল করুন। লাইনটি এইরকম দেখতে পারে:#GatewayPorts no
. পূর্ববর্তী "#" মুছুন (আনকমেন্ট করতে) এবং লাইনটিকে GatewayPorts yes
এ পরিবর্তন করুন .
আপনি যদি লাইনটি খুঁজে না পান, শুধু শেষ পর্যন্ত নিচে স্ক্রোল করুন এবং লাইনটি নিজেই যোগ করুন:
GatewayPorts yes
Ctrl টিপুন + X , তারপর y টিপুন , এবং অবশেষে ফাইলটি সংরক্ষণ করতে প্রবেশ করুন।
SSH ডেমন পুনরায় লোড করুন যাতে এটি নতুন সেটিংসে উঠে আসে।
systemctl reload ssh.service
SSH সেশন থেকে প্রস্থান করুন।
exit
কিভাবে একটি বিপরীত SSH টানেল সেট আপ করবেন
কমান্ড প্যারামিটারগুলি লিনাক্স, উইন্ডোজ এবং এমনকি বিএসডি অপারেটিং সিস্টেমেও একই। সাধারণ সিনট্যাক্স হল:
ssh -R remote_port:host:localport your_username@IP-of-server
remote_port
সার্ভারকে সেই পোর্টে আসা সংযোগগুলিকে পুনঃনির্দেশ করতে বলে৷
৷ host
সার্ভারকে বলে যে কোন আইপি ঠিকানায় সংযোগটি পুনঃনির্দেশিত করা উচিত।127.0.0.1
আপনার নিজের কম্পিউটারে পুনঃনির্দেশ করতে এখানে ব্যবহার করা হবে৷localport
নির্দেশ দেয় কোন পোর্ট ডেটা প্যাকেটগুলিতে পুনঃনির্দেশিত করা উচিত। এখানে, আপনাকে সেই পোর্ট নম্বরটি রাখতে হবে যা আপনার স্থানীয় কম্পিউটারে ইনস্টল করা আপনার অ্যাপ্লিকেশনটি শোনে।
উদাহরণস্বরূপ, পোর্ট 80 (সার্ভারে) আসা সমস্ত সংযোগ ফরওয়ার্ড করতে এবং আপনার স্থানীয় কম্পিউটারে পোর্ট 8080 এ পাঠাতে, কমান্ডটি হবে:
ssh -R 80:127.0.0.1:8080 [email protected]
এটি অনুমান করে যে আপনার কাছে Apache বা Nginx এর মতো একটি ওয়েব সার্ভার রয়েছে যা আপনার স্থানীয় মেশিনে 8080 পোর্টে শোনে। কিন্তু যদি Apache/Nginx ডিফল্ট পোর্ট 80 এ শুনছে, তাহলে আগের কমান্ডে একই পোর্ট দুবার ব্যবহার করতে কোন সমস্যা নেই (যেহেতু তারা একটি ভিন্ন সার্ভারে পোর্ট 80 উল্লেখ করছে)।
ssh -R 80:127.0.0.1:80 [email protected]
এই মুহুর্তে, যদি কেউ ব্রাউজারের ঠিকানা বারে আপনার ভার্চুয়াল প্রাইভেট সার্ভারের IP ঠিকানা প্রবেশ করে, তাহলে তাদের সংযোগটি আপনার স্থানীয় কম্পিউটার দ্বারা পুনঃনির্দেশিত হবে এবং পরিবেশন করা হবে৷
উপরের ছবিতে, Chrome এর জন্য একটি সাধারণ ওয়েব সার্ভার ব্যবহার করা হয়েছে যা ডিফল্টরূপে 8887 পোর্টে শোনে। আপনি অ্যাপটি ইনস্টল করে এবং তারপরে ছবির মতো কমান্ড ব্যবহার করে নিজেই এই সেটআপটি চেষ্টা করতে পারেন।
এটি উল্লেখ করার মতো যে টানেলটি সক্রিয় রাখতে, আপনার SSH সেশনটি সক্রিয় থাকতে হবে। টানেলটি বন্ধ করতে, exit
টাইপ করুন টার্মিনাল/কমান্ড প্রম্পট উইন্ডোতে।
উপসংহার
আপনি দেখতে পাচ্ছেন, একটি বিপরীত SSH টানেল তৈরি করা কঠিন নয়, তবে একটি ওয়েবসাইট সুরক্ষিত করা। সুতরাং আপনি যদি স্থানীয় নেক্সটক্লাউড সার্ভারের মতো একটি ধারণা বাস্তবায়ন করতে চান তবে এটি অন্তত একটি ভার্চুয়াল মেশিনে বিচ্ছিন্ন করুন। এইভাবে, যদি আপনার ওয়েবসাইট আপস করা হয়, অন্তত আপনার বাকি অপারেটিং সিস্টেম অক্ষত হবে।
এবং, আপনি জানেন … আপনি যা হারানোর ঝুঁকি নিতে চান না তা সর্বদা ব্যাক আপ করুন!