मैं किसी स्क्रिप्ट को OpenVPN से कैसे जोड़ सकता हूं ताकि जब VPN सफलतापूर्वक कनेक्ट हो जाए तो यह चलता है?
network-manger-openvpn
।
मैं किसी स्क्रिप्ट को OpenVPN से कैसे जोड़ सकता हूं ताकि जब VPN सफलतापूर्वक कनेक्ट हो जाए तो यह चलता है?
network-manger-openvpn
।
जवाबों:
network-manager-openvpn
ऐसी कार्यक्षमता प्रदान नहीं करता है, आपको openvpn
सीधे उपयोग करना होगा ।
--script-security 2 --up /path/to/your/script
कनेक्ट करते समय इसे पास करें। यदि आप किसी कॉन्फ़िगरेशन फ़ाइल का उपयोग कर रहे हैं /etc/openvpn/
, तो अगली लाइनों को अपनी कॉन्फ़िगरेशन फ़ाइल में जोड़ें:
script-security 2
# run /etc/openvpn/up.sh when the connection is set up
up /etc/openvpn/up.sh
से OpenVPN मैनपेज :
-स्क्रिप्ट-सुरक्षा स्तर [विधि] यह निर्देश OpenVPN के उपयोग पर नीति-स्तरीय नियंत्रण प्रदान करता है बाहरी कार्यक्रमों और लिपियों का। निचले स्तर के मूल्य अधिक हैं प्रतिबंधक, उच्चतर मूल्य अधिक अनुमेय हैं। के लिए सेटिंग्स का स्तर: 0 - बाहरी कार्यक्रमों की सख्ती से कोई कॉलिंग नहीं। 1 - (डिफ़ॉल्ट) केवल कॉल किए गए निष्पादनों जैसे ifconfig, आईपी, मार्ग, या नेटश। 2 - अंतर्निहित निष्पादकों और उपयोगकर्ता-परिभाषित की कॉल करने की अनुमति दें स्क्रिप्ट। 3 - पर्यावरण के माध्यम से स्क्रिप्ट को पासवर्ड को पारित करने की अनुमति दें चर (संभावित असुरक्षित)। - सीएमडी शेल को सफल TUN / TAP डिवाइस ओपन (प्री) के बाद चलाना है --user UID परिवर्तन)। अप स्क्रिप्ट निर्दिष्ट करने के लिए उपयोगी है रूट ट्रैफ़िक, जो रूट आईपी ट्रैफ़िक को निजी के लिए नियत करता है सबनेट जो वीपीएन कनेक्शन के दूसरे छोर पर मौजूद है सुरंग। निष्पादन का लिपि क्रम - टीसीपी / यूडीपी सॉकेट बाइंड और ट्यून / टैप ओपन के बाद निष्पादित। - टीसीपी / यूडीपी और ट्यून / टैप बंद होने के बाद बंद हुआ।
स्क्रिप्ट निष्पादन के लिए और अधिक कार्यक्रम हैं, जिन्हें मैनुअल पेज पर पाया जा सकता है ।
बनाएँ /etc/openvpn/up.sh
, और इसे निष्पादित करने की अनुमति दें (जैसे, 755 या 700)। IPv6 पता और मार्ग जोड़ने के लिए उदाहरण सामग्री (शैक्षिक उद्देश्यों के लिए दिखाया गया है, इसे सीधे कॉपी न करें):
#!/bin/sh
# add an IPv6 address to device $dev (environment variable)
ip -6 addr add 2001:db8::1:2/112 dev $dev
# and the IPv6 route for this net using gateway 2001:db8::1
ip -6 route add 2001:db8::1:0/112 via 2001:db8::1 dev $dev
ध्यान दें कि यह up
स्क्रिप्ट रूट के रूप में चलाई जाती है। यदि आपने सेटिंग User
और Group
सेटिंग निर्दिष्ट नहीं की है, तो OpenVPN down
रूट की तरह स्क्रिप्ट भी चलाएगा ।
openvpn
सीधे उपयोग करने के उत्तर का विस्तार किया है । सर्वर सेट करते समय, मैंने देखा कि OpenVPN सर्वर के नीचे जाने पर पुन: कनेक्ट करने का प्रयास करेगा। निश्चित नहीं है कि OpenVPN आपके नेटवर्क इंटरफ़ेस के नीचे जाने की कोशिश कर रहा है या नहीं।
प्रश्न के लिए: "मैं ओपनवीपीएन के लिए एक स्क्रिप्ट को कैसे जोड़ सकता हूं ताकि वीपीएन सफलतापूर्वक जुड़ा होने पर यह चलता रहे?" मैं यह बताना चाहता हूं कि लेकेनस्टाइन ने एक उत्कृष्ट उत्तर दिया । लेकिन, जिस समय उनका जवाब तैयार किया गया था, उसमें इस बात पर थोड़ी स्पष्टता नहीं थी कि एक ओव्यूंट मशीन पर ओपनवपन को शुरू करने के लिए ओपनवैप कमांड लाइन तर्क कैसे प्रदान किए जाने चाहिए, खासकर इसलिए कि यह रिबूट के बाद भी काम करता है।
स्वाभाविक रूप से, कोई कमांड लाइन से किसी भी उपलब्ध कानूनी विकल्प के साथ ओपनवैप शुरू कर सकता है। लेकिन, एक उबंटू मशीन पर, यदि कोई रिबूट के बाद उसी कमांड लाइन के तर्कों के साथ ओपनवैप शुरू करना चाहता है, तो उन्हें फ़ाइल को संपादित करने पर विचार करना चाहिए /etc/default/openvpn
। निम्नलिखित लाइनों की जांच करें:
# Optional arguments to openvpn's command line
OPTARGS=""
से समुदाय OpenVPN आदमी पेज पर--script-security
-स्क्रिप्ट-सुरक्षा स्तर यह निर्देश ओपनवीपीएन के बाहरी उपयोग पर नीति-स्तरीय नियंत्रण प्रदान करता है कार्यक्रम और स्क्रिप्ट। निचले स्तर के मूल्य अधिक प्रतिबंधात्मक, उच्चतर हैं मूल्य अधिक अनुमेय हैं। स्तर के लिए सेटिंग्स: 0 - बाहरी कार्यक्रमों की सख्ती से कोई कॉलिंग नहीं। 1 - (डिफ़ॉल्ट) केवल कॉल किए गए निष्पादक जैसे ifconfig, ip, मार्ग, या नेटेश। 2 - अंतर्निहित निष्पादनयोग्य और उपयोगकर्ता-परिभाषित स्क्रिप्ट की कॉल करने की अनुमति दें। 3 - पर्यावरण चर के माध्यम से स्क्रिप्ट को पासवर्ड को पारित करने की अनुमति दें (संभावित असुरक्षित)। V2.3 से पहले ओपनवीपीएन रिलीज ने भी एक विधि ध्वज का समर्थन किया, जिसने संकेत दिया कि कैसे OpenVPN को बाहरी कमांड और स्क्रिप्ट को कॉल करना चाहिए। इसे या तो निष्पादित किया जा सकता है या प्रणाली। OpenVPN v2.3 के रूप में, इस ध्वज को अब स्वीकार नहीं किया गया है। अधिकांश * निक्स में वातावरण निष्पादित () दृष्टिकोण का उपयोग बिना किसी समस्या के किया गया है। कुछ निर्देश जैसे कि --up बाहरी स्क्रिप्ट में विकल्पों को पारित करने की अनुमति देते हैं। इन मामलों में सुनिश्चित करें कि स्क्रिप्ट नाम में कोई रिक्त स्थान नहीं है या कॉन्फ़िगरेशन पार्सर चोक कर देगा क्योंकि यह निर्धारित नहीं कर सकता है कि स्क्रिप्ट कहाँ है नाम समाप्त होता है और स्क्रिप्ट विकल्प शुरू होते हैं।
एक संक्षिप्त अनुभाग के साथ संयुक्त --up
- सीएमडी सफल TUN / TAP डिवाइस ओपन (प्री- यूसर UID चेंज) के बाद कमांड cmd रन करें। cmd में स्क्रिप्ट (या निष्पादन योग्य प्रोग्राम) के लिए एक पथ होता है, वैकल्पिक रूप से अनुसरण किया जाता है तर्क से। पथ और तर्क एकल- या दोहरे-उद्धृत और / या हो सकते हैं एक बैकस्लैश का उपयोग करके बच गया, और एक या एक से अधिक स्थानों से अलग होना चाहिए।
Openpvn server.conf के साथ मेरी मशीन पर, मेरी /etc/default/openvpn
फ़ाइल में निम्नलिखित पंक्तियाँ हैं :
OPTARGS="
--script-security 2
--up /etc/openvpn/nat.sh
"
संयोग से, nat.sh ने निजी नेटवर्क ट्रैफ़िक को रूटिंग के लिए नेटवर्क एड्रेस ट्रांसलेशन को ओपनवैप क्लाइंट से पब्लिक इंटरनेट पर सेट किया है; जब कोई एक सार्वजनिक वाईफ़ाई पहुंच बिंदु पर भरोसा नहीं करता है तो उसके लिए अच्छा है।
रिबूट के बाद अपेक्षित के रूप में पुनः आरंभ करने की अनुमति देने के अलावा, जब /etc/openvpn/[client or server].conf
और /etc/default/openvpn
फाइलों को ठीक से कॉन्फ़िगर किया जाता है, तो ओपनवैप को शुरू या बंद किया जा सकता है:
sudo service openvpn start
sudo service openvpn stop
अन्य उपयोगी विकल्पों service openvpn
में शामिल हैं cond-restart,force-reload,reload, restart,soft-restart, start, status, stop
।
के रूप में यह एक बहुत पुराना धागा है, मुझे यकीन नहीं है कि अगर ब्याज की है। यदि आप अभी भी एक वीपीएन से कनेक्ट करने के लिए NetworkManager का उपयोग करना चाहते हैं, तो आप एक साधारण udv नियम जोड़ सकते हैं:
KERNEL=="vpn0", RUN+="/PATH_TO_THE_SCRIPT/SCRIPT_NAME"
वीपीएन बनने के बाद यह किसी भी स्क्रिप्ट को चलाना चाहिए।
मैंने इस मुद्दे को हल करने के लिए अपने शोध में उत्तर पर ठोकर खाई और मुझे पता चला कि सबसे अच्छा समाधान है (ओपनवैप सर्वर का उपयोग निम्नानुसार है:
निष्पादित होने के लिए एक स्क्रिप्ट बनाएं:
# nano /etc/openvpn/up.sh
<file:contents>
#!/bin/sh
# export >> /var/log/openvpn/openvpn-up.log
D=`date "+%Y-%m-%d %H:%M"`
echo "[$D] ($local_port_1:$proto_1) $X509_0_CN: $trusted_ip => $ifconfig_pool_remote_ip" >> /var/log/openvpn/openvpn-up.log
</file>
निम्नलिखित पंक्तियों को ओपेनवोन कॉन्फ़िगरेशन (आमतौर पर /etc/openvpn/server.conf
) में जोड़ें। ऊपर दिए गए उत्तर में, इसका उपयोग ऊपर और नीचे किया गया था, जो कि सर्वर शुरू होने (पुनरारंभ) होने पर उपयोग किया जाता है। जब क्लाइंट कनेक्ट (डिस्कनेक्ट) करता है, तो डायरेक्ट क्लाइंट-कनेक्ट (और क्लाइंट-डिस्कनेक्ट) का उपयोग किया जाता है।
# nano /etc/openvpn/server.conf
<file:add>
script-security 2
client-connect /etc/openvpn/up.sh
</file>