わかりましたので、私はこの問題の解決策をウェブで検索してきましたが、答えは私にはうまくいかないようです。うまくいけば誰かが私を助けることができます。OpenVPN Clientのみを構成しようとしています。
私は走っていますがCrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
、使用するように切り替えましたsystemd
。切り替えは十分スムーズに進みましたが、systemdを使用してOpenVPNクライアントを起動できません。これらの構成チュートリアルに従ってみましたが、何も機能しません。
- 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ファイルを作成しないでください。
何が欠けていますか?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
パスワードの入力を求める
接続するためのパスワードの入力を求められることを除いて、現在すべてが機能しています。私はこの解決策を試みました。上記のファイルを少し調整し、例のようにExpectスクリプトを追加しました。魅力のように働く!私のファイルは以下です。
上記の修正された行 /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
インストール
expectスクリプトのコード:
#!/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が終了した理由を見つけてください。それらの場所の1つに実際のエラーメッセージが含まれている必要があります。(または、journalctl -b -m _EXE=/usr/sbin/openvpn
OpenVPNメッセージだけを提供する必要があります)。
openvpn@.service
ファイルはどのように見えますか?