केवल एक वीपीएन पर वर्चुअलबॉक्स वीएम से ट्रैफ़िक कैसे रूट करें?


10

मुझे एक वर्चुअलबॉक्स वीएम (होस्ट और गेस्ट उबंटू मैवरिक दोनों) मिला है। मेरा वीपीएन प्रदाता TUN को सेटअप करने के लिए OpenVPN का उपयोग करता है। मैं चीजों को स्थापित करना चाहता हूं ताकि वीएम से ट्रैफ़िक केवल वीपीएन पर चला जाए और वीपीएन के नीचे चले जाने पर इसे गिरा दिया जाए (ऐसा हुआ)। सुझाव? मेरा iptables-fu थोड़ा कमजोर है

मैंने क्या करने की कोशिश की: वर्चुअलबॉक्स के "होस्ट-ओनली नेटवर्किंग" का उपयोग करना जो आपको अतिथि को होस्ट पर एक vboxnet0 लूपबैक इंटरफ़ेस देता है, लेकिन iptables / मार्गों को ठीक से नहीं मिला। मैं NAT पर VM से बचना चाहूंगा, क्योंकि मैं पहले से ही NAT NAT (ISP & home router) डबल हूं और एक और स्तर मेरे सिर को पॉप बना देगा।

अन्य संभावनाएं: टीएपी (कैसे?) पर स्विच करना और वीएम से ब्रिजिंग करना। वीएम के अंदर वीपीएन बनाना और वीपीएन को छोड़कर सभी eth0 ट्रैफिक को फ़िल्टर करना iptables के साथ जुड़ता है (लेकिन नीचे देखें)

बोनस अंक: यदि आप मुझे बता सकते हैं कि मेजबान और अतिथि पर विभिन्न वीपीएन निकास बिंदुओं का उपयोग कैसे करें, तो मेजबान के वीपीएन के माध्यम से अतिथि से डबल-टनलिंग ट्रैफ़िक के बिना।

जवाबों:


4

अन्य समाधान होंगे, लेकिन मैं यही सोच रहा हूं:

  1. VM को ब्रिज मोड में सेट करें। यह आपके वर्चुअल मशीन को आपके होस्ट के समान नेटवर्क में एक आईपी एड्रेस देगा।
  2. मेजबान पर वीपीएन सेट करें, मान लें कि यह ट्यून 0 है।
  3. होस्ट पर रूटिंग को सक्षम करें echo 1 > /proc/sys/net/ipv4/ip_forward
  4. वीएम को डिफ़ॉल्ट आईपी के रूप में होस्ट आईपी पते के साथ सेट करें।

इस बिंदु पर, मेजबान के पास वीपीएन कनेक्शन है, और वीएम मेजबान को सभी ट्रैफ़िक को रूट करेगा। यह सब करने के लिए मेजबान को प्रतिबंधित कर दिया जाता है ताकि यह अतिथि को किसी भी ट्रैफ़िक को रूट करने की अनुमति न दे जो ट्यून डिवाइस के माध्यम से नहीं जा रहा है। आप ऐसा कुछ iptables नियमों के एक सेट के साथ कर सकते हैं:

iptables -P FORWARD DROP
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

वह काम करना चाहिए । पहला नियम फ़ोरवर्ड श्रृंखला में DROP पैकेट के लिए एक डिफ़ॉल्ट नीति निर्धारित करता है। यह केवल उन पैकेटों को प्रभावित करता है जो आपके होस्ट को रूट करेंगे, न कि होस्ट को पैकेट (INPUT) या होस्ट (OUTPUT) से। दूसरा नियम किसी भी ट्रैफ़िक को अनुमति देता है जो ट्यून-आउट कर रहा है - यदि आप चाहते हैं तो आप - सोर्स से कस सकते हैं। और आखिरी नियम को ट्यून से वीएम पर वापस जाने के लिए उत्तरों को वापस आने देना चाहिए।

क्या आपका वीपीएन, ट्यूल इंटरफेस पर सभी पैकेटों की एकल आईपी से होने की उम्मीद कर रहा है? यदि हां, तो आप NAT नियम भी जोड़ना चाहेंगे। शायद कुछ इस तरह:

iptables -t nat -A POSTROUTING -o tun0 -j SNAT --to-source {your host tun0 ip}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.