আমার হোম নেটওয়ার্কের জন্য NAT পারফর্ম করার জন্য আমার একটি লিনাক্স গেটওয়ে রয়েছে। আমার কাছে আরও একটি নেটওয়ার্ক রয়েছে যা আমি স্বচ্ছভাবে প্যাকেটগুলিতে ফরোয়ার্ড করতে চাই, তবে কেবলমাত্র নির্দিষ্ট আইপি / পোর্টগুলিতে / যেমন (কোনও ভিপিএন নয়)। এখানে কাজ করার জন্য কয়েকটি উদাহরণ আইপি এবং পোর্টস:
Source Router Remote Gateway Remote Target
192.168.1.10 -> 192.168.1.1 -> 1.2.3.4 -> 192.168.50.50:5000
আমি চাই উত্স মেশিনটি দূরবর্তী টার্গেটের নির্দিষ্ট বন্দরগুলির সাথে কথা বলতে সক্ষম হবে যেন এটি রাউটার থেকে সরাসরি রাউটেবল হয়। রাউটারে, eth0 হল ব্যক্তিগত নেটওয়ার্ক এবং এথ 1 ইন্টারনেট-মুখী। রিমোট গেটওয়ে হ'ল আরেকটি লিনাক্স মেশিন যা আমি প্রবেশ করতে পারি এবং এটি সরাসরি দূরবর্তী টার্গেটে যেতে পারে।
একটি সহজ সমাধানে আমার প্রচেষ্টা হ'ল রাউটারে ssh পোর্ট ফরওয়ার্ডিং সেটআপ করা, যেমন:
ssh -L 5000:192.168.50.50:5000 1.2.3.4
এটি রাউটারের জন্য সূক্ষ্মভাবে কাজ করে, যা এখন 5000 পোর্টের সাথে স্থানীয়ভাবে সংযোগ করতে পারে So সুতরাং "টেলনেট লোকালহোস্ট 5000" প্রত্যাশার সাথে 192.168.50.50:5000 এর সাথে সংযুক্ত হবে।
এখন আমি উত্স থেকে ট্র্যাফিক পুনর্নির্দেশ এবং এখন প্রতিষ্ঠিত এসএস টানেলের মাধ্যমে ফানেলটি চাই। আমি এটির জন্য একটি NAT নিয়ম চেষ্টা করেছি:
iptables -t nat -D PREROUTING -i eth0 -p tcp -s 192.168.1.10 --dport 5000 -d 1.2.3.4 -j DNAT --to-destination 127.0.0.1:5000
এবং যেহেতু রাউটারটি ইতিমধ্যে আমার NAT গেটওয়ে, এটি ইতিমধ্যে প্রয়োজনীয় পোস্ট্রোটিং বিধি রয়েছে:
-A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
এই সাইটে বা অন্য কোথাও বেশিরভাগ প্রশ্নোত্তর ফরোয়ার্ডিং সার্ভার পোর্ট বা হেয়ারপিন নাট নিয়ে কাজ করে বলে মনে হচ্ছে, উভয়ই আমি অন্য কোথাও ভাল কাজ করেছি, যার দুটিই এই পরিস্থিতির ক্ষেত্রে প্রযোজ্য নয়। আমি অবশ্যই ডিএমজেড রিমোট গেটওয়ের মাধ্যমে দূরবর্তী টার্গেট বন্দরগুলি ফরোয়ার্ড করতে পারি, তবে আমি পোর্টগুলি ইন্টারনেট-অ্যাক্সেসযোগ্য চাই না, আমি কেবল নিরাপদ এসএসএইচ টানেলের মাধ্যমে এগুলি অ্যাক্সেসযোগ্য চাই।
লিনাক্স কার্নেলের মার্টিয়ান প্যাকেট প্রত্যাখ্যানের সাথে আমি খুঁজে পেতে পারি তার সেরা উত্তর:
iptables, লুপব্যাক থেকে পোর্ট পুনর্নির্দেশ কিভাবে?
আমি মার্টিয়ানদের লগিং সক্ষম করেছি এবং নিশ্চিত করেছি যে কার্নেল এই প্যাকেটগুলি মার্শিয়ান হিসাবে প্রত্যাখ্যান করছে। এগুলি না থাকলে ব্যতীত: আমি জানি যে এই প্যাকেটগুলি কোথায়, তারা কোথায় এবং কোথায় যাচ্ছে (আমার এসএস টানেল) my
সেখানে উপস্থাপিত "রাউন্ডআউট" সমাধানটি মূল প্রশ্নের ক্ষেত্রে প্রযোজ্য, তবে আমার ক্ষেত্রে প্রযোজ্য নয়।
তবে, এই প্রশ্নটি লেখার / গবেষণার সময়, আমি এসএসএইচ উত্স আইপি বাইন্ডিংটি ব্যবহার করে আমার সমস্যাটি ঘটিয়েছি:
ssh -L 192.168.1.1:5000:192.168.50.50:5000 1.2.3.4
iptables -t nat -D PREROUTING -i eth0 -p tcp -s 192.168.1.10 --dport 5000 -d 1.2.3.4 -j DNAT --to-destination 192.168.1.1:5000
যেহেতু আমি লুপব্যাকটি ব্যবহার করছি না, এটি মার্টিয়ান প্রত্যাখ্যানের কাছাকাছি চলে আসে।
আমি এখনও দুটি কারণে এখানে প্রশ্ন পোস্ট করি:
- ভবিষ্যতে এই জাতীয় কিছু করার চেষ্টা করছেন এমন ব্যক্তি তার অনুসন্ধানে এটি খুঁজে পেতে পারে এবং এই কাজটি তাদের সহায়তা করতে পারে বলে আশাবাদী In
- আমি আমার এসএস পোর্ট ফরওয়ার্ডস সংযোগটি কেবল লুপব্যাকের সাথে আবদ্ধ রাখতে এবং আইপ্যাটেবলগুলির মাধ্যমে তাদের কাছে যাত্রা করতে সক্ষম হওয়ার ধারণাটি পছন্দ করি। যেহেতু আমি জানি যে এই প্যাকেটগুলি ঠিক কী এবং সেগুলি কোথায় চলছে, তাই লিনাক্স মার্টিয়ান ফিল্টারিংগুলি সেগুলি প্রত্যাখ্যান না করার জন্য আমার পক্ষে তাদের পতাকা লাগানোর কোনও উপায় থাকা উচিত নয়? এই বিষয়ে আমার সমস্ত অনুসন্ধান rp_filter বাড়ে, যা আমার পরীক্ষায় মোটেই সহায়তা করেনি। এমনকি এটি কাজ করেও, আমি যে সঠিক প্যাকেটগুলির অনুমতি দেওয়ার চেষ্টা করছি তার সাথে এটি সুনির্দিষ্ট নয়।
আমি আমার প্রশ্নের অবদান রাখতে আগ্রহী এবং সাধারণ অনুসন্ধানে কাজটি করতে আগ্রহী আমি অন্য কাউকে বাঁচানোর জন্য কেবলমাত্র মৃত্যুর শেষগুলি উপস্থিত করতে এসেছি, পাশাপাশি আশা করি কেউ আমার প্রশ্নের লুপব্যাক / মার্টিয়ান অংশটির উত্তর দিয়েছেন যা এখনও খোলা রয়েছে আমার কাছে.