OpenVPNクライアントの「TLSエラー:TLSハンドシェイクに失敗しました」を修正


16

パブリックインターネット上のSMBトラフィックを暗号化するために、Arch LinuxサーバーでOpenVPN 2.3.6-1を構成しています。Linux仮想マシンクライアントの1つでセットアップをテストすると、次のエラーが表示されますTLS Error: TLS handshake failed

私はすぐに読んで(OpenVZ TLSエラーのOpenVPN:TLSハンドシェイクが失敗しました(グーグルが解決策を提案しませんでした))、デフォルトのUDPからTCPに切り替えようとしましたが、それはクライアントが接続がタイムアウトしたことを繰り返し報告するだけでした。また、暗号とTLS認証を無効にしようとしましたが、それによりサーバーが失敗しましたAssertion failed at crypto_openssl.c:523。どちらの場合も、クライアント構成とサーバー構成の両方に必要な変更が加えられました。

私は(https://wiki.archlinux.org/index.php/OpenVPN)の指示に従ってOpenVPNをセットアップし、(https://wiki.archlinux.org/index.php/Create_a_Public_Key_Infrastructure_Using_the_easy-rsa_Scriptsの指示に従っています。)キーと証明書を作成します。これらの手順からの唯一の逸脱は、自分のコンピューターの名前と、対応するキー/証明書ファイル名を指定することです。

インターネット上のSMBトラフィックの保護に関する私の元の質問も参照してください:(Samba共有の単純な暗号化

誰も私がこの問題を解決する方法を説明できますか?

詳細:

サーバー:イーサネットケーブルを介してゲートウェイに直接接続されたArch Linux(最新)。iptablesはありません。

クライアント:VirtualBox 4.3.28r100309 Windows 8.1ホスト上のブリッジLinux(最新)仮想マシン、ブリッジネットワークアダプター。iptablesはありません。Windowsファイアウォールが無効です。

ゲートウェイ:ポート1194のポート転送が有効になっており、ファイアウォールの制限はありません。

サーバーとクライアントの構成ファイルはそれぞれ次のとおりです。Arch Wikiの指示に従って作成しました。

/etc/openvpn/server.conf (非コメント行のみ):

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server-name.crt
key /etc/openvpn/server-name.key
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

/etc/openvpn/client.conf (非コメント行のみ):

client
dev tun
proto udp
remote [my public IP here] 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client-name.crt
key /etc/openvpn/client-name.key
remote-cert-tls server
tls-auth /etc/openvpn/ta.key 1
comp-lzo
verb 3

上記の構成のマシンでopenvpnを実行した場合の出力を次に示します。最初にサーバーを起動し、次にクライアントを起動しました。

openvpn /etc/openvpn/server.confサーバー上での出力:

Thu Jul 30 17:02:53 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec  2 2014
Thu Jul 30 17:02:53 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 17:02:53 2015 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x.  Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Thu Jul 30 17:02:53 2015 Diffie-Hellman initialized with 2048 bit key
Thu Jul 30 17:02:53 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 17:02:53 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 17:02:53 2015 ROUTE_GATEWAY 192.168.0.1/255.255.255.0 IFACE=enp5s0 HWADDR=##:##:##:##:##:##
Thu Jul 30 17:02:53 2015 TUN/TAP device tun0 opened
Thu Jul 30 17:02:53 2015 TUN/TAP TX queue length set to 100
Thu Jul 30 17:02:53 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Jul 30 17:02:53 2015 /usr/bin/ip link set dev tun0 up mtu 1500
Thu Jul 30 17:02:53 2015 /usr/bin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
Thu Jul 30 17:02:53 2015 /usr/bin/ip route add 10.8.0.0/24 via 10.8.0.2
Thu Jul 30 17:02:53 2015 GID set to nobody
Thu Jul 30 17:02:53 2015 UID set to nobody
Thu Jul 30 17:02:53 2015 UDPv4 link local (bound): [undef]
Thu Jul 30 17:02:53 2015 UDPv4 link remote: [undef]
Thu Jul 30 17:02:53 2015 MULTI: multi_init called, r=256 v=256
Thu Jul 30 17:02:53 2015 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Thu Jul 30 17:02:53 2015 IFCONFIG POOL LIST
Thu Jul 30 17:02:53 2015 Initialization Sequence Completed

openvpn /etc/openvpn/client.confクライアントでの出力:

Thu Jul 30 21:03:02 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec  2 2014
Thu Jul 30 21:03:02 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/client-name.key' is group or others accessible
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/ta.key' is group or others accessible
Thu Jul 30 21:03:02 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 21:03:02 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 21:03:02 2015 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Thu Jul 30 21:03:02 2015 UDPv4 link local: [undef]
Thu Jul 30 21:03:02 2015 UDPv4 link remote: [AF_INET][my public IP here]:1194
Thu Jul 30 21:04:02 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Thu Jul 30 21:04:02 2015 TLS Error: TLS handshake failed
Thu Jul 30 21:04:02 2015 SIGUSR1[soft,tls-error] received, process restarting
Thu Jul 30 21:04:02 2015 Restart pause, 2 second(s)

1
クライアントはサーバーからまったく応答を受け取りません。忘れてしまったファイアウォールがあるか、ポート転送が機能していません。
マイケルハンプトン

2
tcpdump -ni eth0 udp and port 1194 サーバーで次のようなパケットスニッフィングを行い、パケットが到着するかどうかを確認します。それらがファイアウォールでパケットを落とすことに問題がある可能性があり、そうでない場合は、おそらくルーターのポート転送に何らかの問題があります。ルーターでも同様に行うことができます。ショットを与えて、より高いポートを使用してみてください。これは一般的ではありませんが、ISPがポート11194 / UDPまたは53 / UDPなどの何かを台無しにした可能性があります。
ミハルソコロウスキ

うん、それは転送でした。私は通常UDPを使用しないため、ルールを作成するときにプロトコルを変更するのを忘れていました。それを答えとして投稿します。
カイル

3
パケットがサーバーのtcpdumpに表示される場合、openvpnに正しく到着することを確認する方法はありますか?
ヨースト

回答:


9

私もこの問題を抱えていました。

サーバーにデジタルオーシャンプロバイダーを使用していますが、問題はフローティングIP機能にありました。

これを修正するには、openvpn構成設定を更新する必要があります。

local <ip anchor>

IPアンカーは、ip addrコマンドから収集されたIPアドレスである必要があります。例を参照してください。 ここに画像の説明を入力してください

この投稿のクレジット


pfsenseデバイスでもこの問題が発生しました。local <ip address of VPN server>サーバー構成にエントリを追加すると修正されました。TCPの場合、このエントリは不要であり、エラーを与えるのはUDPのみであることに注意してください。
ヴィンチェンツォピイ

5

私の質問に対するコメントでマイケル・ハンプトンとミカル・ソコロウスキーが示唆したように、それはゲートウェイで作成したポート転送ルールの問題でした。OpenVPNはUDPを使用するように構成されていますが、通常はそのプロトコルを使用しないため、ゲートウェイでTCPからUDPに切り替えるのを忘れていました。転送ルールはUDPを使用するようになり、VPNは機能します。


0

OSコアの更新後に表示される場合。または、着信パケットはサーバーのtcpdumpに表示されますが、まだ機能しません。単純なファイアウォールの無効化/有効化を試してください。たぶん誰かが助けてくれるでしょう。

sudo ufw disable
sudo ufw enable

0

現在の構成は、一部の国では機能しますが、他の国では機能しません。現在のプロバイダーがTLSハンドシェイクパケットをブロックしていると思われます。解決?私はそのVPNを使用している唯一の人なので、静的キー認証に切り替えました-私の場合-超高速であることが証明されました https://openvpn.net/index.php/open-source/documentation/miscellaneous/78-static -key-mini-howto.html


0

サーバー側のデフォルトゲートウェイが正しく構成されていないため、この問題が発生していました。OpenVPNサーバーはクライアントから接続試行を取得していましたが、正しいルーターに到達しなかったため、応答が失われていました。


これをどこで変更しなければならなかったか覚えていますか?これはetc/openvpn/server.conf
アーサーAttout

サーバー側のルーティングテーブルに何か問題があったと思います。で確認してくださいip route
lanoxx

0

この問題が発生しました。.ovpnファイルを確認すると、?。ddns.netがIPアドレスに変更されていることがわかりました。そのため、接続できませんでした。IPを?.ddns.netアドレスに戻し、接続しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.