OpenVPN 配置文件中的“auth”指令起什么作用?
我在 OpenVPN 设置中使用 PKI 系统,详细信息如下:这里,并且我已使一切正常运行(IE 客户端连接到服务器)。但是,在我的服务器或客户端配置文件中,我从未使用过“auth”指令。我在其他人的配置文件中看到过类似以下内容:
auth SHA512
我需要使用此指令吗?如果我不指定,OpenVPN 默认使用什么?
抱歉,我对加密、PKI 等不太熟悉,想尽可能强化我的 OpenVPN 服务器。请指出我应该做的任何其他改进!
编辑:
这是我的服务器配置:
port 23535
proto udp4
dev tun
ca "C:\\Program Files\\OpenVPN\\Keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\Keys\\server.crt"
key "C:\\Program Files\\OpenVPN\\Keys\\server.key"
dh "C:\\Program Files\\OpenVPN\\Keys\\dh2048.pem"
tls-crypt-v2 "C:\\Program Files\\OpenVPN\\Keys\\server-tls-crypt-v2.key"
topology subnet
server 10.43.166.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
cipher AES-256-GCM
status openvpn-status.log
verb 4
explicit-exit-notify 1
和我的客户端配置:
setenv FRIENDLY_NAME "Test VPN."
client
dev tun
proto udp4
remote vpn.server.local 23535
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
verb 4
mute-replay-warnings
<ca>
REDACTED
</ca>
<cert>
REDACTED
</cert>
<key>
REDACTED
</key>
<tls-crypt-v2>
REDACTED
</tls-crypt-v2>
答案1
这
OpenVPN 2.4 参考手册
定义auth
参数,它将覆盖配置文件中的相同参数,如下所示:
--身份验证算法
使用消息摘要算法 alg 通过 HMAC 验证数据通道数据包和(如果已启用)tls-auth 控制通道数据包。(默认值为 SHA1)。HMAC 是一种常用的消息认证算法 (MAC),它使用数据字符串、安全哈希算法和密钥来生成数字签名。OpenVPN 数据通道协议使用 encrypt-then-mac(即首先加密数据包,然后对生成的密文进行 HMAC),这可以防止填充 oracle 攻击。
至于将此值设置为 SHA512,而不是默认的 SHA1,此问题已在帖子中回答 OpenVPN 使用 SHA1 而不是 SHA512 由用户 TinCanTech 提供:
您只需理解,使用 SHA512 会浪费 VPN 节点上的 CPU 周期。
SHA1 是默认设置,因为它被认为足够安全。消息认证并不像交换数字证书密钥那样重要。