Bashスクリプトでopenvpnトンネルを設定する

Bashスクリプトでopenvpnトンネルを設定する

コンピュータの起動時にopenvpnトンネルを設定するスクリプトを作成しようとしています。主な問題は、pkcs12パスワードを入力することです。私はパスワードをプレーンテキストで保存することは非常に悪い習慣であることを知っていますが、それについてはあまり心配しません。コンピュータは他のすべての点で非常に安全なので、私以外は誰もがアクセスしてコンテンツを見ることができないと確信しています。パスワード。

Telnetセッションを介してパスワードを入力できるようにし、--managementオプションを追加しました。--management-query-passwordsこれを手動で実行すると正常に動作しますが、bashスクリプトを使用して自動化しようとすると失敗します。私の考えでは、パスワード行の後にキャリッジリターンを正しく実行していないか、他のジャンク値がTelnetセッションに入力にこっそり入っているようです。関連するコードビットは次のとおりです(xxxは分類内容を表します)。

$ cat user.ovpn
#OpenVPN Server conf
tls-client
client
dev tun
proto udp
tun-mtu 1400
remote xxxxxxxxxxxxxxxxxxx 1194
pkcs12 user.p12
cipher AES-256-CBC
comp-lzo
verb 3
ns-cert-type server
tls-remote xxxxxxxxxxxxxxxxxxxxxxx
management 127.0.0.1 5558
management-query-passwords

$ cat telnet_commands.sh
#!/bin/bash
echo "open 127.0.0.1 5558"
sleep 1
echo -e "password 'Private Key' xxxxxxxxxx\r\n"

$ nohup openvpn user.ovpn &
$ ./telnet_commands.sh | telnet

$ #manually check whether this worked:
$ telnet 127.0.0.1 5558
Escape character is '^]'.
>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info
>PASSWORD:Need 'Private Key' password

明らかにこれはうまくいきません。 openvpn Telnet 管理インターフェイスはまだパスワードを待っています。

ベストアンサー1

ただ言いたかったです(少なくともUbuntu 12.04では)--askpass /あなたの/ファイルopenvpnのパラメータは、ファイルから秘密鍵のパスワードを読み取ります。

おすすめ記事