Iptables এ PREOUTING এবং ফরওয়ার্ডের মধ্যে পার্থক্য কী?


16

আমি এই সিস্টেমটি কীভাবে কাজ করে তা বোঝার চেষ্টা করছি এবং NAT প্রেরোটিং বা ফরোয়ার্ড ফিল্টার ব্যবহারের মধ্যে পার্থক্য বুঝতে আমার সমস্যা আছে। আমি যা বুঝতে পারি তা থেকে, PREROUTE ফিল্টারটি এড়িয়ে প্যাকেটটিকে অন্য সার্ভারে প্রেরণ করতে পারে। যদি NAT এটিকে PREROUTE এর মাধ্যমে পরিচালনা করতে পারে তবে ফিল্টারটিতে ফরওয়ার্ড নিয়মের উদ্দেশ্য কী?

উত্তর:


25

NAT টেবিল :

এই টেবিলটি বিভিন্ন প্যাকেটে কেবল NAT (নেটওয়ার্ক ঠিকানা অনুবাদ) এর জন্য ব্যবহার করা উচিত। অন্য কথায়, এটি কেবল প্যাকেটের উত্স ক্ষেত্র বা গন্তব্য ক্ষেত্রটি অনুবাদ করতে ব্যবহার করা উচিত।

ফিল্টার সারণী :

ফিল্টার টেবিলটি সাধারণত প্যাকেটগুলি ফিল্টার করার জন্য ব্যবহৃত হয়। আমরা প্যাকেটগুলি মেলাতে পারি এবং আমরা যেভাবে চাই তা ফিল্টার করতে পারি। এটি সেই জায়গা যেখানে আমরা প্যাকেটগুলির বিরুদ্ধে আসলে পদক্ষেপ নিই এবং সেগুলি কী আছে তা দেখুন এবং তাদের সামগ্রীর উপর নির্ভর করে এগুলি DROP বা / এসিসিপিটি করুন। অবশ্যই আমরা পূর্বের ফিল্টারিংও করতে পারি; তবে, এই নির্দিষ্ট টেবিলটি সেই জায়গা যেখানে ফিল্টারিংয়ের নকশা করা হয়েছিল।

ভিতরে সারণি এবং চেইন ঢোঁড়ন আমরা যে ফিল্টার এর FORWARD এর শৃঙ্খল দেখতে পারেন, শুধুমাত্র ফরওয়ার্ড প্যাকেট (প্যাকেট নেটওয়ার্ক থেকে আসা এবং নেটওয়ার্ক যেতে আউট) ভেদকরেখার দ্বারা অর্থাৎ আপনার কম্পিউটারের একটি রাউটার মত অভিনয় করা হয়, যখন NAT এর PREROUTING শৃঙ্খল উভয় ফরওয়ার্ড ভেদকরেখার দ্বারা প্যাকেট এবং প্যাকেট যার গন্তব্য স্থানীয় হোস্ট।

আপনার কেবল প্যাকেটের গন্তব্য ঠিকানা পরিবর্তন করতে এবং ফিল্টারিংয়ের জন্য কেবল ফিল্টারিং (প্যাকেটগুলি নামা / গ্রহণ করা) এর জন্য ফিল্টারের ফরওয়ার্ডটি ব্যবহার করতে হবে PR

আমরা যদি প্রথম রাউটিং সিদ্ধান্তের কোনও প্যাকেট পাই যা স্থানীয় মেশিনে নিজেই নির্ধারিত হয় না, তবে এটি ফরওয়ার্ড চেইনের মাধ্যমে চালিত হবে। অন্যদিকে, প্যাকেটটি যদি স্থানীয় মেশিন শুনছে এমন কোনও আইপি ঠিকানার জন্য নির্ধারিত হয়, আমরা প্যাকেটটি ইনপুট চেইনের মাধ্যমে এবং স্থানীয় মেশিনে প্রেরণ করব। এখানে চিত্র বর্ণনা লিখুন প্যাকেটগুলি স্থানীয় মেশিনের জন্য নির্ধারিত হতে পারে তবে NAT এর মাধ্যমে গন্তব্য ঠিকানা PREOUTING শৃঙ্খলে পরিবর্তন করা যেতে পারে। যেহেতু এটি প্রথম রাউটিংয়ের সিদ্ধান্তের আগে ঘটেছিল তাই প্যাকেটটি এই পরিবর্তনের পরে দেখা হবে। এ কারণে রাউটিংয়ের সিদ্ধান্ত নেওয়ার আগে রাউটিংটি পরিবর্তন করা যেতে পারে। মনে রাখবেন, সমস্ত প্যাকেট এই চিত্রের এক বা অন্য পথ দিয়ে যাবে। যদি আপনি কোনও প্যাকেট একই নেটওয়ার্ক থেকে ফিরে আসে তবে এটি নেটওয়ার্কে ফিরে না আসা পর্যন্ত এটি বাকী চেইনের মধ্য দিয়ে ভ্রমণ করবে।


5

অগ্রণীকরণ : এই চেইনটি কোনও প্যাকেট প্রেরণের আগে ( পিআরই ) কোনও রাউটিং সম্পর্কিত সিদ্ধান্ত নিতে ব্যবহৃত হয় । সবসময় যে মনে রাখা PREROUTING/POSTROUTINGঅর্থাত NATটেবিল ACCEPT/DROP/REJECTডিফল্ট ইত্যাদি লক্ষ্যমাত্রা FILTERকাজ টেবিল না। NATটেবিলটি কেবল রাউটিং সিদ্ধান্ত নেওয়ার জন্য ব্যবহৃত হয়। PREROUTINGকোনও রাউটিং সিদ্ধান্ত নেওয়ার সময় আপনার ব্যবহার করা উচিত অর্থাত্ প্যাকেটটি নেটওয়ার্কের মাধ্যমে ট্র্যাভার করা শুরু করার আগে যা সিদ্ধান্ত নেওয়া দরকার। এখানে উদাহরণস্বরূপ, আমরা যে কোনও ট্র্যাফিক সন্ধান করেছি যে কেবলমাত্র 80 বন্দর সার্ভারে পোর্ট 8080 এ পৌঁছেছে:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

ফরোয়ার্ড : নাম অনুসারে, প্যাকেটগুলি উত্স থেকে গন্তব্যে ফরোয়ার্ড করার FORWARDজন্য FILTERটেবিলের চেইন ব্যবহার করা হয়, এখানে উত্স এবং গন্তব্য দুটি পৃথক হোস্ট। সুতরাং, যেমনটি আপনি কল্পনা করতে পারেন FORWARDমূলত সার্ভারগুলিতে নিয়মগুলি ব্যবহার করা হয় যেখানে একটি হোস্ট অন্য হোস্ট থেকে সার্ভারের মাধ্যমে ট্র্যাফিক প্রেরণ / গ্রহণ করে। যখন প্যাকেটটি সার্ভার থেকে তৈরি করা হয় তখন চেইনটি OUTPUTঅর্থাত্ ট্র্যাফিক নিজেই থেকে বের হয়ে যায় যখন INPUTচেইন মানে প্যাকেটগুলি কেবল সার্ভারের জন্যই বোঝানো হয়। এখানে FORWARDচেইনের একটি উদাহরণ রয়েছে যেখানে হোস্টের জন্য TCPইন্টারফেসের eth0জন্য 80 পোর্টে প্রাপ্ত যে কোনও ট্র্যাফিক গ্রহণ করা 192.168.0.4হবে এবং এতে ফরোয়ার্ড করা হবে 192.168.0.4:

iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.0.4 -j ACCEPT

আপনার "হোস্ট" ব্যবহার অদ্ভুত বলে মনে হচ্ছে। কোন টেবিলটি ব্যবহৃত হয় যখন প্রধানত স্থানীয় ইন্টারফেসের উপর নির্ভর করে যখন একটি প্যাকেজ এসেছিল এবং প্রস্থানটি নির্ধারিত হয়।
গুটবার্ট

কোন অংশটি অদ্ভুত বলে মনে হচ্ছে? আমি প্রেরণ ও গ্রহণকারী দলগুলি নির্দেশ করার জন্য হোস্টের ধারণাটি ব্যবহার করেছি ..
হিমাইল

আমি পূর্বের অনুচ্ছেদের কথা বলছি: যখন একটি ইন্টারফেসের মাধ্যমে আসা প্যাকেটটি অন্য ইন্টারফেসের জন্য নির্ধারিত হয় (স্থানীয় হোস্টের বিপরীতে)
গন্টবার্ট

ওহ..ও..আমি এটা পেয়েছি .... হ্যাঁ আমার ইন্টারফেস ব্যবহার করা উচিত .... ছবিটি সহজ করার জন্য কেবল হোস্টগুলি ব্যবহার করুন..আমি যখন আমার কম্পিউটারের মুখোমুখি হব তখন তা পরিবর্তন হয়ে যাবে।
হিমাইল

@ গুন্টবার্ট: স্রেফ আমার মাথা সোজা হয়ে গেছে। আপনার শেষ মন্তব্যটি যথেষ্ট মনোযোগ সহকারে পড়েনি। আমি মনে করি আপনি FORWARDচেইনের জন্য দুটি ভিন্ন ইন্টারফেসের প্রসঙ্গে ভুল করছেন । ল্যানের এক হোস্ট থেকে ল্যানের অন্য হোস্টে প্যাকেট স্থানান্তরিত হওয়ার পরে, প্যাকেটগুলি কেবল একটি একক ইন্টারফেসের মধ্য দিয়ে যাবে এবং ব্যবহৃত চেইনটি হবে FORWARDযদিও এখানে সার্ভার (মাঝারি) একটি কঠোর অর্থে রাউটার হিসাবে কাজ করবে না বরং একটি স্যুইচ হিসাবে চিন্তা করা যেতে পারে।
হিমাইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.