উত্তর:
এই ছোট গাইড ইউনিক্সের মত অপারেটিং সিস্টেমে স্ট্যান্ডার্ডগুলি (এসএসসি, এনসি, এমকিএফফো) সহ যে সরঞ্জামগুলি ব্যবহার করে এসএসএইচ মাধ্যমে ইউডিপি ট্র্যাফিক পাঠাতে হয় তা আপনাকে বলে।
একটি এসএসএইচ সংযোগ মাধ্যমে UDP টানেলিং সঞ্চালন
ধাপে ধাপে আপনার এসএসএইচ সংযোগের সাথে একটি টিসিপি ফরওয়ার্ড পোর্ট খুলুন
আপনার স্থানীয় মেশিনে (স্থানীয়) এসএসএইচ দ্বারা দূরবর্তী মেশিন (সার্ভার) এর সাথে সংযোগ করুন, অতিরিক্ত -ল বিকল্পের সাথে যাতে SSH টিসিপি পোর্ট-ফরওয়ার্ড সহ:
local# ssh -L 6667:localhost:6667 server.foo.com
এটি আপনার স্থানীয় মেশিনের পোর্ট নম্বর 6667 টিতে টিসিপি সংযোগগুলিকে নিরাপদ চ্যানেলের মাধ্যমে server.foo.com এ পোর্ট নম্বর 6667 এ ফরোয়ার্ড করার অনুমতি দেবে। সার্ভারে UDP ফরওয়ার্ড করার জন্য টিসিপি সেটআপ করুন
সার্ভারে, আমরা টিসিপি পোর্ট 6667 এ একটি শ্রোতা খুলি যা নির্দিষ্ট IP এর UDP পোর্ট 53 তে তথ্য পাঠাবে। যদি আপনি আমার মত DNS ফরওয়ার্ডিং করতে চান তবে আপনি /etc/resolv.conf এ পাবেন প্রথম নাম সার্ভারের আইপি নিতে পারেন। কিন্তু প্রথমে, আমরা একটি ফিফ তৈরি করতে হবে। দুই চ্যানেলের মধ্যে দুই-উপায় যোগাযোগের জন্য ফিফো প্রয়োজনীয়। একটি সহজ শেল পাইপ শুধুমাত্র বাম প্রক্রিয়া 'সঠিক প্রক্রিয়া মান আউটপুট' স্ট্যান্ডার্ড ইনপুট যোগাযোগ করতে হবে।
server# mkfifo /tmp/fifo
server# nc -l -p 6667 < /tmp/fifo | nc -u 192.168.1.1 53 > /tmp/fifo
এটি সার্ভারের পোর্ট 6667 তে টিসিপি ট্র্যাফিককে 19২.168.1.1 এর পোর্ট 53 তে ইউডিপি ট্র্যাফিকে প্রেরণ করার অনুমতি দেবে এবং প্রতিক্রিয়া ফিরে আসবে। আপনার মেশিনে UDP টিসিপি ফরওয়ার্ড করুন
এখন, আমাদের স্থানীয় মেশিনে উপরের কাজটির বিপরীত কাজ করতে হবে। আপনি ইউডিপি পোর্ট 53 বাঁধাই priviledged এক্সেস প্রয়োজন।
local# mkfifo /tmp/fifo
local# sudo nc -l -u -p 53 < /tmp/fifo | nc localhost 6667 > /tmp/fifo
এটি স্থানীয় মেশিনের পোর্ট 53 এ ইউডিপি ট্র্যাফিককে স্থানীয় মেশিনের পোর্ট 6667 এ টিসিপি ট্র্যাফিকে পাঠানোর অনুমতি দেবে। আপনার স্থানীয় DNS সার্ভার উপভোগ করুন :)
আপনি সম্ভবত এটি এখন অনুমান করেছেন, যখন স্থানীয় মেশিনে একটি DNS ক্যোয়ারী সঞ্চালিত হবে, উদাঃ। স্থানীয় ইউডিপি পোর্ট 53 এ, এটি স্থানীয় টিসিপি পোর্ট 6667, তারপরে সার্ভারের টিসিপি পোর্ট 6667 এ, তারপর সার্ভারের DNS সার্ভারে, 19২.168.1.1 এর UDP পোর্ট 53 তে পাঠানো হবে। আপনার স্থানীয় মেশিনে DNS পরিষেবাদি উপভোগ করার জন্য নিম্নলিখিত লাইনে আপনার /etc/resolv.conf- এ প্রথম নামবস্তুরূপে রাখুন:
nameserver 127.0.0.1
এই উদাহরণ (আমার মনে হয় জন এর উত্তর ভিন্ন স্থানে একই জিনিস নির্দেশ করে), একটি টিসিপি / এসএসএইচ সংযোগে অন্য মেশিনের ইউডিপি / DNS পরিষেবাদি কিভাবে অ্যাক্সেস করবেন তা বর্ণনা করে।
আমরা স্থানীয় ইউডিপি / 53 টি ট্রাফিক টিসিপি, তারপর এসএসএইচ-এর পোর্ট-ফরওয়ার্ডিং মেকানিজমের সাথে অন্য মেশিনে টিসিপি ট্র্যাফিক, তারপর অন্য টিসিপি-তে ইউডিপি / 53 এ এগিয়ে যাব।
সাধারণত, আপনি openvpn দিয়ে এটি করতে পারেন।
কিন্তু এখানে, আমরা সহজ সরঞ্জাম, শুধুমাত্র openssh এবং netcat সঙ্গে এটি করব।
যে পৃষ্ঠার শেষে, একটি রেফারেন্স সঙ্গে আরেকটি মন্তব্য ' socat
'
একই UDP / DNS অ্যাক্সেস তৈরি করা হয়,
সার্ভার পার্শ্ব:
socat tcp4-listen:5353,reuseaddr,fork UDP:nameserver:53
মক্কেলের পক্ষে:socat udp4-listen:53,reuseaddr,fork tcp:localhost:5353
পড়ুন সামাজিক উদাহরণ আরো বেশী.
ssh orig_strm_src socat udp4-listen:4003,reuseaddr,fork STDOUT| socat STDIN udp-sendto:localhost:4003
এসএসএইচ (অন্তত OpenSSH) সহজ ভিপিএনগুলির জন্য সমর্থন করেছে। ব্যবহার করে -w
অথবা Tunnel
বিকল্প ssh
ক্লায়েন্ট, আপনি একটি তৈরি করতে পারেন tun
উভয় প্রান্তে ডিভাইস, যা কোনও আইপি ট্র্যাফিক ফরওয়ার্ড করার জন্য ব্যবহার করা যেতে পারে। (আরো দেখুন Tunnel
ম্যানুয়াল পৃষ্ঠাতে ssh_config(5)
।) মনে রাখবেন এই উভয় প্রান্তে OpenSSH (এবং সম্ভবত রুট সুবিধা) প্রয়োজন।
ip tuntap add
।
tun
নিম্নরূপ ডিভাইস: sudo ip tuntap add mode tun
কিন্তু যখন কখনও ব্যবহার -w
এই মত অপশন: ssh $Server -w $port
আমি পাই Tunnel device open failed. Could not request tunnel forwarding.
আমি কি ভুল করছি?
অথবা আপনি সহজেই ব্যবহার করতে পারে এসএসএফ (যা এই ব্যবহার ক্ষেত্রে পরিচালনা করার জন্য ডিজাইন করা হয়েছিল), একটি সহজ কমান্ড দিয়ে:
মক্কেলের পক্ষে:
#>./ssfc -U 53:192.168.1.1:53 server.foo.com
এই কমান্ডটি স্থানীয় পোর্ট 53 (dns) থেকে 192.168.1.1 পোর্ট 53 তে লোড করা হয়েছে, স্থানীয় হোস্ট এবং server.foo.com এর মধ্যে সুরক্ষিত টানেলের মাধ্যমে।
আপনি একটি এসএসএফ সার্ভার প্রয়োজন হবে (পরিবর্তে - বা পরবর্তী - আপনার এসএসএস সার্ভার):
#>./ssfs
যাইহোক, এসএসএফের ক্লায়েন্ট এবং সার্ভার উভয়ই উইন্ডোজ / লিনাক্স / ম্যাকে কাজ করে। এটি একটি ইউজারল্যান্ড অ্যাপ্লিকেশন, তাই আপনার টুন / ট্যাপ বা ভিপিএন দরকার নেই।
পোর্ট 53 পুনঃনির্দেশিত করার জন্য, আপনি যে সরঞ্জামটি ব্যবহার করছেন সেটি সত্ত্বেও আপনাকে প্রশাসনিক সুবিধাগুলির প্রয়োজন হবে।
আরো তথ্যের জন্য, বিবরণ, ক্ষেত্রে ব্যবহার, বা ডাউনলোড করুন: https://securesocketfunneling.github.io/ssf/
আমি পেতে পারিনি nc
SNMP এর জন্য কাজ করতে, কারণ SNMP ক্লায়েন্টরা একটি নতুন উত্স UDP পোর্ট নির্বাচন করে চলেছে, এবং কয়েকটি একযোগে সক্রিয় হতে পারে।
পরিবর্তে, আমি কীভাবে এটি করব তা বর্ণনা করে একটি পোস্ট লিখেছি socat
এই ব্লগ পোস্ট , উদাহরণ হিসাবে SNMP ব্যবহার করে। আনুষ্ঠানিকভাবে, দুইটি টার্মিনাল ব্যবহার করে, একটি ওভারভিউ দিয়ে শুরু করুন:
টার্মিনাল এক:
client$ ssh -L 10000:localhost:10000 server
server$ socat -T10 TCP4-LISTEN:10000,fork UDP4:switch:161
এটি টিসিপি পোর্ট 10000 এর এসএসএইচ ফরোয়ার্ড তৈরি করে এবং সার্ভারে সামাজিক চালায়। সোশ্যাল কমান্ড লাইনে "সুইচ" হিসাবে সুইচ এর আইপি ঠিকানা উল্লেখ করা হয়েছে তা লক্ষ্য করুন।
টার্মিনাল দুই:
client$ sudo socat UDP4-LISTEN:161,fork TCP4:localhost:10000
যে ক্লায়েন্ট উপর সামাজিক সেট আপ। যা করা উচিৎ.