আইপিটিবেলস - অন্য আইপি ও বন্দরে পোর্ট (ভিতর থেকে)


10

আমার কাছে বর্তমানে ৮০ বন্দরের অধীনে একটি এনএএস বক্স চলছে the বাইরে থেকে এনএএস অ্যাক্সেস করতে, আমি 8080 বন্দরটি ম্যাসেজ করে ন্যাসের 80 তে পোর্টটি অনুসরণ করেছি:

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80

এটি একটি কবজির মতো কাজ করছে। তবে, এটি কেবল তখনই কাজ করা হয় যদি আমি নেটওয়ার্কের বাইরের দিক থেকে ওয়েবসাইটে (কর্মক্ষেত্রে, পৃথক বাড়িতে ইত্যাদি) অ্যাক্সেস করি। সুতরাং আমি যখন টাইপ করি mywebsite.com:8080, আইপিটিবেলগুলি সঠিকভাবে কাজটি করে এবং সবকিছু ঠিকঠাকভাবে কাজ করে।

এখন, আমার সমস্যাটি হ'ল আমি কীভাবে নেটওয়ার্কের অভ্যন্তর থেকে এই পোর্টটি পুনর্নির্দেশ করতে পারি? আমার ডোমেন নামটি mywebsite.comআমার রাউটারের (আমার লিনাক্স সার্ভার) ভিতরে (10.32.25.1) থেকে নির্দেশ করে তবে আমি অভ্যন্তরীণ দিক থেকে 10.32.25.2 তে 8080 বন্দরটি 80 এ পুনর্নির্দেশ করতে চাই।

কোন সুত্র?

সম্পাদনা # 1

এই প্রশ্নের সুবিধার্থে সাহায্য করার চেষ্টা করছি আমি এই চিত্রটি এক সাথে রেখেছি। আপনি যদি সন্ধান করছেন এটি ভুল বা মিথ্যা উপস্থাপন করছে তবে দয়া করে তা নির্দ্বিধায় আপডেট করুন।

                                 iptables
                                     |                   .---------------.
    .-,(  ),-.                       v               port 80             |
 .-(          )-.        port 8080________               |               |
(    internet    )------------>[_...__...°]------------->|      NAS      |
 '-(          ).-'     10.32.25.2    ^   10.32.25.1      |               |
     '-.( ).-'                       |                   |               |
                                     |                   '---------------'
                                     |
                                     |
                                   __  _ 
                                  [__]|=|
                                  /::/|_|

@slm অবিকল 10.32.25.2:8080 তে কিছুই ঘটবে না কারণ সার্ভারটি 80 বন্দর রয়েছে the নেট -> NAT: 8080 -> 10.32.25.2:80। আমার ভিতরে থেকে নিয়ম দরকার এবং সেখানে কী রাখা উচিত তা আমি জানি না।
ডেভিড বেলঞ্জার

@ এসএমএল হ্যাঁ আমি জানি না আমি কীভাবে এরকম কিছু অর্জন করতে পারি। আমি 10.32.25.1:8080পুনর্নির্দেশ বলতে চাই 10.32.25.2:80। উপরের আমার বিধিটি বাইরে থেকে কাজ করছে তবে আমার নেটওয়ার্কের অভ্যন্তর নয়। সুতরাং আমি যদি অফিসে থাকি তবে আমি আমার ডটকমকে ডটকম ডট কম থেকে প্রবেশ করতে পারি: 8080 এবং এটি সম্পূর্ণ স্বচ্ছ। আমার বাড়ি থেকে, ডটকম.কম: ৮০৮০ 10.32.25.1 এ নির্দেশ করুন কারণ এটি আমার রাউটার ওরফে লিনাক্স সার্ভার। আমি 8080 বন্দরটি NAS তে 8080 বন্দরটিতে পুনর্নির্দেশ করতে চাই তবে আবার স্বচ্ছ উপায়ে।
ডেভিড বেলঞ্জার

@ এসএলএম হ্যাঁ, সবকিছু ঠিকঠাক এবং কাজ করছে। আমি কেবল অভ্যন্তরীণ নেটওয়ার্ক থেকে 10.32.25.1:8080 বন্দরকে 10.32.25.2:80 এ পুনঃনির্দেশ করতে চাই।
ডেভিড বেলঞ্জার

এছাড়াও ইন্টারফেসের মতো উল্লেখ করুন eth0 10.32.25.2, যাতে আমরা ইনবাউন্ড ইন্টারফেসের উপর ভিত্তি করে iptables ব্যবহার লিখতে সক্ষম হতে পারি
রাহুল পাতিল

ওপস দুঃখিত, আমি কেবল দেখেছি .. আপনি ইতিমধ্যে সমস্যাটি সমাধান করেছেন ..
রাহুল পাতিল

উত্তর:


13

আমি অবশেষে খুঁজে পেয়েছি কিভাবে। প্রথমত, আমাকে -i eth1আমার "বাইরের" নিয়মে যুক্ত করতে হয়েছিল (এথ 1 আমার WAN সংযোগ)। আমার আরও দুটি বিধি যুক্ত করতে হবে। এখানে আমি শেষ পর্যন্ত এখানে এসেছি:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j DNAT --to 10.32.25.2:80
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 10.32.25.2:80
iptables -t nat -A POSTROUTING -p tcp -d 10.32.25.2 --dport 80 -j MASQUERADE

2
দ্বিতীয় নিয়মটি প্রয়োজনীয় নয়, কারণ প্রথম নিয়মে ইতিমধ্যে এটি রয়েছে ...
মেশিনডিক্টট

1
প্রথম নিয়মটি যদি পূর্ববর্তীটি কেবল ইন্টারফেস এথ 1 এ আসে তবে তা সীমিত করে। দ্বিতীয় নিয়মটি আরও সাধারণ হিসাবে এটি সমস্ত ইন্টারফেসের ক্ষেত্রে প্রযোজ্য। লুফে সাবধান!
ইনস্টল করুন মনিকা-ডোর ডু

4

আপনি উল্লেখ করতে ভুলে গেছেন যে গন্তব্য NAT সম্পাদন করতে সক্ষম হওয়ার জন্য প্যাকেজ ফরোয়ার্ডিং সক্ষম করা উচিত। ডিফল্টরূপে, এটি সাধারণত বন্ধ থাকে, সুতরাং iptables বিধিগুলি কার্যকর হবে না। এটি জারি করে সক্ষম করা যেতে পারে:

echo 1 > /proc/sys/net/ipv4/ip_forward

এর জন্য আপনাকে অনেক ধন্যবাদ, আমি কয়েক ঘন্টা ধরে আমার চুল টানছি!
কলিনম

3

প্রথমে সাথে ফরওয়ার্ড করার অনুমতি দিন

echo 1 > /proc/sys/net/ipv4/ip_forward

তারপরে সঙ্গে iptable বিধি সেট করুন

IF=eth1
PORT_FROM=8080
PORT_TO=80
DEST=10.32.25.2
iptables -t nat -A PREROUTING -i $IF -p tcp --dport $PORT_FROM -j DNAT --to $DEST:$PORT_TO
iptables -t nat -A POSTROUTING -p tcp -d $DEST --dport $PORT_TO -j MASQUERADE

/etc/rc.localউদাহরণস্বরূপ আপনি এই লাইনগুলি রাখতে পারেন । দ্রষ্টব্য: যেহেতু ডেবিয়ান জেসি এটিকে কার্যকর করে তোলে এবং এর মাধ্যমে rc.local পরিষেবা সক্ষম করে

systemctl enable rc-local.service

0

প্রথমে আপনাকে যাচাই করা দরকার যে আপনি ফরওয়ার্ডিং সক্রিয় করেছেন:

cat /proc/sys/net/ipv4/ip_forward

যদি না হয় 1, চালান echo 1 > /proc/sys/net/ipv4/ip_forward

আপনি যদি 80 এবং 443 পোর্টে 10.32.25.1 তে ট্র্যাফিকটি 10.32.25.2 এর 80পোর্টে ফরোয়ার্ড করতে চান তবে আপনার নীচের নিয়মটি ব্যবহার করা উচিত:

iptables -t nat -A PREROUTING -d 10.32.25.1 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 10.32.25.2:80
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.