এই নিবন্ধে আমরা দেখাব কিভাবে বিল্ট-ইন Windows 10 OpenSSH সার্ভার ব্যবহার করে একটি SSH টানেল এর মাধ্যমে পোর্ট ফরওয়ার্ড করতে হয়। . SSH পোর্ট ফরওয়ার্ডিং আপনাকে স্থানীয় কম্পিউটার থেকে একটি দূরবর্তী সার্ভারে অ্যাপ পোর্ট টানেল (ফরোয়ার্ড) করতে দেয় এবং এর বিপরীতে। আগে এসএসএইচ টানেলিং শুধুমাত্র লিনাক্স/ইউনিক্স পরিবেশে ব্যবহার করা হত, কিন্তু আজ আপনি এটি Windows 10/Windows সার্ভার 2016-এও ব্যবহার করতে পারেন। উইন্ডোজে SSH টানেলের (TCP পোর্ট 22) মাধ্যমে কীভাবে একটি RDP সংযোগ ব্যবহার করতে হয় তার একটি কেস স্টাডি এখানে রয়েছে।
SSH টানেলিং বেশিরভাগ পরিস্থিতিতে ব্যবহৃত হয় যখন আপনাকে ফায়ারওয়ালের পিছনে একটি দূরবর্তী কম্পিউটারের সাথে সংযোগ করতে হবে। উদাহরণস্বরূপ, আপনার একটি উইন্ডোজ সার্ভার আছে যেখানে শুধুমাত্র SSH পোর্ট খোলা আছে (TCP 22)। অন্যান্য সমস্ত পোর্ট একটি হার্ডওয়্যার ফায়ারওয়াল বা উইন্ডোজ ফায়ারওয়াল দ্বারা অবরুদ্ধ। আপনার কাজ হল RDP ক্লায়েন্ট ব্যবহার করে Windows সার্ভারের সাথে সংযোগ করা। এটি অসম্ভব বলে মনে হচ্ছে যেহেতু রিমোট ডেস্কটপ পোর্ট 3389 ফায়ারওয়াল দ্বারা অবরুদ্ধ। যাইহোক, আপনি SSH টানেলের মাধ্যমে পোর্ট ফরওয়ার্ডিং কৌশল ব্যবহার করতে পারেন।
এখানে SSH টানেলিং-এর সাধারণ ব্যবহারের পরিস্থিতি রয়েছে:
- স্থানীয় TCP ফরওয়ার্ডিং দূরবর্তী সার্ভারে একটি স্থানীয় পোর্ট ফরওয়ার্ডিং;
- রিমোট TCP ফরওয়ার্ডিং একটি দূরবর্তী পোর্ট একটি স্থানীয় কম্পিউটারে ফরওয়ার্ডিং;
- ডাবল SSH টানেল একটি SSH সার্ভারের (যদি OpenVPN সমাধান প্রযোজ্য না হয়) এর মাধ্যমে NAT এর পিছনে কোনো ডেডিকেটেড pubic IP ঠিকানা ছাড়াই কম্পিউটারগুলিকে সংযুক্ত করে।
SSH টানেলের মাধ্যমে RDP অ্যাক্সেস (স্থানীয় TCP ফরওয়ার্ডিং)
এই মোডে, আপনি আপনার কম্পিউটারে একটি স্থানীয় TCP পোর্ট তৈরি করুন। এই পোর্টের সমস্ত সংযোগ SSH টানেলের মাধ্যমে দূরবর্তী সার্ভারে নির্দিষ্ট পোর্টে ফরোয়ার্ড করা হয়। এই উদাহরণে, আমরা একটি স্থানীয় পোর্ট তৈরি করব 8888 , এবং এর সাথে সংযোগটি RDP পোর্ট 3389-এ ফরোয়ার্ড করা হবে৷ একটি দূরবর্তী উইন্ডোজ কম্পিউটারে। সাধারণ সংযোগ স্কিম নীচে দেখানো হয়েছে৷
৷
বিল্ট-ইন Windows 10 SSH ক্লায়েন্ট ব্যবহার করে একটি SSH টানেল তৈরি করতে (Windows 10 1809 এবং Windows Server 2019 থেকে শুরু করে Windows এর একটি অংশ), এই কমান্ডটি চালান:
ssh -L 8888:192.168.1.90:3389 [email protected]
SSH টানেলের মাধ্যমে দূরবর্তী কম্পিউটার ডেস্কটপে সংযোগ করতে, আপনাকে RDP ক্লায়েন্ট (mstsc.exe) ব্যবহার করে আপনার কম্পিউটারের স্থানীয় পোর্ট 8888-এর সাথে সংযোগ করতে হবে:
127.0.0.1:8888
দূরবর্তী কম্পিউটারে লগইন করুন এবং RDP সেশনে নিরাপদে কাজ করুন (কিন্তু আপনি মনে রাখবেন যে পোর্ট 3389 এখনও ফায়ারওয়াল দ্বারা বন্ধ রয়েছে)। RDP সংযোগ স্থানীয় কিনা তা নিশ্চিত করতে আপনি TCPView টুল ব্যবহার করতে পারেন (স্থানীয়ভাবে চলমান SSH সার্ভার দ্বারা RDP সংযোগ শুরু হয়)।
অনুগ্রহ করে মনে রাখবেন যে আপনি যদি একটি এনক্রিপ্ট না করা অ্যাপ ট্র্যাফিক ফরোয়ার্ড করেন, তবে এটি সর্বজনীন নেটওয়ার্কগুলিতে এনক্রিপ্ট করা হবে। এই ধরনের ট্রাফিক আপনার SSH সংযোগের এক প্রান্তে এনক্রিপ্ট করা হবে এবং অন্য প্রান্তে ডিক্রিপ্ট করা হবে।
আপনার স্থানীয় নেটওয়ার্কের অন্যান্য কম্পিউটারগুলিও একটি RDP সার্ভারের সাথে সংযোগ করতে এই মোডটি ব্যবহার করতে পারে এমনকি সরাসরি সংযোগের অনুমতি না থাকলেও (SSH এর মাধ্যমে এবং RDP এর মাধ্যমে)। এটি করার জন্য, তাদের অবশ্যই RDP ক্লায়েন্টের মাধ্যমে আপনার কম্পিউটারের পোর্ট নম্বর 8888-এর সাথে SSH টানেল তৈরি করে সংযোগ করতে হবে:
mstsc.exe /v 10.10.1.220:8888
একটি স্থানীয় কম্পিউটারে দূরবর্তী TCP ফরওয়ার্ডিং
আরেকটি SSH টানেল ব্যবহারের ক্ষেত্রে রয়েছে — দূরবর্তী TCP ফরওয়ার্ডিং। SSH টানেল ব্যবহার করে, আপনি দূরবর্তী সার্ভারকে আপনার কম্পিউটারে একটি স্থানীয় পোর্ট বা আপনার স্থানীয় নেটওয়ার্কের অন্য কম্পিউটারে একটি পোর্ট অ্যাক্সেস করার অনুমতি দিতে পারেন। উদাহরণস্বরূপ, আপনি একটি বহিরাগত সার্ভার (200.168.1.90) আপনার ইন্ট্রানেট সাইট অ্যাক্সেস করতে চান (ইন্টারনেটে প্রকাশিত নয়)৷ একটি বিপরীত SSH টানেল তৈরি করতে, এই কমান্ডটি ব্যবহার করুন:
ssh -R 8080:internalwww:80 [email protected]
একটি দূরবর্তী SSH সার্ভার থেকে অভ্যন্তরীণwwww সাইটে অ্যাক্সেস পেতে, ব্রাউজারে এই ঠিকানাটি টাইপ করা যথেষ্ট:https://localhost:8080
netsh interface portproxy command
ব্যবহার করে পোর্ট ফরওয়ার্ডিং নিয়ম তৈরি করতে পারেন SSH টানেল ব্যবহার করে, আপনি পোর্ট ফরওয়ার্ডিং চেইন তৈরি করতে পারেন। SSH টানেলিং সক্ষম বা নিষ্ক্রিয় করতে, OpenSSH কনফিগারেশন ফাইলে নিম্নলিখিত নির্দেশাবলীর মধ্যে একটি যোগ করুন (%programdata%\ssh\sshd_config ):
AllowStreamLocalForwarding yes AllowTcpForwarding remote