SystemV के साथ OpenVPN का उपयोग करना


24

ठीक है, इसलिए मैं इस समस्या के समाधान के लिए वेब खोज रहा हूं, जिसका कोई जवाब नहीं है जो मेरे लिए काम कर रहा है। उम्मीद है कि कोई मेरी मदद कर सकता है। मैं केवल OpenVPN क्लाइंट को कॉन्फ़िगर करने का प्रयास कर रहा हूं।

मैं भाग रहा हूं CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linuxऔर मैंने सिर्फ उपयोग करने के लिए स्विच किया है systemd। बदलाव काफी हद तक सुचारू हो गया, लेकिन अब मैं अपने OpenVPN क्लाइंट को उन सिस्टम ट्यूटोरियल का उपयोग करने के लिए नहीं ला सकता, जो मैंने इन कॉन्फ़िगरेशन ट्यूटोरियल का अनुसरण करने की कोशिश की है, लेकिन कुछ भी काम नहीं करता है।

मैं कमांड लाइन से सुरंग को ऊपर ला सकता हूं openvpn /etc/openvpn/vpn.conf। तो मुझे पता है कि config फाइल अच्छी है, यह sysvinit के साथ ठीक काम कर रहा था इसलिए मुझे आश्चर्य नहीं हुआ। मैं तब systemctl status openvpn@vpn.serviceजिसके परिणामस्वरूप के साथ एक स्थिति करने का प्रयास करता हूं :

$ sudo systemctl status openvpn@vpn.service
  openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)

मुझे एहसास हुआ कि मुझे सेवाओं के लिए कुछ सेटअप करने की आवश्यकता है। मैं तो मैं एक बनाने के लिए इस गाइड का पालन पासवर्ड के लिए संकेत किया जाना चाहते हैं openvpn@.serviceमें /etc/systemd/system/। लेकिन OpenVPN सेवा को पुनरारंभ करना अभी भी पासवर्ड के लिए संकेत नहीं देता है।

$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.

फेडोरा ट्यूटोरियल प्रतीकात्मक लिंक बनाने के चरणों से गुजरते हैं, लेकिन वॉक-थ्रू में कोई भी .service फाइल नहीं बनाते हैं।

मुझे कौन सा टुकड़ा याद आ रहा है? क्या मुझे एक Openvpn@vpn.service बनाने की आवश्यकता है? यदि हां, तो मैं इसे कहां रखूं? मुझे ऐसा लगता है कि यह मुश्किल नहीं होना चाहिए, लेकिन मुझे ऐसा कोई समाधान नहीं मिल रहा है जो मेरे लिए काम करे। मुझे जरूरत है कि कोई और जानकारी प्रदान करने में खुशी हो रही है।

समाधान

-rw-r--r--  1 root root   319 Aug  7 10:42 openvpn@.service

[Unit]
Description=OpenVPN connection to %i
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --config /etc/openvpn/%i.conf
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/etc/openvpn

[Install]
WantedBy=multi-user.target
openvpn@.service (END)

सिमलिंक:

lrwxrwxrwx  1 root root   36 Aug  7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service

पासवर्ड के लिए शीघ्र

पासवर्ड से कनेक्ट करने के लिए प्रेरित करने के अलावा, अब सब कुछ काम कर रहा है। मैंने इस समाधान का प्रयास किया है । मैंने फ़ाइल को बस थोड़ा ऊपर से ट्विक किया, और उदाहरण में एक एक्सपेक्ट स्क्रिप्ट को जोड़ा । एक आकर्षण की तरह काम करना! मेरी फाइलें नीचे हैं।

ऊपर से संशोधित लाइनें /lib/systemd/system/openvpn@.service

ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --management localhost 5559 --management-query-passwords --management-forget-disconnect --config /etc/openvpn/%i.conf
ExecStartPost=/usr/bin/expect /lib/systemd/system/openvpn_pw.exp

स्क्रिप्ट की उम्मीद है /lib/systemd/system/openvpn_pw.exp। निम्नलिखित करना सुनिश्चित करें:

  • chmod +x स्क्रिप्ट पर।
  • है telnetस्थापित

अपेक्षित स्क्रिप्ट का कोड:

#!/usr/bin/expect
set pass [exec /bin/systemd-ask-password "Please insert Private Key password: "]

spawn telnet 127.0.0.1 5559
expect "Enter Private Key Password:"
send "password 'Private Key' $pass\r"
expect "SUCCESS: 'Private Key' password entered, but not yet verified"
send "exit\r"
expect eof

यह ध्यान दिया जाना चाहिए कि उपर्युक्त समाधान आपके पासवर्ड को निम्नलिखित लॉग में प्लेनटेक्स्ट में दर्ज करता है /var/log/syslogऔर/var/log/daemon.log


कैसे करता है openvpn@.serviceफ़ाइल लगता है?
क्रिस्टियन सियुपिटु

वर्तमान त्रुटि के साथ पोस्ट अपडेट किया गया
RoraΖ

/Var/log//logsyslog,daemon.log} में देखें और journalctl -b -mयह जानने के लिए कि OpenVPN बाहर क्यों निकला है। उन स्थानों में से एक में वास्तविक त्रुटि संदेश होना चाहिए। (या यहां तक journalctl -b -m _EXE=/usr/sbin/openvpnकि सिर्फ OpenVPN संदेश देना चाहिए)।
derobert

हां, मैं वहां पहुंच रहा था। हम पासवर्ड की समस्या से जूझ रहे हैं। मैं इसके लिए इस समाधान की कोशिश करूँगा: bbs.archlinux.org/viewtopic.php?id=150440 आपकी सभी मदद के लिए धन्यवाद!
रोरΖ

जवाबों:


11

मुझे लगता है कि सिस्टमड के साथ डेबियन ओपनवीपीएन सेटअप वर्तमान में थोड़ा टूट गया है। अपनी मशीनों पर काम करने के लिए मुझे यह करना पड़ा:

  1. बनाएँ /etc/systemd/system/openvpn@.service.d(निर्देशिका), और इसमें एक नई फ़ाइल इसके साथ रखें:

    [यूनिट]
    = Networking.service आवश्यक है
    = Networking.service के बाद
    मैंने अपनी फाइल बुलाई local-after-ifup.conf। इसे खत्म करने की जरूरत है .conf। (यह बिट है कि वर्तमान में एक बालक थोड़ा टूट गया है।)

  2. सामग्री के साथ /etc/tmpfiles.d(मुझे मेरा कहा जाता है local-openvpn.conf) में एक फ़ाइल बनाएँ :

    # टाइप पथ मोड UID GID आयु तर्क
    d / run / openvpn 0755 रूट रूट - -
    यह डेबियन बग 741938 (2.3.3-1 में तय) है।

  3. एक सिमिलिंक बनाएं multi-user.target.wants(सबसे आसान तरीका है systemctl enable openvpn@CONF_NAME.service) जैसे, यदि आपके पास है /etc/openvpn/foo.conf, तो आप उपयोग करेंगे openvpn@foo.service

  4. यदि आपके पास भी सिस्टम में SysV init स्क्रिप्ट दिखाई दे रही है, तो उसे निष्क्रिय कर दें। यह डेबियन बग 700888 (2.3.3-1 में तय) है।

नोट: 2.3.3-1 या बाद में परीक्षण में अभी तक नहीं है , हालांकि यह अस्थिर है।


systemctl सक्षम है फिर भी ऐसा कोई फ़ाइल या निर्देशिका नहीं कह रहा है। मैं किसी भी sysv init स्क्रिप्ट को / lib / systemd में नहीं देखता, जब तक कि इसका systemd-initctl नहीं है?
रोरो

@raz SysV स्क्रिप्ट होगी /etc/init.d/openvpn; डिफ़ॉल्ट रूप से ssv init जैसे सिस्टम रन करेगा। वही openvpn.serviceतुम्हारे पास है; आपको इसे अक्षम करना होगा ( systemctl disable)। क्या फ़ाइल /lib/systemd/system/openvpn@.serviceआपके सिस्टम पर मौजूद है?
derobert

@raz यदि आपके पास वह फ़ाइल है, तो आप ln -s /lib/systemd/system/openvpn@.service /etc/systemd/system/multi-user.target.wants/openvpn@vpn.service
derobert

मेरे पास वह फ़ाइल नहीं है लेकिन मुझे यकीन है कि मैं इसे बना सकता हूं। मैंने /etc/init.d/openvpn script.
RoraΖ

@raz मुझे यकीन है कि अगर Crunchbang इसके साथ एक नए OpenVPN पैकेज का बैकपोर्ट है नहीं कर रहा हूँ, लेकिन अगर नहीं, तो आप से है कि स्क्रिप्ट प्राप्त कर सकते हैं sources.debian.net/src/openvpn/2.3.3-1/debian/...
derobert

8
  1. सभी Openvpn * .conf फाइलों को इसमें रखें /etc/openvpn/
  2. संपादित करें /etc/default/openvpn। इसे रद्द करें:

    AUTOSTART="all"
    
  3. भागो systemctl daemon-reload

  4. भागो service openvpn start

मुझे लगता है कि वे इसे एक समाधान के रूप में इस्तेमाल करते हैं, क्योंकि अब डेबियन 9 में और भी बुरा है, ओपनवैप फिर से शुरू नहीं होता है यदि कोई त्रुटि बहुत ही बेवकूफ है, तो कोई व्यक्ति किसी समाधान या समाधान को जानता है, मैं यह जानने के लिए एक स्क्रिप्ट लिख रहा हूं कि क्या ओपनपीएनपी अभी भी चल रहा है!
लुसियानो एंड्रेस मार्टिनी

यह एकदम सही था। यह शुरू होता है और बंद हो जाता है भले ही मैंने इसे स्पष्ट कहा client.conf, अब इसके साथ मेरा एकल कॉन्फ़िगरेशन बस चलता है। धन्यवाद!
मिशेल करी

6

इस प्रकार की इकाई फ़ाइल एक त्वरित सेवा है - अधिक विवरण यहां उपलब्ध हैं

openvpnCentOS 7 के लिए यूनिट फ़ाइल निम्नलिखित है :

[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=syslog.target network.target

[Service]
PrivateTmp=true
Type=forking
PIDFile=/var/run/openvpn/%i.pid
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf

[Install]
WantedBy=multi-user.target

और यह रहता है /usr/lib/systemd/system/openvpn@service%iफ़ाइल में के बाद तार के साथ बदल दिया है @इकाई नाम पर।

जैसे ही कॉन्फ़िगर फ़ाइल होती है, /etc/openvpn/myopenvpn.confतब सेवा को इसके साथ शुरू किया जाता है:

systemctl start openvpn@myopenvpn.service

मेरे पास केवल स्तर /usr/lib/systemd/user/ पर और कुछ नहीं /usr/lib/systemdहै।
रोरो

किस बारे में /lib/systemd/system/? मुझे लगता है कि दोनों मेरे सिस्टम पर समान सामग्री के साथ हैं (और वे सहानुभूति नहीं हैं!)।
garethTheRed

मैंने बस उस फ़ाइल को जोड़ा, मेरी पोस्ट को सब कुछ के साथ अपडेट किया।
रोरो

5

आपको सक्षम करके सेवा फ़ाइल बनाने की आवश्यकता है openvpn@<configuration>.service

उदाहरण के लिए, यदि कॉन्फ़िगरेशन फ़ाइल है /etc/openvpn/client.conf, तो सेवा का नाम है openvpn@client.service

आर्क विकी से


$ sudo systemctl सक्षम करें Openvpn@vpn.service [sudo] उपयोगकर्ता के लिए पासवर्ड: विधि कॉल जारी करने में विफल: ऐसी कोई फ़ाइल या निर्देशिका नहीं
Rora

आपकी कॉन्फ़िगरेशन फ़ाइल को 'vpn' कहा जाता है?
कार्लो

हाँ,/etc/openvpn/vpn.conf
रोरा

systemctl start openvpn@vpn.serviceकाम भी नहीं करता है ? यह काम करना चाहिए ...
कार्लो

1
यह मेरे लिए रास्पियन GNU / Linux 8 (डेबियन जेसी) पर काम करता है। धन्यवाद!
10

1

Openvpn @ .service डेबियन 8 और 9 के बीच बहुत विकसित हुई है। जेसी के लिए मूल पैकेज उदाहरण के लिए विफल रहता है systemctl reload openvpn@। इन्हें ठीक करने के लिए स्ट्रेच संस्करण सिस्टम-फाइल में 10 नए निर्देशों का परिचय देता है, जिसमें PIDFile=फिर से काम करना शामिल है।

मांसपेशियों को उपयोगकर्ताओं के लिए, मैं backport के लिए जा रहा करने का सुझाव देते हैं, और यदि संभव हो तो नहीं है कि, कम से कम से systemd-फ़ाइल प्राप्त करने के लिए https://packages.debian.org/jessie-backports/openvpn और निकालने debian/openvpn@.serviceमें /etc/systemd/system/openvpn@.serviceऔर बेहतर का आनंद कार्यक्षमता और सुरक्षा।


0

उचित समाधान यह होगा कि सिस्टमड systemd-ask-password/ " पासवर्ड एजेंट्स " का उपयोग किया जाए, जो सेवाओं के लिए फ़नल पासवर्ड / पासफ़्रेज़ के लिए सिस्टमड बिल्ट रास्ता प्रदान करता है।

आपको ऐसा करने के लिए OpenVPN 2.3.0 या नया चाहिए होगा।


यह वही है जो मेरे संपादित पोस्ट में एक्सपेक्ट स्क्रिप्ट का उपयोग करता है।
रोरΖ

क्षमा करें, वह संपादन छूट गया।
एलियास प्रोब्स्ट

0

एक ताज़ा Jessie_8.0.0 इंस्टॉलेशन पर मैंने:

  1. वर्ष कॉपी /etc/openvpn/cluster.conf(प्लस *.keyऔर *.crt) खरखरा से फाइल
  2. uncommented AUTOSTART="all"में /etc/default/openvpn- मुझे लगता है कि यह कोई प्रभाव नहीं पड़ा
  3. /lib/systemd/system-generators/openvpn-generator cluster
  4. systemctl restart openvpn@cluster.service

अब सुरंग ऊपर है - मैं देखूंगा कि रिबूट के बाद क्या होगा, लेकिन मैं इस पल में रिबूट नहीं कर सकता

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