次の設定ファイルがあり、デフォルトのOpenVPNクライアントで正常に動作します。
client
dev tap
proto udp
port 1198
remote myhost.com 1194
persist-key
persist-tun
tls-client
ca my-ca.crt
cert my-client.crt
key my-client.key
verb 3
さて、同じ情報を使ってpfSense OpenVPNクライアントを設定したいと思います。
わかりません。key
ファイルの内容はどこに保存されていますか?私はcrt
適切なセクションにファイルを入れましたSystem/Certificate Manager
。
クライアント設定ページにCryptographic Settings/Key
サブメモがあるセクションがありますPaste the shared key here
。このセクションは最初は存在せず、設定が一度保存された後にのみ表示されます。表示されると、いくつかのキーが含まれています。そこにファイルの内容を貼り付けるとkey
エラーが発生します。
The field 'TLS Authentication Key' does not appear to be valid
ファイル情報はどのように入力しますか?
修正する
自動生成すると生成されます。
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
... small amount of HEX symbols ...
-----END OpenVPN Static key V1-----
そして私の鍵は
-----BEGIN PRIVATE KEY-----
... large amount of random chars...
-----END PRIVATE KEY-----
私のキーを確認してopenssl
みると2048ビットだと出ていました。どのように自動的に生成されたキー(つまり2048ビット)より大きくすることができますか?
アップデート2
自動生成されたキーをそのままにすると保存されますが、次のメッセージが表示されます。log
TLS Error: cannot locate HMAC in incoming packet from
無効にするとTLS authentication - Enable authentication of TLS packets
保存されますが、
Mar 16 22:25:39 openvpn 47325 Exiting due to fatal error
Mar 16 22:25:39 openvpn 47325 FreeBSD ifconfig failed: external program exited with error status: 1
Mar 16 22:25:39 openvpn 47325 /sbin/ifconfig ovpnc5 XX.XX.XX.XX netmask 255.255.255.0 mtu 1500 up
Mar 16 22:25:39 openvpn 47325 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mar 16 22:25:39 openvpn 47325 TUN/TAP device /dev/tap5 opened
どちらの場合も、key
ファイルは未使用のままです。
アップデート3
私のキーの前に同じ値を追加すると、
-----BEGIN OpenVPN Static key V1-----
行(同じ行で終わる行)を入力すると、GUIはキーを受け入れ、ログに次のエラーが表示されます。
Non-Hex character ('M') found at line 2 in key file '/var/etc/openvpn/client5.tls-auth' (0/128/256 bytes found/min/max)
したがって、非常に具体的なキーが必要ですが、それを通知したり記録したりしません。
答え1
pfSenseのソースコードを見るvpn_openvpn_clientモジュール、
if ($tls_mode && $pconfig['tlsauth_enable'] && !$pconfig['autotls_enable']) {
if (!strstr($pconfig['tls'], "-----BEGIN OpenVPN Static key V1-----") ||
!strstr($pconfig['tls'], "-----END OpenVPN Static key V1-----")) {
$input_errors[] = gettext("The field 'TLS Key' does not appear to be valid");
デフォルトでは、「TLSキー」フィールドに「-----BEGIN OpenVPN固定キーV1----」または「-----END OpenVPN固定キーV1----」が含まれていることを確認します。 ""、貼り付けた内容が有効なキーであることを確認しません。そのため、設定を保存するときにエラーを消去できましたが、キーはまだ機能しません(「16進数以外の文字「M」」エラーが発生しました)。
証明書マネージャに「BEGIN PRIVATE KEY」キーを入力する必要があることを確認してください(識別にキーを使用している場合)。 OpenVPNのドキュメントと関連記事を組み合わせて硬化TLSキーはパケットのソースを確認するために使用されます(つまり、すべてのパケット、制御、およびデータに適用されます)、保持しているキーは認証のためにクライアントを識別するために使用されます。識別に使用されるTLSキー所有者、保持しているキーでユーザーを識別します。