একটি ইন্টারফেস থেকে অন্যটিতে প্যাকেটগুলি অনুলিপি করা হচ্ছে


9

আমার কাছে একটি লিনাক্স সিস্টেম রয়েছে (এটি এ হতে দিন) 2 ইথারনেট কার্ড সহ, এথ0 এবং এথ 1 যা দুটি সম্পূর্ণ অবাস্তব ল্যানের সাথে যুক্ত।

মূলত এথ 0 সাধারণ অ্যাপ্লিকেশন ট্র্যাফিকের জন্য ব্যবহৃত হয় এবং এথ 1 শুধুমাত্র ডিবাগিংয়ের উদ্দেশ্যে ব্যবহৃত হয়। ডিবাগিংয়ের অর্থ এথ 1 এর সাথে অন্য একটি লিনাক্স বাক্সের সাথে ক্রস কেবল ব্যবহার করে লিঙ্কযুক্ত (এটি বি হতে দিন) যা ওয়্যারশার্ক চালায়। আমি চাই তারশার্ক অ্যাপ্লিকেশন প্যাকেটগুলি A এর Eth0 এ ভ্রমণ করতে সক্ষম হতে পারে।

মূলত আমাকে এথ 0 ইন্টারফেস থেকে ইন্টারফেস এথ 1 এ ট্র্যাভেল প্যাকেটগুলি অনুলিপি করা দরকার যাতে বি বিতে থাকা ওয়্যারশার্কগুলি সেগুলি শুকিয়ে নিতে পারে (কিছু কারণে ল্যান এথ0 এ আমার শারীরিক অ্যাক্সেস নেই)। কিছু নিয়ম অনুসারে কোন প্যাকেটগুলি eth0 থেকে eth1 এ অনুলিপি করতে হবে তাও নির্দিষ্ট করে দিতে হবে (উপায় দ্বারা কেবলমাত্র TCP / IP ক্ষেত্রের ভিত্তিতে)।

আরও মনে রাখবেন যে A এর E00 প্রমিসিউস মোডে রাখার দরকার নেই কারণ আমি কেবল প্যাকেটের একটি উপসেটটি অনুলিপি করতে চাই যেখানে গন্তব্য হিসাবে A রয়েছে

একা iptables ব্যবহার করে এটি অর্জন করার কোনও উপায় আছে? অথবা এই কাজটি করার জন্য আমার কি কোনও অ্যাপ্লিকেশন লেখার দরকার আছে? প্যাকেটগুলি "অনুলিপি" করতে আমার কী করা উচিত?

উত্তর:


7

যদি আপনার কার্নেলটি সাম্প্রতিক পর্যায়ে থাকে তবে আপনি ইথ টেবিলগুলি ব্যবহার করতে পারেন - ETH0 থেকে ক্যাপচার মেশিনে ফ্রেম ফরোয়ার্ড করতে tee


সেই লিঙ্কটি এখন পাসওয়ার্ড সুরক্ষিত।
পাইপ

4

আপনি টিসি মিরর অ্যাকশন ব্যবহার করতে পারেন। উদাহরণস্বরূপ: আগত ট্র্যাফিকের জন্য:

tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: \
   protocol all prio 2 u32 \
   match u32 0 0 flowid 1:1 \
   action mirred egress mirror dev eth1

বহির্গামী ট্র্যাফিকের জন্য:

tc qdisc replace dev eth0 parent root handle 10: prio
tc filter add dev eth0 parent 10: \
   protocol all prio 2 u32 \
   match u32 0 0 flowid 10:1 \
   action mirred egress mirror dev eth1

3

টিসিপিব্রিজের জন্য নেট অনুসন্ধান করুন, যা কাজটি ঠিক তাই করে। এটি ভার্চুয়াল মেশিনগুলির সাথে কথা বলতেও ব্যবহৃত হতে পারে।


1

রিনেটডের মতো কিছু কাজ করতে পারে ( কেবলমাত্র টিসিপির জন্য পুনর্নির্দেশক / সার্ভার কেবল আমি বিশ্বাস করি, সুতরাং কোনও এআরপি, স্তর 2 ইত্যাদি নয়), তবে সমস্ত সততার সাথে, কিছু পরিচালিত সুইচ পাওয়া যায় যা পোর্ট মিরর করার ক্ষমতা রাখে বা যদি সেই বাক্সটি কেবল ওয়্যারশার্কের জন্য ব্যবহৃত হয়, আপনি এটিতে আরও একটি এনআইসি যুক্ত করতে পারেন, দুটি ইন্টারফেস ব্রিজ করতে পারেন, এটিকে মেশিন এ এর ​​এথ0 এর সামনে রেখে দিতে পারেন এবং একটি নিবেদিত স্নিফিং মেশিন রাখতে পারেন।


1

একটি ডিভাইস যা ইথারনেট ফ্রেমগুলি এক ইন্টারফেস থেকে অন্য ইন্টারফেসে অনুলিপি করে সেতু হয়। সেতু হিসাবে কাজ করতে আপনি আপনার লিনাক্স সিস্টেমটি কনফিগার করতে পারেন। কিছু ডকুমেন্টেশন এখানে পাওয়া যাবে:

আপনি ইবেটবেলগুলি ব্যবহার করে ব্রিজড ট্র্যাফিকে ফিল্টারিংয়ের নিয়ম প্রয়োগ করতে পারেন , যা iptablesস্তর 2 ট্র্যাফিকের একটি অ্যানালগ ।


0

আমার সেটআপে মাল্টিকাস্টে টিএক্স ট্র্যাফিক আইপটবেবল দ্বারা চিহ্নিত করা হয়েছিল তবে নতুন রাউটিং টেবিলগুলি ব্যবহার করে পলিসি রাউটিং কখনও কাজ করেনি। যদিও এটি ইউনিকাস্ট টিএক্স প্যাকেটগুলির জন্য কাজ করেছে (উত্স প্যাকেটগুলি এথ 0 থেকে এথ 5 এ পুনঃনির্দেশিত)। সিসিআরসি ম্যাক এবং এসআরসি আইপি ঠিকানাটি এথ 5 এর পরিবর্তিত হয়ে গেছে তাই স্যুইচ শিখতে সমস্যা তৈরি করবে না। কার্নেল প্যাকেট নির্ধারণের জন্য সমস্ত কর্নেল সমর্থন CONFIG_NET_SCHED অবশ্যই সক্ষম থাকতে হবে

ইউনিকাস্ট এবং মাল্টিকাস্ট ট্র্যাফিকের জন্য E00 থেকে E5 এ পুনর্নির্দেশের জন্য ওয়ার্কস এর নীচে

নেটফিল্টারটি কার্নেলের কোনও প্যাকেটের প্রতিনিধিত্বকারী কাঠামোর সাথে সরাসরি ইন্টারঅ্যাক্ট করতে ব্যবহার করা যেতে পারে। এই কাঠামো, sk_buff, "__u32 nfmark" নামক একটি ক্ষেত্র রয়েছে যা আমরা সংশোধন করতে যাচ্ছি। টিসি এর পরে কোনও প্যাকেটের গন্তব্য শ্রেণি নির্বাচন করতে সেই মানটি পড়বে।

IP_ADDR_ETH0 = ifconfig eth0 | grep 'inet addr'| cut -d ':' -f 2 | cut -d ' ' -f 1 | tr -d '\n' iptables -t ম্যাঙ্গেল -A OUTPUT -s {{IP_ADDR_ETH0} -p udp - ম্যাচ মাল্টিপোর্ট - ডিপোর্স 329,330 -o এথ0-জে মার্ক - সেট-চিহ্ন 2

এমন একটি গাছ তৈরি করতে যা যা আমাদের শিডিয়ুলিং নীতি উপস্থাপন করে এবং এটি পিআরআইও কিউডিস্ক (প্যাকেট শিডিয়ুলার) ব্যবহার করে (অন্যান্য উপলব্ধগুলির চেষ্টা করতে পারে)। qdiscs একটি ডিভাইসের গোড়ায় সংযুক্ত হচ্ছে

tc qdisc dev eth0 রুট হ্যান্ডেল 15: প্রিও যোগ করুন

এখন একদিকে ট্র্যাফিক শেপিং নীতি রয়েছে এবং অন্যদিকে প্যাকেটগুলি চিহ্নিত করছে। দুটি সংযোগ করতে, আমাদের একটি ফিল্টার প্রয়োজন।

ম্যান টিসি-মিরর (8) দেখুন: মিররযুক্ত ক্রিয়া প্যাকেটটি মিররিং (অনুলিপি করা) বা প্যাকেটটি পুনর্নির্দেশের (চুরি) অনুমতি দেয় it মিররিং হ'ল যা কখনও কখনও সুইচ পোর্ট অ্যানালাইজার (স্প্যান) হিসাবে পরিচিত এবং সাধারণত বিশ্লেষণ এবং / অথবা ডিবাগ প্রবাহ হিসাবে ব্যবহৃত হয়।

man tc-fw (8) দেখুন: fw - fwmark ট্র্যাফিক কন্ট্রোল ফিল্টার fw ফিল্টার iptables দ্বারা পূর্ববর্তী সেট fwmark এর উপর ভিত্তি করে প্যাকেটগুলিকে শ্রেণিবদ্ধ করতে দেয়। যদি এটি ফিল্টারটির 'হ্যান্ডেল' এর অনুরূপ হয় তবে ফিল্টারটি মেলে। আইপটিবলগুলি মার্ক চিহ্নের সাথে একক প্যাকেটগুলি চিহ্নিত করতে দেয় বা কনকমার্ক ব্যবহার করে পুরো সংযোগগুলি দেয়।

MAC_ADDR_ETH1 = cat /sys/class/net/eth1/address IP_ADDR_ETH1 = ifconfig eth1 | grep 'inet addr'| cut -d ':' -f 2 | cut -d ' ' -f 1 | tr -d '\n' টিসি ফিল্টার যোগ করুন eth0 পিতা 15: 0 প্রোটোকল আইপি প্রিও 1 হ্যান্ডেল 0x2 fw অ্যাকশন প্যাডিট প্রাক্তন মুঞ্জ ইথ এসসিআর সেট করুন $ {MAC_ADDR_ETH1} পাইপ \ অ্যাকশন পেডিট প্রিপ মুঞ্জ ip src সেট red TH red_rdR পাইপ_ eg দেব এথ 1

উপরোক্ত সেট বিধিগুলি দেখান: tc qdisc প্রদর্শন dev eth0 টিসি ফিল্টার শো ডেভ এথ0

উপরের সেট বিধিগুলি মোছা / আনসেট করুন: tc qdisc del dev eth0 root

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.