मेरा सेटअप निम्नानुसार दिखता है:
- सर्वर (ubuntu सर्वर) सार्वजनिक आईपी पते
1.2.3.4
के साथ OpenVPN सर्वर के रूप में कार्य करता है - RaspberryPi (raspbian)
10.8.0.6
OpenVPN नेटवर्क और भौतिक नेटवर्क में स्थानीय पते के पते के साथ OpenVPN सर्वर से जुड़ा है192.168.178.36
- "लैन-क्लाइंट" स्थानीय पते के साथ रास्पबेरी पाई के समान भौतिक नेटवर्क में है
192.168.178.56
- "क्लाइंट" उसी OpenVPN नेटवर्क में है, जिसमें पता के साथ रास्पबेरी पाई है
10.8.0.10
मेरे वर्तमान सेटअप के साथ, "क्लाइंट" और रास्पबेरी पाई ओपेनवोन सर्वर के साथ सफलतापूर्वक कनेक्ट होते हैं और एक दूसरे के साथ संवाद कर सकते हैं। अब मैं रास्पबेरी पाई का उपयोग करके राउटरबेरी पीआई के लिए "लैन-क्लाइंट" को फॉरवर्ड करना चाहता हूं, इसलिए ओपनवैप सर्वर से जुड़ा प्रत्येक क्लाइंट इसे एक्सेस कर सकता है।
मैं "lan-client" पर OpenVPN स्थापित नहीं कर सकता, और न ही मैं इसे अग्रेषित करने के लिए कुछ पोर्ट कर सकता हूं या किसी भी कॉन्फ़िगरेशन को बदल सकता हूं।
क्या OpenVPN के साथ भी यह संभव है? और यदि हां, तो मैं यह कैसे कर सकता हूं? मैं केवल इस विशिष्ट आईपी को अग्रेषित करना चाहता हूं और रास्पबेरी पीज़ लैन में सभी क्लाइंट नहीं।
मेरे वर्तमान विन्यास इस तरह दिखते हैं:
server.conf
port 1194
proto udp
dev tun
ca /etc/certs/ca.crt
cert /etc/certs/server.crt
key /etc/certs/server.key
dh /etc/certs/dh4096.pem
cipher AES-256-CBC
server 10.8.0.0 255.255.255.0
keepalive 10 120
client-to-client
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
persist-key
persist-tun
status /var/log/openvpn/status.log
log /var/log/openvpn/openvpn.log
log-append /var/log/openvpn/openvpn.log
verb 3
ipp.txt (सर्वर)
client-rpi,10.8.0.4
सीसीडी / क्लाइंट-आरपीआई (सर्वर)
ifconfig-push 10.8.0.6 10.8.0.1
client.conf (रास्पबेरी पाई)
client
dev tun
proto udp
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/certs/ca.crt
cert /etc/certs/client-rpi.crt
key /etc/certs/client-rpi.key
cipher AES-256-CBC
remote-cert-tls server
verb 3
भले ही मैं केवल एक आईपी पते को रूट करना चाहता हूं, लेकिन मैंने पहले ही पूर्ण लैन को रूट करने के लिए ऑनलाइन कुछ गाइड का पालन किया है। ऐसा करने के लिए, मैंने जोड़ा
route 192.168.178.0 255.255.255.0
करने के लिए server.conf और
iroute 192.168.178.0 255.255.255.0
करने के लिए सीसीडी / क्लाइंट-आरपीआई config। जब मैं 192.168.178.20
सर्वर पर उदाहरण के लिए पिंग करने की कोशिश करता हूं, तो मुझे 100% पैकेट लॉस (कोई जवाब नहीं) मिलता है। रास्पबेरी पाई पर यह इस तरह दिखता है:
$ sudo tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
09:39:09.863118 IP 10.8.0.1 > 192.168.178.20: ICMP echo request, id 19467, seq 1, length 64
09:39:10.869903 IP 10.8.0.1 > 192.168.178.20: ICMP echo request, id 19467, seq 2, length 64
09:39:11.878093 IP 10.8.0.1 > 192.168.178.20: ICMP echo request, id 19467, seq 3, length 64
जब मैं एक ही पता पिंग करता हूं लेकिन रास्पबेरी पाई से (जो कि लक्ष्य के समान भौतिक नेटवर्क में है) सब कुछ ठीक काम करता है, जैसा कि अपेक्षित है, इसलिए यह लक्ष्य फ़ायरवॉल नहीं है जो अनुरोधों को छोड़ देता है।
मेरा अनुमान है, कि रास्पबेरी पाई पिंग अनुरोधों को प्राप्त करती है और इसे आगे बढ़ाती है, लेकिन लक्ष्य 192.168.178.20
को पता नहीं है कि कैसे प्रतिक्रिया दें। समस्या यह है, जैसा कि पहले ही उल्लेख किया गया है, मैं उस डिवाइस पर राउटिंग टेबल और न ही अन्य सेटिंग्स नहीं बदल सकता। मेरे पास केवल सर्वर और रास्पबेरी पाई तक पहुंच है। क्या मेरी समझ सही है, और क्या कोई समाधान है जो काम करेगा? या यह सिर्फ मेरी गलतफहमी और गलतफहमी है? यह मार्गों के साथ रास्पबेरी पाई पर एक समस्या हो सकती है, लेकिन मुझे नहीं पता कि इसे कैसे ठीक किया जाए।