টিসিপি হোস্ট থেকে আসা ট্র্যাফিক "সম্পাদনা" করার সহজ উপায় (লিনাক্স)


9

পরিচিত টিসিপি হোস্টের কাছ থেকে আগত ট্র্যাফিকের জন্য আমাকে কিছুটা ছোট ছোট পরিবর্তন করতে হবে: সংযোগটি পরিচালনা করার প্রক্রিয়াটি প্রবাহের আগে পোর্ট করার আগে।

উদাহরণস্বরূপ, 192.168.1.88 কে একটি রিমোট হোস্ট হতে দিন যা একটি ওয়েব সার্ভার চালায়।
আমি যে প্রয়োজন, যখন আমার স্থানীয় হোস্ট একটি প্রক্রিয়া থেকে 192.168.1.88:80 (যেমন ব্রাউজার) তথ্য পায় প্রতিস্থাপন, ডাটা প্রথম পরিবর্তিত হয় text-Aসঙ্গে text-B, এভাবে:

  • 127.0.0.1: ... 192.168.1.88:80 এর সাথে সংযুক্ত
  • 127.0.0.1: ... 192.168.1.88:80 এ পাঠায়:

    GET /
    
  • 192.168.1.88:80 127.0.0.1 এ পাঠায়: ...:

    HTTP/1.0 200 OK
    Content-Type: text/plain
    
    Some text-A, some other text
    
  • এই ডেটাটি কিছুটা সিস্টেম দ্বারা বাধা হয়ে থাকে এবং এমন একটি প্রোগ্রামে দেওয়া হয় যার ফলাফল:

    HTTP/1.0 200 OK
    Content-Type: text/plain
    
    Some text-B, some other text
    
  • সিস্টেমটি 127.0.0.1 হ্যান্ডলিংয়ের প্রক্রিয়াটিকে এত পরিবর্তিত ডেটা দেয়: ... যেমন এটি 192.168.1.88:80 থেকে আসে।

ধরে নিলাম এই পরিবর্তনগুলি করার জন্য আমার কাছে স্ট্রিম-ভিত্তিক উপায় রয়েছে ( sedউদাহরণস্বরূপ ব্যবহার করে ), আগত টিসিপি স্ট্রিমটিকে প্রাক-প্রক্রিয়া করার সহজতম উপায় কী?

আমি অনুমান করি এটি জড়িত হবে iptables, কিন্তু আমি এটি খুব ভাল না।

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


এই এইচটিটিপি অনুরোধ?
বহুব্যাপী

আপনার প্রশ্ন যথেষ্ট পরিষ্কার নয়। আপনাকে আরও বিশদ সরবরাহ করতে হবে।
খালেদ

1
আপনি প্যাকেট স্তরে এটি করতে পারবেন না। একটি প্যাকেটে "টেক্সট" থাকতে পারে এবং পরবর্তীটিতে "এ" থাকতে পারে। আপনাকে একটি অদৃশ্য প্রক্সি তৈরি করতে হবে যা প্রোটোকল অনুসরণ করে। (আপনাকে প্রোটোকলটি অনুসরণ করতে হবে কারণ আপনি যদি "টেক্সট-" পান এবং এটি "টেক্সট-এ" এর অংশ হয় তবে আপনাকে পরবর্তী খণ্ডটি পাস করার আগে অপেক্ষা করতে হবে বা আপনার ফিল্টারটি কাজ করবে না But তবে এটি যদি শেষ হয় একটি যৌক্তিক বার্তার, আপনি অপেক্ষা করতে পারবেন না কারণ আপনি চিরকাল অপেক্ষা করছিলেন be) আমি বিশ্বাস করি এটি করার কোনও সহজ উপায় নেই।
ডেভিড শোয়ার্টজ

ইতিমধ্যে বিদ্যমান রাষ্ট্রীয় প্যাকেট পরিদর্শন ব্যবস্থা রয়েছে যা এফটিপি ট্র্যাফিকের পুনর্লিখন করতে পারে যাতে এটি সমগ্র এনএটি জুড়ে কাজ করে। এটি শুরু করার জন্য সাজানোর জায়গা।
pjc50

প্রাথমিকভাবে HTTP প্রতিক্রিয়া নিয়ে কাজ করা আমার এটি দরকার তবে এটি কোনও অ্যাপ্লিকেশন স্তরে কাজ করলে ভাল হবে good
এটুয়ার্ডু

উত্তর:


21

নেটযুক্ত এবং iptables প্রক্সি ব্যবহার করুন।

iptables -t nat -D PREROUTING -s yourhost -d desthost -p tcp --dport 80 -j REDIRECT --to 10101

তারপরে চালান:

netsed tcp 10101 desthost 80 s/text-A/text-B

নেটএসইডি হ'ল একটি ছোট এবং হ্যান্ডেল ইউটিলিটি যা বাস্তব সময়ে পরিবর্তনের জন্য ডিজাইন করা হয়েছে, প্যাকেটের সামগ্রীগুলি আপনার নেটওয়ার্কের মাধ্যমে ফরওয়ার্ড করা হয়েছে। নেটওয়ার্ক প্যাকেটের পরিবর্তন, ফোরজি বা হেরফেরের জন্য এটি সত্যই কার্যকর। নেটএসইডি সমর্থন করে:

  • ব্ল্যাক-বাক্স প্রোটোকল অডিটিং - যখনই দু'টি বা তার বেশি মালিকানাধীন বাক্স রয়েছে যখন কোনও অনিবন্ধিত প্রোটোকল ব্যবহার করে যোগাযোগ করে। চলমান সংক্রমণে পরিবর্তনগুলি প্রয়োগ করে, আপনি যদি পরীক্ষার অ্যাপ্লিকেশনটিকে নিরাপদ দাবি করা যায় তবে আপনি পরীক্ষা করতে সক্ষম হবেন।

  • অস্পষ্টতা তৈরির পরীক্ষা-নিরীক্ষা, অখণ্ডতা পরীক্ষা - যখনই আপনি কোনও অ্যাপ্লিকেশনটির স্থায়িত্ব পরীক্ষা করেন এটি দেখার জন্য এটি কীভাবে ডেটা অখণ্ডতার জন্য যত্নশীল;

  • অন্যান্য সাধারণ ব্যবহারের ক্ষেত্রে: প্রতারণামূলক স্থানান্তর, সামগ্রী ফিল্টারিং, প্রোটোকল রূপান্তর - যা আপনার হাতের কাজটি সেরা ফিট করে।


এটা সত্যিই সহজ এবং দুর্দান্ত।
mbrownnyc

আমি জানতাম না netsed, এটি আমার উদ্দেশ্যে প্রায় পুরোপুরি ফিট করে। কেবলমাত্র আমি পাই না যে কীভাবে "স্থানীয় স্বচ্ছ প্রক্সি" সেট আপ করবেন (প্রশ্নটি দেখুন)। এটি পেতে সম্ভবত আমার অন্য একটি (ভার্চুয়াল) নেটওয়ার্ক ইন্টারফেস সেট আপ করা উচিত। যাইহোক, আপাতত এটি সবচেয়ে সন্তোষজনক উত্তর।
ইটুয়ার্ডু

আপনি কি জেনেরিক ডিস্ট্রিবিউশন কার্নেল চালাচ্ছেন? আপনি যদি আইপটিবল হন তবে সম্ভবত সমর্থনটি ইতিমধ্যে সংকলিত আছে transparent স্বচ্ছ প্রক্সি সেট আপ করতে আপনার হোস্ট / পোর্টগুলির জন্য উপযুক্ত বিশদটি পূরণ করতে হবে। রিডমে একবার দেখুন এবং দেখুন যে এটি কিছু বিবরণে পূরণ করে। silicone.homelinux.org/git/netsed.git/blob_plain/HEAD:/README
Dfc

আমি ভেবেছি নেটযুক্ত একবারে কেবল একটি প্যাকেটে কাজ করবে? সুতরাং যদি http অনুরোধটি দুটি প্যাকেটের মধ্যে বিভক্ত হয়ে যায় তবে প্রতিস্থাপনের জন্য রেজেক্সটি মেলে না এবং অনুরোধটি সার্ভারে অশোধিত হয়ে যাবে।
paulos

1
ঠিক আছে এখন, যদি কারও একদিন এটির প্রয়োজন হয়: আমি এটি পুরোপুরি বুঝতে পারি তা নয়, তবে বাস্তবে আউটগোয়িং প্যাকেটগুলি পরিবর্তনের জন্য (যা অপটি করতে চায় না), আপনাকে পরিবর্তন করতে হবে OUTPUT, না PREROUTING। এছাড়াও, -Dবিকল্পটি -A আমার জন্য ছিল । এছাড়াও, -jবিকল্পের জন্য, আমাকে DNAT --to-destination (ip) বা ব্যবহার করতে হয়েছিল REDIRECT --to-port। অবশেষে, আমি নেসেডের সেগমেন্টেশন ত্রুটিটি ঠিক করতে পারিনি। আরও দেখুন: উবুন্টুফর্মস.org
শোথ্রেড.এফপি?


3

iptables+ লাইবনেট ফিল্টার_কিউ এর ব্যবহার হ'ল আরেকটি বিকল্প যা আপনার ইচ্ছা অনুযায়ী করবে:

"... [পুনরায় প্রত্যাবর্তন] কার্নেল এনফনেটলিঙ্ক_কুই সাবসিস্টেমের পরিবর্তিত প্যাকেটগুলি।"

কোড সফ্টওয়্যার আপনার উপর নির্ভর করে এটি সম্ভবত আপনাকে সবচেয়ে এক্সটেনসিবিলিটি দেবে।

আছে আলোয়ান একটি পাইথন প্রাপ্তিসাধ্য হিসাবে ভাল।


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