কীভাবে পোর্ট ফরওয়ার্ডিং / দেবিয়ানে পুনর্নির্দেশ করবেন?


12

আমার দুটি প্রশ্ন আছে।

প্রশ্ন 1: আমার ডেবিয়ান মেশিনের আইপি 192.168.57.28 এর সাথে ইন্টারফেস ইথ 3 রয়েছে। যদি কেউ 192.168.57.28 اصول234 এর সাথে সংযোগ স্থাপনের চেষ্টা করে তবে আমি কীভাবে অন্য মেশিনে অনুরোধটি পুনর্নির্দেশ করব: 192.168.57.25:80?

প্রশ্ন 2: যদি আমার ডিবিয়ান মেশিনের দুটি ইন্টারফেস থাকে: 192.168.57.28 সহ E3 এবং কিছু গতিশীল আইপি সহ পিপিপি0 এবং কেউ 1234 পোর্টে পিপিপি0 এর মাধ্যমে সংযোগ দেওয়ার চেষ্টা করে, আমি কীভাবে অনুরোধটি 192.168.57.25:80 এ পুনঃনির্দেশ করব?

আমি এটি চেষ্টা করেছি:

$ iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
$ echo 1 > /proc/sys/net/ipv4/ip_forward

কিন্তু এটি কাজ করে না।

উত্তর:


12
iptables -A PREROUTING -t nat -i eth3 -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
iptables -A FORWARD -p tcp -d 192.168.57.25 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.57.25 -o eth3 -j MASQUERADE

প্রথমটি নির্দিষ্ট করে যে 1234 পোর্টে সমস্ত আগত টিসিপি সংযোগগুলি অভ্যন্তরীণ মেশিনের 192.168.57.25 এর 80 বন্দরতে প্রেরণ করা উচিত। এই নিয়মটি একাই কাজটি সম্পন্ন করে না কারণ iptables সমস্ত আগত সংযোগ অস্বীকার করে। তারপরে আমরা এথ 3 থেকে 1234 পোর্টে আগত সংযোগ গ্রহণ করি যা দ্বিতীয় বিধি দ্বারা পাবলিক আইপি দিয়ে ইন্টারনেটে সংযুক্ত হয়। প্যাকেটগুলি 192.168.57.25 এর 80 পোর্টে ফরোয়ার্ড করার অনুমতি দেওয়ার জন্য আমরা ফরওয়ার্ড চেইনে দ্বিতীয় নিয়ম যুক্ত করি।

সম্পাদনা: POSTROUTING যোগ করা হয়েছে।

সংযোগটি ট্র্যাক রাখতে। অন্যথায় বাইরের হোস্টটি অভ্যন্তরীণ আইপি 192.168.57.25 দেখতে পাবেন যার কোনও ধারণা নেই।

সম্পাদনা 2: সবেমাত্র ইঙ্গিতটি পেয়েছে যে --to (sry) এর পরিবর্তে এটি - গন্তব্য হওয়া উচিত


আমি আপনার পরামর্শ চেষ্টা করেছি, কিন্তু এটি কার্যকর হয় না। আমি 192.168.57.25 এ ব্রাউজ করতে পারি এবং ওয়েবপৃষ্ঠা ফিরে আসে, তবে 192.168.57.28ব্দ234 এ ব্রাউজ করা কাজ করে না।
ডিঞ্জাল সালবার্গ অ্যাডলারসন

@ ডঞ্জালসালবার্গ অ্যাডলারসন আমার পোস্ট আপডেট করেছেন (কিছু মিস করেছেন। স্রাই।)
ডেওয়ালকার

3
আমি আপনার পরামর্শ চেষ্টা করেছিলাম, কিন্তু এটি কার্যকর হয়নি। তারপরে আমি এটিকে শেষের দিকে পরিবর্তিত করব: iptables -A POSTROUTING -t nat -j MASQUERADE, তারপর এটি কাজ করেছে!
দঞ্জাল সালবার্গ অ্যাডলারসন

8

ডেওয়ালকার এবং দঞ্জাল সালবার্গ অ্যাডলারসনকে ধন্যবাদ। শপথ নেওয়ার কয়েক ঘন্টা পরে, iptables সহ পোর্ট ফরওয়ার্ডিং অবশেষে কাজ করে। (দেবিয়ান পরীক্ষিত)

ব্যাশ-স্ক্রিপ্ট

#!/bin/bash

IPTBL=/sbin/iptables

IF_IN=eth0
PORT_IN=40022

IP_OUT=172.16.93.128
PORT_OUT=22

echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTBL -A PREROUTING -t nat -i $IF_IN -p tcp --dport $PORT_IN -j DNAT --to-destination ${IP_OUT}:${PORT_OUT}
$IPTBL -A FORWARD -p tcp -d $IP_OUT --dport $PORT_OUT -j ACCEPT
$IPTBL -A POSTROUTING -t nat -j MASQUERADE

"-s 192.168.57.25" পোষ্ট্রুটিং লাইন থেকে বাদ দেওয়ার কোনও কারণ আছে কি?
এডওয়ার্ডসফার্ক

এছাড়াও "-o eth3" বাদ দেওয়া
edwardsmarkf

পোস্ট-লাইন-এ এবং -o দেখতে optionচ্ছিক বলে মনে হচ্ছে। এসএসএল ব্যবহার সম্পর্কে কোন চিন্তা? আমি প্রশ্ন জিজ্ঞাসা এখানে আপনার স্ক্রিপ্ট উল্লেখ: superuser.com/questions/1387902/...
edwardsmarkf
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.