टीसीपी और यूडीपी दोनों बंदरगाहों को सुनने के लिए ओपनवीपीएन कैसे बनाएं


13

मैंने चारों ओर खोज की है और केवल एक चीज जो मुझे मिली है वह यह है कि "हां, ओपनवीपीएन टीसीपी पर कनेक्शन का समर्थन करता है" , लेकिन मुझे उस समय दोनों प्रोटोकॉल के लिए एक ही पोर्ट को सुनने के लिए ओपनवीएनएन सर्वर के साथ ज़बरदस्ती करने का कोई तरीका नहीं मिला है। । मैंने नल इंटरफेस बनाने के बारे में कुछ बहुत पुराने मार्गदर्शक पाए हैं , या उसी समय चल रहे कॉन्फ़िगरेशन के साथ सर्वर का एक और उदाहरण देने की सिफारिश की है। पूर्व कुछ सरल के लिए बहुत जटिल लगता है, और बाद में अप्रचलित लगता है।

जवाबों:


11

एक ही Openvpn प्रक्रिया एक ही समय में UDP और TCP सॉकेट पर नहीं सुन सकती है।

आपके पास दो अच्छे विकल्प हैं:

  1. Openvpn के लिए दो टैप इंटरफेस का उपयोग करें। दो ओपनवीएनपी सर्वर प्रक्रियाएं करें, प्रत्येक टैप इंटरफ़ेस के लिए एक; एक को UDP पर सुनना चाहिए, दूसरा TCP पर। सर्वर पर इन दो टैप इंटरफेस को ब्रिज करें।

  2. दो ट्यून इंटरफेस का उपयोग करें। इन पर पाबंदी नहीं लगाई जा सकती, इसलिए यदि आप टीसीपी और यूडीपी ग्राहकों के बीच आईपी स्थान साझा करना चाहते हैं, तो आपको http://thomas.gouverneur.name/2014/02/openvpn-learn-address पर एक स्क्रिप्ट का उपयोग करने की आवश्यकता होगी सुनिए-ऑन-tcp-and-udp-with-tun / (हालाँकि, यह विशिष्ट स्क्रिप्ट a / tmp symlink हमले के लिए असुरक्षित है, इसलिए यदि आप इसका उपयोग करते हैं तो लॉगिंग / tmp को हटा दें)।

तीसरा विकल्प सिर्फ दो ओपनवैप इंस्टेंस को चलाना है और दोनों के लिए अलग क्लाइंट आईपी स्पेस असाइन करना है (उदाहरण के लिए, एक ही / 25 एक ही / 24 सबनेट से)। यह ब्रिजिंग और सीखने-पता स्क्रिप्ट की आवश्यकता से बचा जाता है।

संपादित करें: जब से मुझे इस तरह की सीख-पता की स्क्रिप्ट की आवश्यकता थी, मैंने एक लिखा। मैं इसे पब्लिक डोमेन में रखता हूं।

#!/bin/sh
#
# This script allows an openvpn server with several openvpn instances that
# use tun interfaces to share client IP space by adjusting the routing table
# to create entries towards specific clients as needed

action="$1"
addr="$2"
cn="$3" # not used, but it's there; you could e.g. log it

case "$action" in
        add)
                echo "sudo ip ro add $addr/32 dev $dev" >&2
                exec sudo ip ro add $addr/32 dev $dev
                ;;
        delete)
                echo "sudo ip ro del $addr/32 dev $dev" >&2
                sudo ip ro del $addr/32
                exit 0 # ignore errors
                ;;
        update)
                echo "sudo ip ro change $addr/32 dev $dev" >&2
                exec sudo ip ro change $addr/32 dev $dev
                ;;
esac

यह स्क्रिप्ट स्टैडर में लॉग इन करता है, जिसे ओपनवीएनएन लॉग में समाप्त होना चाहिए।


4

यदि आप चाहते हैं कि आपका OpenVPN सर्वर UDP पोर्ट के बजाय TCP पोर्ट पर सुने, तो proto tcpइसके बजाय का उपयोग करें proto udp(यदि आप चाहते हैं कि OpenVPN UDP और TCP पोर्ट दोनों पर सुने, तो आपको दो अलग-अलग OpenVPN इंस्टेंस चलाने होंगे)।

क्या आपका मतलब है कि यह पृष्ठ अप्रचलित है?

मुझे लगता है कि आप दो ओपनवीपीएन सर्वर (टीसीपी के लिए एक, यूडीपी के लिए एक) चला सकते हैं, उनमें से प्रत्येक को ट्यून के साथ जोड़ सकते हैं, और फिर ट्यून्स को कनेक्ट कर सकते हैं।


1
tunइंटरफेस में MAC लेयर नहीं होती है और इस तरह यह एक ब्रिज का सदस्य नहीं हो सकता है। यदि आप ब्रिजिंग चाहते हैं, तो आपको tapइंटरफेस का उपयोग करने की आवश्यकता है ।
एंड्रस कोर्न
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.