স্থানীয়ভাবে iptables ব্যবহার করে আমি কীভাবে আউটবাউন্ড ট্র্যাফিক 80 পোর্টে পুনর্নির্দেশ করতে পারি?


19

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

এর NAT এবং প্রাক-রাউটিং ফাংশনগুলি ব্যবহার করে আমি এটি অর্জন করতে পারি iptables?

উত্তর:


30

এই iptablesনিয়ম ব্যবহার করে দেখুন:

$ sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination IP:80

উপরেরটি বলেছেন:

  • NAT টেবিলে নিম্নলিখিত নিয়ম যুক্ত করুন ( -t nat)।
  • এই নিয়মটি ( -A) বহির্মুখী ট্র্যাফিক ( OUTPUT) এ যুক্ত হবে।
  • আমরা কেবলমাত্র টিসিপি ট্র্যাফিকে আগ্রহী ( -p tcp)।
  • আমরা কেবল সেই ট্র্যাফিকের জন্য আগ্রহী যার গন্তব্য বন্দরটি 80 ( --dport 80)।
  • আমাদের যখন ম্যাচ হয়, তখন DNAT ( -j DNAT) এ ঝাঁপুন ।
  • এই ট্র্যাফিকটিকে অন্য কোনও সার্ভারের আইপি @ পোর্ট ৮০ ( --to-destination IP:80) তে রুট করুন ।

ডিএনএটি কি?

DNAT
    This target is only valid in the nat table, in the PREROUTING and OUTPUT 
    chains, and user-defined chains which are only called from those chains.
    It specifies that the destination address of the packet should be modified 
    (and all future packets in  this  connection will also be mangled), and
     rules should cease being examined.

তথ্যসূত্র


তার জন্য ধন্যবাদ তবে এটি কাজ করে বলে মনে হচ্ছে না। আমি তবে এটি খুঁজে পেয়েছি যা কাজ করে।
pjf

sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-গন্তব্য xx.xx.xx.xx: 3128
পিজেএফ

এটি কি কারণ এটি স্থানীয়ভাবে এবং কোনও গেটওয়ে দিয়ে নয়? আপনার এসএনএটি গেটওয়ে দিয়ে কাজ করবে?
pjf

@ পিজেএফ - আমিও তাই বিশ্বাস করি। আমি আমার উত্তর আপডেট করেছি।
slm

@ পিজেএফ - আমি উভয় নিয়ম পেয়েছি এবং উভয়ের সাথে আমার উত্তর আপডেট করার প্রক্রিয়াতে ছিলাম। যদিও আপনি কোন পরিস্থিতিতে ছিলেন তা আমি নিশ্চিত ছিলাম না।
slm

6

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

iptables -t nat -A OUTPUT -p tcp -d {ONLY_TO_THIS_DESTINATION} --dport 25 -j DNAT --to-destination {NEW_IP}:25

4

এটি আপনাকে সমস্ত আইপি ঠিকানায় পোর্ট অনুবাদ করার অনুমতি দিতে পারে। এখানে মূল পার্থক্যটি হল --to-destinationক্ষেত্রের একটি আইপি ঠিকানার অনুপস্থিতি ।

iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination :80

খুব দরকারী টিপ; ঠিক আমার যা দরকার ছিল বন্দরের নম্বর বাড়ানোর কোনও উপায় আছে কি? বলুন আমার কাছে 100 টি বন্দর রয়েছে এবং একটি নির্দিষ্ট পরিমাণে সেগুলি বাড়িয়ে তুলতে চাই।
জেডনেইক

আপনি কি বোঝাতে চেয়েছেন তা নিশ্চিত না। আপনি কি বাশে একটি লুপ লিখতে পারেন?
ফিলিপ আলভারেজ

100 iptables নিয়ম যুক্ত একটি লুপ কাজ করবে তবে এটি এটি ধীর করবে। আমি একক নিয়মে ক্রমাগত অনেকগুলি বন্দর বৃদ্ধি করতে এটি বলতে সক্ষম হতে পছন্দ করব।
Zdenek

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