NAT के बिना OpenVPN गेटवे


0

मैं एक पारदर्शी वीपीएन गेटवे को एक दूरस्थ नेटवर्क में स्थापित करने की कोशिश कर रहा हूं, दूरस्थ नेटवर्क पर एक ओपनवीपीएन सर्वर है और स्थानीय नेटवर्क पर एक ओपनवीपीएन क्लाइंट गेटवे के रूप में काम कर रहा है।

आरेख प्रत्येक होस्ट के लिए आईपी और मार्गों को दिखाता है, हरे रंग में मैंने उन मार्गों को चिह्नित किया है जो मैंने सभी काम करने के लिए जोड़े हैं, मैं वीपीएन सर्वर पर एनएटी बनाना चाहता हूं, इसलिए उस नेटवर्क के प्रत्येक सर्वर पर कोई अतिरिक्त मार्गों की आवश्यकता नहीं है ( डेस्टिनेशन नामक सर्वर उस नेटवर्क के सर्वर का एक उदाहरण है)।

स्पष्टीकरण जोड़ने के लिए संपादित:

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

जोङनेवाली आकूूुी्ती

मेरी समझ में "गंतव्य" लेबल वाले सर्वर पर "वर्कस्टेशन" लेबल वाले कंप्यूटर से एक पिंग काम करना चाहिए, लेकिन यह नहीं है, वीपीएन क्लाइंट से एक ही पिंग, वीपीएन सर्वर में केवल एक एनएटी के प्रदर्शन के साथ अपेक्षित रूप से काम करता है।

अगर मैं दोनों तरफ tun0 पर एक tcpdump खोलता हूं, तो मैं वीपीएन क्लाइंट पर वर्कस्टेशन से गंतव्य तक पिंग पैकेट देख सकता हूं, लेकिन वीपीएन सर्वर पर कुछ भी नहीं, यहां वीपीएन क्लाइंट पर tcpdump के लिए आउटपुट है:

$ sudo tcpdump -i tun0 'icmp'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
16:07:11.391614 IP 10.1.110.7 > 192.168.1.63: ICMP echo request, id 10871, seq 49, length 64
16:07:12.404989 IP 10.1.110.7 > 192.168.1.63: ICMP echo request, id 10871, seq 50, length 64

यदि मैं वीपीएन क्लाइंट पर एक बहाना नियम जोड़ता हूं तो पिंग गंतव्य तक पहुंचता है और उत्तर भेजता है:

$ iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

लेकिन इस सेटअप के साथ, मैं दो बार NAT का प्रदर्शन करूंगा, मैं VPN क्लाइंट को पैकेट को बिना नेटिंग के फॉरवर्ड करने के लिए तैयार करता हूं।

फ़ायरवॉल अग्रेषित नीति को स्वीकार करने के लिए सेट है:

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

और कोई NAT नियम नहीं है जो हस्तक्षेप कर सकता है:

$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination        

IP फ़ॉरवर्डिंग सक्षम है:

$ cat /proc/sys/net/ipv4/ip_forward
1

मुझे क्या याद आ रहा है?


2
के लिए गंतव्य मार्गों पैकेट 10.1.110.0/24के माध्यम से X.X.X.X dev eth0, जबकि अपनी VPN सर्वर पर है eth1। तो route add 10.1.110.0/24 gw 192.168.0.69गंतव्य पर।
५३

@IporSircer मैंने प्रश्न को और अधिक स्पष्ट करने के लिए संपादित किया है कि मेरी समस्या वास्तव में क्या है।
हिंचिचिला

जवाबों:


0

यह पता चला है कि ओपनवीपीएन की खुद की रूटिंग टेबल है, जिसे आप ip roया उसके साथ देख सकते हैं route -n

यदि OpenVPN सर्वर को क्लाइंट से एक स्रोत पते के साथ एक पैकेट प्राप्त होता है, जिसके लिए उसके पास कोई मार्ग नहीं है (vpn सर्वर, होस्ट नहीं) तो यह tun0 तक पहुंचने से पहले इसे छोड़ देगा। जब ऐसा होता है तो आप इस तरह से एक संदेश को ओपनवैप लॉग पर देख सकते हैं:

Tue Nov 14 11:26:21 2017 us=135733 client/X.X.X.X:40770 MULTI: bad source address from client [10.1.110.7], packet dropped

जब ऐसा होता है तो आपको एक iroute जोड़ने की आवश्यकता होती है , iroutes क्लाइंट विशिष्ट होते हैं, और आपको क्लाइंट-कॉन्फ़िग-डीआईआर को सक्षम करना चाहिए

#/etc/openvpn/server.conf
...
client-config-dir ccd

तो अंदर /etc/openvpn/ccd/<client_name>आप अपने iroute जोड़ सकते हैं:

# /etc/openvpn/ccd/client
iroute 10.1.0.0 255.255.0.0

OpenVPN सर्वर को पुनरारंभ करने के बाद आप अपने पैकेट्स को दूसरी तरफ tun0 पर पहुंचते देखना शुरू कर देंगे क्योंकि इस बार OpenVPN उन्हें ड्रॉप नहीं करेगा।

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