ตกลงดังนั้นฉันค้นหาเว็บเพื่อหาวิธีแก้ไขปัญหานี้โดยไม่มีคำตอบที่ดูเหมือนจะใช้ได้สำหรับฉัน หวังว่าบางคนสามารถช่วยฉันได้ ฉันแค่พยายามกำหนดค่าไคลเอนต์ OpenVPN
ฉันทำงานและฉันก็เปลี่ยนไปใช้CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
systemd
การเปลี่ยนแปลงเปลี่ยนไปอย่างราบรื่นพอ แต่ตอนนี้ฉันไม่สามารถทำให้ไคลเอนต์ OpenVPN ของฉันเกิดขึ้นโดยใช้ systemd ฉันได้ลองทำตามบทเรียนการกำหนดค่าเหล่านี้แล้ว แต่ไม่มีอะไรทำงาน
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- และดูคำแนะนำต่าง ๆ มากมาย
openvpn /etc/openvpn/vpn.conf
ฉันสามารถนำมาขึ้นอุโมงค์จากบรรทัดคำสั่งด้วย ดังนั้นฉันจึงรู้ว่าไฟล์ปรับแต่งนั้นดีมันทำงานกับ 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.
บทเรียนของ Fedora ทำตามขั้นตอนของการสร้างลิงก์สัญลักษณ์ แต่อย่าสร้างไฟล์. service ใด ๆ ใน walk-throughs
ฉันขาดอะไรไป ฉันจำเป็นต้องสร้าง 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)
symlink:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service
พรอมต์สำหรับรหัสผ่าน
ทุกอย่างทำงานได้ในขณะนี้ยกเว้นการได้รับแจ้งให้เชื่อมต่อรหัสผ่าน ฉันได้ลองวิธีนี้แล้ว ฉัน tweaked ไฟล์จากด้านบนเพียงเล็กน้อยและเพิ่มสคริปต์คาดหวังเหมือนในตัวอย่าง ทำงานเหมือนจับใจ! ไฟล์ของฉันอยู่ด้านล่าง
แก้ไขบรรทัดจากด้านบน /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
journalctl -b -m
ค้นหาสาเหตุที่ OpenVPN ออกจาก หนึ่งในสถานที่เหล่านั้นควรมีข้อความผิดพลาดจริง (หรือjournalctl -b -m _EXE=/usr/sbin/openvpn
ควรให้เฉพาะข้อความ OpenVPN)
openvpn@.service
ลักษณะไฟล์ชอบ?