OpenVPN के माध्यम से सभी ट्रैफ़िक को रूट करें


39

हां, यह सवाल सौ बार पूछा गया है, और मैंने हर जगह खोजा है, कोई फायदा नहीं हुआ।

सच में, शीर्षक सब कुछ कह देता है।

मेरे पास एक OpenVPN सर्वर (ubuntu पर) है, और मैं इसे अपने क्लाइंट (विंडोज 8) के माध्यम से कनेक्ट कर सकता हूं ...

समस्या तब शुरू होती है जब मैं वीपीएन के माध्यम से सभी ट्रैफ़िक को रूट करने का प्रयास करता हूं।

मैंने pushserver.conf में झंडे जोड़े हैं :

push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"

जब मैं क्लाइंट से कनेक्ट करता हूं, तो क्लाइंट आउटपुट करता है:

Wed May 07 21:38:40 2014 SENT CONTROL [StretchVPN-CA]: 'PUSH_REQUEST' (status=1)
Wed May 07 21:38:41 2014 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 8.8.8.8,route-gateway <Remote Router IP>,ping 10,ping-restart 120,ifconfig 192.168.0.201 255.255.255.0'
Wed May 07 21:38:41 2014 OPTIONS IMPORT: timers and/or timeouts modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: --ifconfig/up options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: route options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: route-related options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed May 07 21:38:41 2014 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed May 07 21:38:41 2014 open_tun, tt->ipv6=0
Wed May 07 21:38:41 2014 TAP-WIN32 device [Local Area Connection 4] opened: \\.\Global\{1F145805-92FC-454E-8FD9-0A6017DD4AD1}.tap
Wed May 07 21:38:41 2014 TAP-Windows Driver Version 9.9
Wed May 07 21:38:41 2014 Notified TAP-Windows driver to set a DHCP IP/netmask of 192.168.0.201/255.255.255.0 on interface {1F145805-92FC-454E-8FD9-0A6017DD4AD1} [DHCP-serv: 192.168.0.0, lease-time: 31536000]
Wed May 07 21:38:41 2014 Successful ARP Flush on interface [35] {1F145805-92FC-454E-8FD9-0A6017DD4AD1}
Wed May 07 21:38:46 2014 TEST ROUTES: 1/1 succeeded len=0 ret=1 a=0 u/d=up
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD <Remote Router IP> MASK 255.255.255.255 172.20.10.1
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=25 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 192.168.0.3
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 192.168.0.3
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 Initialization Sequence Completed

मैंने कनेक्शन खोलते समय क्लाइंट साइड पर झंडे का उपयोग करने की कोशिश की है:

openvpn --config "C:\Program Files\OpenVPN\config\client.ovpn" --redirect-gateway def1 --route-method exe

लेकिन फिर भी, जब मैं whatsmyip.org पर जाता हूं, तब भी यह मेरे क्लाइंट को आई पी कहता है।

किसी को भी इस समस्या थी और इसे हल करने में कामयाब रहे?

बहुत धन्यवाद


क्या आपने push "route 0.0.0.0 0.0.0.0"मार्गों को धकेलने की कोशिश की या अनुकरणीय? वीपीएन में मार्ग को मत भूलना!
लब

हाँ, यह ऑटमेटिक रूप से किया जाता है जब पुश "रीडायरेक्ट-गेटवे डिफ 1" का उपयोग किया जाता है ... यह 0.0.0.0 मास्क 127.0.0.0 और 127.0.0.0 मास्क 127.0.0.0 जोड़ता है (पहले से ही वहां से हटाए बिना डिफ़ॉल्ट मार्ग को ओवरटेक कर रहा है
बस लकी रियली

मुझे चिंता है अगर आप क्लाइंट को विंडोज़ में "रन अस एडमिनिस्ट्रेटर" के रूप में चला रहे हैं! यदि आप OVPN Windows क्लाइंट को व्यवस्थापक चलाए बिना चलाते हैं तो यह समस्या हो सकती है।
कौशा

जवाबों:


35

मैंने एक ओपनवीपीएन सर्वर का उपयोग करके इसका परीक्षण किया है और क्लाइंट और सर्वर कॉन्फिगरेशन में रीडायरेक्ट-गेटवे डेफ़ 1 विकल्प को ठीक करता है। जब मैं whatismyip.org पर पहुंचता हूं तो मुझे मेरा OpenVPN सर्वर का IP दिखाई देता है। नीचे क्लाइंट कॉन्फिग का उपयोग किया गया है:

client
dev tun
proto udp
# THE IP OF THE REMOTE OPENVPN SERVER:
remote ip_address port
resolv-retry infinite
nobind
persist-key
persist-tun
# THE CSR FILE:
pkcs12 certificate.p12
ns-cert-type server
cipher AES-256-CBC
comp-lzo
redirect-gateway def1
verb 3

मैंने ओपनवैप कमांड के लिए रीडायरेक्ट-गेटवे डीएफ 1 विकल्प के साथ भी परीक्षण किया है और उसी परिणाम को प्राप्त किया है। सर्वर कॉन्फ़िगरेशन है:

port 1194
proto udp
dev tun

dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ca /etc/openvpn/easy-rsa/keys/ca.crt
# ENSURE THE DOMAIN NAME/FILENAME IS CORRECT:
cert /etc/openvpn/easy-rsa/keys/cert.crt
key /etc/openvpn/easy-rsa/keys/cert.key

server 10.5.3.0  255.255.255.0
# YOUR LOCAL SERVER IP HERE:
client-config-dir ccd
route 10.5.3.0 255.255.255.0
ifconfig-pool-persist ipp.txt
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun

status log/openvpn-status.log 5
status-version 2
log-append log/openvpn.log
verb 3  # verbose mode
management localhost port /etc/openvpn/management-password

# ROUTE THE CLIENT'S INTERNET ACCESS THROUGH THIS SERVER:
push "redirect-gateway def1"
push "remote-gateway vpn_server_ip"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 60

कोशिश की कि आज ... फिर भी किस्मत नहीं। मुझे लगता है कि आप एक TAP अडैप्टर के बजाय एक TUN अडैप्टर का उपयोग कर रहे हैं ... मैं इसके बजाय एक रिपोर्ट देता हूं और वापस रिपोर्ट करता हूं: D
जस्ट लकी रियली

1
ओकी, एक TUN अडैप्टर का उपयोग करना काम करने लगता है ... हालाँकि मैं उन मार्गों से थोड़ा परेशान हो रहा हूँ जिन्हें मुझे असाइन करने की आवश्यकता है ... मैं वीपीएन नेटवर्क के लिए 192.168.1.0/24 और 192.168.0.0/ का उपयोग कर रहा हूँ। 24 मेरा सर्वर लैन है। इसलिए मेरे सर्वर कॉन्फिगर में, मैंने जोड़ा है route 192.168.1.0 255.255.255.0और push "route 192.168.0.0 255.255.255.0"लेकिन मेरे क्लाइंट को 192.168.1.0/24 नेट के अलावा किसी भी अन्य सबनेट तक पहुंच नहीं मिल रही है ... मैं थोड़ा और आसपास घूमूंगा
जस्ट लकी रियली

19

शायद आप अपने NAT को संशोधित करना भूल गए? उन 3 कमांड को रूट के रूप में चलाएं

आदेश:

iptables -I FORWARD -i tun0 -o eth0 \
         -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
         -j ACCEPT

iptables -t nat -I POSTROUTING -o eth0 \
          -s 10.8.0.0/24 -j MASQUERADE

कैप्शन:

  • tun0: आपका वर्चुअल वीपीएन नेटवर्ककार्ड
  • eth0: आपका सामान्य नेटवर्ककार्ड
  • 10.8.0.0: आपका वीपीएन नेटवर्क आईपी ब्लॉक

1
यह NAT संशोधन कदम बहुत महत्वपूर्ण है। मैं सिर्फ 3 कमांड से ऊपर निष्पादित किए बिना यह काम नहीं कर सका।
नितेश कुमार आनंद

6
ध्यान दें कि इन आदेशों को क्लाइंट के नहीं, ओपनवैप सर्वर पर चलाने की आवश्यकता है।
केम मेसन

1
मैंने पाया कि केवल natटेबल को संशोधित करना मेरे सर्वर पर भी काम कर रहा था।
गिन्हिंग

1
क्या ओपन वीपीएन सर्वर रिबूट होने की स्थिति में हमें iptables नियमों को जारी रखने की आवश्यकता है?
DWils

@ डिल्स हां, आपको उन्हें कुछ स्टार्टअप स्क्रिप्ट में डालने की आवश्यकता है। इस प्रश्नोत्तर की जांच करें: askubuntu.com/questions/270693/…
Arne

1

एक कठिन उत्तर की तलाश के बाद ऐसा लगता है कि मैंने इसे हल कर लिया है, शायद आंशिक रूप से, लेकिन कम से कम बहुत सरलता से:

मैं मुख्य स्रोत से Xubuntu 14.04 और OpenVPN पैकेज का उपयोग करता हूं। में सेटिंग> सिस्टम> नेटवर्क , मैं पहले से इंस्टॉल DNS-पते की जगह 127.0.1.1गूगल के साथ 8.8.8.8, और अब मैं सभी यातायात वीपीएन सर्वर के माध्यम से जा देख सकते हैं।

Wireshark की तालिका में DNS के रूप में ऐसी स्ट्रिंग अनुपस्थित है: सभी डेटा एन्क्रिप्टेड चैनल के माध्यम से टीसीपी की तरह जाता है। जब मैं tun0(नोटबुक के आंतरिक) को देखता हूं तो मैं डीएचसीपी और डीएनएस ट्रैफिक देख सकता हूं । जब मैं wlan0यातायात (नोटबुक और वाईफाई राउटर के बीच बाहरी) का पता लगाता हूं तो मुझे केवल ग्रे टीसीपी पैकेज मिलते हैं।

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

मुझे आपके विचार जानकर खुशी होगी, अगर मैं पूरी तरह से गलत हूं तो आश्चर्य नहीं होगा


मैं भूल गया: इस पद्धति का एक निर्विवाद लाभ है - यह तब भी काम करता है जब कोई वीपीएन-सर्वर डीएनएस-रीरूटिंग का समर्थन नहीं करता है।
xrobot

वैसे, हम एक तरकीब कर सकते हैं: यदि हम समय-समय पर झूठे दिखने वाले मासूम डीएनएस-प्रश्नों को भेजेंगे, तो अप्रत्यक्ष रूप से यह बिग ब्रदर के प्रति हमारी वफादारी की पुष्टि हो सकती है।
xrobot

1

सर्वर कॉन्फ़िगरेशन फ़ाइल में निम्न निर्देश जोड़ें:

push "redirect-gateway def1"

यदि आपका वीपीएन सेटअप एक वायरलेस नेटवर्क पर है, जहां सभी क्लाइंट और सर्वर एक ही वायरलेस सबनेट पर हैं, तो स्थानीय ध्वज जोड़ें:

push "redirect-gateway local def1"

ग्राहकों को रीडायरेक्ट-गेटवे विकल्प पुश करने से OpenVPN सर्वर के माध्यम से पारित करने के लिए क्लाइंट मशीनों पर होने वाले सभी आईपी नेटवर्क ट्रैफ़िक उत्पन्न होंगे। इस ट्रैफ़िक से निपटने के लिए सर्वर को कॉन्फ़िगर करने की आवश्यकता होगी, जैसे कि इसे इंटरनेट पर नेट करना, या सर्वर साइट के HTTP प्रॉक्सी के माध्यम से इसे रूट करना।

लिनक्स पर, आप इंटरनेट पर वीपीएन क्लाइंट ट्रैफ़िक को NAT करने के लिए इस तरह की कमांड का उपयोग कर सकते हैं:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

यह आदेश मानता है कि वीपीएन सबनेट 10.8.0.0/24 है (ओपनवीपीएन सर्वर कॉन्फ़िगरेशन में सर्वर के निर्देश से लिया गया है) और यह स्थानीय ईथरनेट इंटरफ़ेस एथ0 है।

जब रीडायरेक्ट-गेटवे का उपयोग किया जाता है, तो OpenVPN क्लाइंट VPN के माध्यम से DNS प्रश्नों को रूट करेगा, और वीपीएन सर्वर को उन्हें संभालने की आवश्यकता होगी। यह क्लाइंट को जोड़ने के लिए एक DNS सर्वर पते को धक्का देकर पूरा किया जा सकता है जो उस समय के सामान्य DNS सर्वर सेटिंग्स को बदल देगा जो वीपीएन सक्रिय है। उदाहरण के लिए:

push "dhcp-option DNS 10.8.0.1"

अपने DNS सर्वर के रूप में 10.8.0.1 का उपयोग करने के लिए विंडोज ग्राहकों (या कुछ अतिरिक्त क्लाइंट-साइड स्क्रिप्टिंग वाले गैर-विंडोज क्लाइंट) को कॉन्फ़िगर करेगा। कोई भी पता जो ग्राहकों से उपलब्ध है उसे DNS सर्वर पते के रूप में उपयोग किया जा सकता है।


0

यदि आपका OpenVPN क्लाइंट विंडोज 10 (या इसी तरह) पर है, तो एनआईसी के बाध्यकारी आदेश को देखने के लिए एक और मुद्दा है। LAN या Wifi एडाप्टर पर मौजूदा DNS सर्वर सेटिंग्स सुरंग इंटरफ़ेस के लिए DNS सर्वर सेटिंग्स पर प्राथमिकता ले सकती हैं, इसलिए भले ही सब कुछ OpenVPN बिंदु से corectly सेट किया गया हो, Windows मूल DNS सर्वर का उपयोग करना जारी रखता है।

आप इस Microsoft मंच पोस्ट में वर्णित के रूप में इसे ठीक कर सकते हैं।

https://social.technet.microsoft.com/Forums/windowsserver/en-US/1cc5b647-6e51-482b-8998-ac5c3900938c/how-to-force-vpn-clients-to-use-the-dnsserver-from- उनके-वीपीएन-अनुकूलक-नहीं-dnsserver-से-अपने? मंच = winserverNIS


के प्रश्न का उत्तर नहीं
पीआईएम

0

मुझे उसी समस्या का सामना करना पड़ा और ओपन वीपीएन के लिए PiVPN सेटअप स्क्रिप्ट का उपयोग करते समय पता चला, सर्वर कॉन्फिगर लाइन में है:

पुश "रीडायरेक्ट-गेटवे डीफ़ 1 बायपास-डीएचसीपी"

पहले से। IOS क्लाइंट पर सब कुछ स्वचालित रूप से सुरंग के माध्यम से रूट किया जाता है (जो कि लॉग कहता है)।

टनलब्लाइक क्लाइंट पर आपको क्लाइंट में इस लाइन को जोड़ने की जरूरत है। लाइन को आगे बढ़ाएं:

रीडायरेक्ट-गेटवे डीफ़ 1 बाईपास-डीएचसीपी

और इसे पूरी तरह से काम करना चाहिए। कम से कम यह मेरे मैक पर किया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.