Systemd সহ ওপেনভিপিএন ব্যবহার করে


24

ঠিক আছে, তাই আমি এই সমস্যার সমাধানের জন্য ওয়েবে অনুসন্ধান করেছিলাম আমার কাছে কোনও উত্তর নেই বলে মনে হচ্ছে। আশা রাখি, কেউ আমাকে সাহায্য করতে পারেন। আমি কেবল ওপেনভিপিএন ক্লায়েন্ট কনফিগার করার চেষ্টা করছি।

আমি দৌড়াচ্ছি CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linuxএবং আমি কেবল ব্যবহারে স্যুইচ করেছি systemd। পরিবর্তনটি যথেষ্ট মসৃণ হয়েছে তবে এখন আমি এই ওপেনভিপিএন ক্লায়েন্টকে সিস্টেমডি ব্যবহার করে সামনে আসতে পারি না আমি এই কনফিগারেশন টিউটোরিয়ালগুলি অনুসরণ করার চেষ্টা করেছি, তবে কিছুই কার্যকর হয় না।

কমান্ড লাইন দিয়ে আমি টানেলটি আনতে পারি openvpn /etc/openvpn/vpn.conf। সুতরাং আমি জানি কনফিগার ফাইলটি ভাল, এটি সিসভিনিটের সাথে কাজ করছিল ঠিকঠাক তাই আমি অবাক হই না। আমি তারপরে কেবল একটি স্ট্যাটাস করার চেষ্টা করি 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/। তবে ওপেনভিপিএন পরিষেবা পুনরায় চালু করা এখনও একটি পাসওয়ার্ডের জন্য অনুরোধ জানায় না।

$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.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ফাইল দেখে মনে হচ্ছে?
ক্রিশ্চিয়ান সিউপিতু

বর্তমান ত্রুটি সহ পোস্টটি আপডেট করেছেন
রোরা

/Var/log/{syslog,daemon.log in এ journalctl -b -mঅনুসন্ধান করুন এবং ওপেনভিপিএন কেন বেরিয়েছে তা সন্ধান করতে। এই জায়গাগুলির মধ্যে একটিতে আসল ত্রুটি বার্তা থাকা উচিত। (অথবা এমনকি journalctl -b -m _EXE=/usr/sbin/openvpnকেবল ওপেনভিপিএন বার্তা দেওয়া উচিত) should
ডার্ববার্ট

হ্যাঁ, আমি সেখানে যাচ্ছিলাম। আমরা পাসওয়ার্ড সমস্যা হিট করছি। আমি এটির জন্য এই সমাধানটি চেষ্টা করব: bbs.archlinux.org/viewtopic.php?id=150440 আপনার সমস্ত সহায়তার জন্য ধন্যবাদ!
রোড়া Ζ

উত্তর:


11

আমি মনে করি সিস্টেমেড সহ ডেবিয়ান ওপেনভিপিএন সেটআপ বর্তমানে একটি অল্প বিচ্ছিন্ন। এটি আমার মেশিনে কাজ করার জন্য আমাকে করতে হয়েছিল:

  1. /etc/systemd/system/openvpn@.service.d(ডিরেক্টরি) তৈরি করুন এবং এর সাথে এটিতে একটি নতুন ফাইল রাখুন:

    [ইউনিট]
    = Networking.service প্রয়োজন
    = Networking.service করার পর
    আমি আমার ফাইল কল local-after-ifup.conf। এর সাথে শেষ হওয়া দরকার .conf। (এটি হ'ল বর্তমানে কিছুটা বিচ্ছিন্ন bit

  2. বিষয়বস্তু সহ একটি ফাইল তৈরি করুন /etc/tmpfiles.d(আমাকে আমার বলা হয়েছিল local-openvpn.conf):

    # পথের মোডে ইউআইডি জিআইডি বয়স আর্গুমেন্ট টাইপ করুন
    ডি / রান / ওপেনভিপিএন 0755 মূল মূল - -
    এটি দেবিয়ান বাগ 741938 ( 2.3.3-1-এ স্থির) fixed

  3. এর মধ্যে একটি সিমিলিংক তৈরি করুন multi-user.target.wants(সহজতম উপায় হ'ল systemctl enable openvpn@CONF_NAME.service), যদি আপনার থাকে তবে আপনি /etc/openvpn/foo.confব্যবহার করতে পারেন openvpn@foo.service

  4. আপনার যদি সিস্টেডি ইন স্ক্রিপ্টটি সিস্টেমডে প্রদর্শিত হয় তবে এটি অক্ষম করুন। এটি দেবিয়ান বাগ 700888 ( 2.3.3-1-এ স্থির)।

দ্রষ্টব্য: ২.৩.৩-১ বা তারপরের পরীক্ষা এখনও পরীক্ষায় নেই , যদিও এটি অস্থির।


systemctl সক্ষম এখনও এই জাতীয় ফাইল বা ডিরেক্টরি বলতে ব্যর্থ। আমি / lib / systemd তে কোনও sysv init স্ক্রিপ্ট দেখতে পাচ্ছি না, যদি না এর systemd-initctl থাকে?
রোড়া Ζ

@raz এসআইএসভি স্ক্রিপ্ট হবে /etc/init.d/openvpn; ডিফল্টরূপে সিস্টেমে চালিত সিস্টেমগুলি sysv initের মতো চালায়। এটাই openvpn.serviceতোমার আছে; আপনার এটি নিষ্ক্রিয় করতে হবে ( systemctl disable)। ফাইলটি কি /lib/systemd/system/openvpn@.serviceআপনার সিস্টেমে রয়েছে?
ডার্বোবার্ট

@রাজ যদি আপনার কাছে এই ফাইলটি থাকে তবে আপনি একটি ম্যানুয়াল চেষ্টা করতে পারেনln -s /lib/systemd/system/openvpn@.service /etc/systemd/system/multi-user.target.wants/openvpn@vpn.service
ডার্বোবার্ট

আমার কাছে সেই ফাইল নেই তবে আমি নিশ্চিত যে আমি এটি তৈরি করতে পারি। আমি অক্ষম করেছি/etc/init.d/openvpn script.
রোড়া Ζ

@raz আমি নিশ্চিত যদি Crunchbang এটির সাথে একটি নতুন VPN খুলুন প্যাকেজের একটি গুলো পুরনো হয়ে গেছে নই, কিন্তু যদি না, তোমার কাছ থেকে স্ক্রিপ্ট দখল করতে পারেন sources.debian.net/src/openvpn/2.3.3-1/debian/...
ডার্বোবার্ট

8
  1. সমস্ত ওপেনভিপিএন * .কনফ ফাইলগুলিতে রাখুন /etc/openvpn/
  2. সম্পাদনা করুন /etc/default/openvpn। এটি মন্তব্য করুন:

    AUTOSTART="all"
    
  3. চালান systemctl daemon-reload

  4. চালান service openvpn start

আমি মনে করি তারা এটি সমাধান হিসাবে ব্যবহার করেছে, কারণ এখন ডেবিয়ান 9-তে আরও খারাপ, ওপেনভিএনপি যদি পুনরায় আরম্ভ না করে তবে কোনও বোকা খুব বোকা ... কেউ কেউ কিছু সমাধান বা কাজ জানেন, ওপেনভিপিএন যাচাই করার জন্য আমি একটি স্ক্রিপ্ট লিখছি এখনও চলছে!
লুসিয়ানো এন্ড্রেস মার্টিনি

এটি নিখুঁত ছিল। এটি শুরু হয়ে থামবে যদিও আমি একে একে সুস্পষ্ট বলেছি client.conf, এখন এটির সাথে আমার একক কনফিগারেশনটি কেবল চলছে। ধন্যবাদ!
মিচেল কারি

6

এই জাতীয় ইউনিট ফাইলটি একটি ইনস্ট্যান্টিয়েটেড পরিষেবা - আরও বিশদ এখানে পাওয়া যায়

নিম্নলিখিত openvpnসেন্টোস 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/? আমার সিস্টেমে অভিন্ন বিষয়বস্তুযুক্ত (এবং তারা কোনও চিহ্ন নয়!) রয়েছে বলে মনে হয়।
গ্যারেথ TheRed

আমি সবেমাত্র সেই ফাইলটি যুক্ত করেছি, আমার পোস্টটি সবকিছু দিয়ে আপডেট করেছি।
রোরাΖ

5

আপনাকে সক্ষম করে পরিষেবা ফাইল তৈরি করতে হবে openvpn@<configuration>.service

উদাহরণস্বরূপ, যদি কনফিগারেশন ফাইল হয় /etc/openvpn/client.confতবে পরিষেবার নাম openvpn@client.service

আর্ক উইকি থেকে


do sudo systemctl openvpn@vpn.service [sudo] ব্যবহারকারীর জন্য পাসওয়ার্ড সক্ষম করুন: পদ্ধতি কল ইস্যু করতে ব্যর্থ: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই
রোড়া

আপনার কনফিগারেশন ফাইলটিকে 'ভিপিএন' বলা হয়?
কার্লো

হ্যাঁ,/etc/openvpn/vpn.conf
রোড়া Ζ

না systemctl start openvpn@vpn.serviceপারেন কাজ করে না? এটি কাজ করা উচিত ...
কার্লো

1
এটি আমার জন্য রাস্পবিয়ান জিএনইউ / লিনাক্স 8 (ডেবিয়ান জেসি) নিয়ে কাজ করে। ধন্যবাদ!
নিউহাউস

1

ওপেনভিএনপিএন। সার্ভিসটি ডেবিয়ান 8 এবং 9 এর মধ্যে ব্যাপকভাবে বিকশিত হয়েছে উদাহরণস্বরূপ জেসির জন্য মূল প্যাকেজটি ব্যর্থ হয়েছে systemctl reload openvpn@। এই স্ট্রেচ সংস্করণটি PIDFile=পুনরায় লোডের কাজটি সহ সিস্টেমড-ফাইলে 10 টি নতুন নির্দেশিকা প্রবর্তন করে fix

প্রসারিত ব্যবহারকারীদের জন্য, আমি গুলো পুরনো যাচ্ছেন করার সুপারিশ করছি, এবং যদি সম্ভব না যে, অন্তত থেকে systemd হল-ফাইল পেতে করতে https://packages.debian.org/jessie-backports/openvpn এবং নির্যাস debian/openvpn@.serviceমধ্যে /etc/systemd/system/openvpn@.serviceএবং ভাল উপভোগ কার্যকারিতা এবং সুরক্ষা।


0

সঠিক সমাধানটি হ'ল, সিস্টেমডের systemd-ask-password/ " পাসওয়ার্ড এজেন্টস " ব্যবহার করা, যা পরিষেবাগুলিতে পাসওয়ার্ড / পাসফ্রেজগুলি ফানেল দেওয়ার জন্য সিস্টেম্ট বিল্টিন পদ্ধতি সরবরাহ করে।

এটি করার জন্য আপনার ওপেনভিপিএন ২.৩.০ বা আরও নতুন প্রয়োজন হবে।


আমার সম্পাদিত পোস্টে প্রত্যাশা স্ক্রিপ্টটি এটি ব্যবহার করে।
রোরাΖ

দুঃখিত, সম্পাদনাটি মিস করেছেন।
ইলিয়াস প্রোবস্ট

0

একটি নতুন জেসি_৮.০.০ ইনস্টলেশনতে আমি এটি করেছি:

  1. হুইজি থেকে পুরানো /etc/openvpn/cluster.conf(প্লাস *.keyএবং *.crt) ফাইলগুলি অনুলিপি করুন
  2. uncommented AUTOSTART="all"in /etc/default/openvpn- আমি মনে করি এটির কোনও প্রভাব ছিল না
  3. /lib/systemd/system-generators/openvpn-generator cluster
  4. systemctl restart openvpn@cluster.service

এখন টানেলটি সমাপ্ত - পুনরায় বুটের পরে কী হবে তা আমি দেখতে পাব, তবে এই মুহুর্তে আমি পুনরায় বুট করতে পারি না

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.