Ok, vì vậy tôi đã tìm kiếm trên web các giải pháp cho vấn đề này mà không có câu trả lời nào có vẻ hiệu quả với tôi. Hy vọng rằng ai đó có thể giúp tôi. Tôi chỉ đang cố gắng định cấu hình Máy khách OpenVPN.
Tôi đang chạy CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
và tôi mới chuyển sang sử dụng systemd
. Việc thay đổi đã diễn ra khá suôn sẻ nhưng bây giờ tôi không thể khiến ứng dụng khách OpenVPN của mình xuất hiện bằng systemd Tôi đã thử làm theo các hướng dẫn cấu hình này, nhưng không có gì hoạt động.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- Và nhìn vào một loạt các hướng dẫn khác nhau.
Tôi có thể mang đường hầm từ dòng lệnh với openvpn /etc/openvpn/vpn.conf
. Vì vậy, tôi biết tập tin cấu hình là tốt, nó đã hoạt động với sysvinit tốt nên tôi không ngạc nhiên. Sau đó tôi cố gắng thực hiện một trạng thái với systemctl status openvpn@vpn.service
kết quả là:
$ sudo systemctl status openvpn@vpn.service
openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Tôi nhận ra rằng tôi cần phải thực hiện một số thiết lập cho các dịch vụ. Tôi muốn được nhắc nhập một mật khẩu vì vậy tôi theo hướng dẫn này để tạo ra một openvpn@.service
trong /etc/systemd/system/
. Nhưng khởi động lại dịch vụ OpenVPN vẫn không nhắc mật khẩu.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Các hướng dẫn của Fedora trải qua các bước tạo liên kết tượng trưng, nhưng không tạo bất kỳ tệp .service nào trong các hướng dẫn.
Tôi còn thiếu mảnh gì? Tôi có cần tạo openvpn@vpn.service không? Nếu vậy, chính xác thì tôi đặt nó ở đâu? Tôi cảm thấy không nên khó khăn như vậy, nhưng dường như tôi không thể tìm thấy bất kỳ giải pháp nào phù hợp với mình. Tôi rất vui được cung cấp thêm thông tin cần thiết.
Dung dịch
-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)
Liên kết:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service
Nhắc mật khẩu
Bây giờ mọi thứ đều hoạt động, ngoại trừ việc được nhắc nhập mật khẩu để kết nối. Tôi đã thử giải pháp này . Tôi đã điều chỉnh tệp từ phía trên chỉ một chút và thêm một tập lệnh Expect như trong ví dụ. Làm việc như một cơ duyên! Tập tin của tôi ở bên dưới
Các dòng sửa đổi từ trên /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
Kịch bản mong đợi /lib/systemd/system/openvpn_pw.exp
. Hãy chắc chắn để làm như sau:
chmod +x
trên kịch bản.- Đã
telnet
cài đặt
Mã của kịch bản mong đợi:
#!/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
Cần lưu ý rằng giải pháp trên có ghi nhật ký mật khẩu của bạn được nhập vào bản rõ trong các bản ghi sau /var/log/syslog
và/var/log/daemon.log
journalctl -b -m
để tìm hiểu lý do OpenVPN thoát. Một trong những nơi đó nên chứa các thông báo lỗi thực sự. (Hoặc thậm chí journalctl -b -m _EXE=/usr/sbin/openvpn
chỉ nên cung cấp tin nhắn OpenVPN).
openvpn@.service
tập tin trông như thế nào?