Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

OpenVPN 协议 (OpenVPN)

借助 OpenVPN,你可以通过单个 UDP 或 TCP 端口隧道传输任意 IP 子网或虚拟以太网适配器。它使用 OpenSSL 库的所有加密、身份验证和证书功能,在你的私有网络流量穿越互联网时对其进行保护。

OpenVPN 有两种身份验证模式:

  • Static Key - 使用预共享静态密钥
  • TLS - 使用 SSL/TLS + 证书进行身份验证和密钥交换

对于 TLS 身份验证,OpenVPN 使用一种自定义安全协议,该协议在此 WIKI 页面中描述。此协议为 SSL/TLS 连接提供可靠传输层(因为它被设计为在其上运行)。它的第二个任务是将用于身份验证和密钥交换的 SSL/TLS 会话与实际加密隧道数据流进行复用。

SSL/TLS -> Reliability Layer -> \ --tls-auth HMAC \ \ > Multiplexer ----> UDP / TransportIP Encrypt and HMAC /Tunnel -> using OpenSSL EVP --> /Packets interface.

历史

我找不到关于此协议的任何历史信息。

协议依赖

  • UDP:通常,OpenVPN 使用 UDP 作为其传输协议。OpenVPN 流量的知名 UDP 端口是 1194。

  • TCP:此外,OpenVPN 可以配置为使用 TCP 作为其传输协议。OpenVPN 流量的知名 TCP 端口是 1194。

示例流量

Wireshark

OpenVPN dissector 功能完整,并自 Wireshark 1.10.0 版本起随 Wireshark 一起提供。

首选项设置

  • OpenVPN TCP Port:dissector 会自动尝试将此端口上的 TCP 数据包解析为 OpenVPN 流量。

  • OpenVPN UDP Port:dissector 会自动尝试将此端口上的 UDP 数据报解析为 OpenVPN 流量。

  • override tls-auth detection:如果 tls-auth 检测失败,你可以选择覆盖检测并手动设置 tls-auth 选项。

  • --tls-auth used?:如果使用参数 --tls-auth,则还必须定义以下首选项。

  • size of the HMAC header in bytes:默认 HMAC 算法是 SHA-1,它会生成 160 bit HMAC,因此 20 字节应该可以。

  • packet-id for replay protection includes optional time_t timestamp?:如果使用参数 --tls-auth,则会在 HMAC 签名之后插入一个额外的 packet-id,用于重放保护。此字段可以是 4 字节,也可以是包含可选 time_t timestamp long 的 8 字节。默认值为 True。

示例抓包文件

  • SampleCaptures/OpenVPN_UDP_tls-auth.pcapng

  • SampleCaptures/OpenVPN_TCP_tls-auth.pcapng

显示过滤器

完整的 OpenVPN 显示过滤器字段列表可在显示过滤器参考中找到

仅显示基于 OpenVPN 的流量:

 openvpn

抓包过滤器

抓包时无法直接过滤 OpenVPN 协议。不过,如果你知道所使用的 UDP 或 TCP 端口(见上文),则可以基于该端口进行过滤。

仅抓取默认端口(1194)上的 openvpn 流量:

 udp port 1194

 tcp port 1194

外部链接

讨论

于 2020-08-11 23:17:42 UTC 从 https://wiki.wireshark.org/OpenVPN 导入

原始页面图片

openvpn_sample_traffic.png
openvpn_sample_traffic.png
openvpn_preferences.png
openvpn_preferences.png

相关 Wireshark Wiki 页面

网络分析技术档案