? ? ? ? OpenVPN的静态秘钥方式其实采用的就是预共享秘钥方式,客户端和服务端都持有一份相同的秘钥,之后交互的数据都由该秘钥加密。
? ? ? ? 使用静态秘钥方式连接的优点是既简单(没有证书的验证和秘钥协商的过程),又安全(采用当前安全的对称加密算法)。
? ? ? ? 由于静态秘钥采用的是预共享秘钥,这种加密方式不适合于多个客户端和服务器通信,试想一下,如果多个客户端都持有该共享秘钥,只要其中一个客户端泄露了秘钥,那么,其他客户端的通信也就没法保密了。所以,静态秘钥只适用于服务器和单个客户端的模式。
? ? ? ? 本文将介绍OpenVPN静态秘钥的配置方式。
dev tun
proto udp
ifconfig 10.8.0.1 10.8.0.2
secret static.key
status openvpn-status.log
log /var/log/openvpn.log
verb 3
? ? ? ? 从以上配置文件中可以看出,静态秘钥连接和非加密连接的区别就是多加了个secret选项,secret选项后面带的就是静态秘钥文件。静态秘钥文件的内容如下:
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
e71e556c44197a9625974d0632b58ff7
471e39cf0a083d53b50a5760dc38e217
726b5b1e16163287fc46588f1d95c881
cc57eba02584409a40f34594071b1b03
1a24a37f0218f35488ae5d6b415b0646
2f993896f88239d7b74a45e644846c24
6c1bdba402fcd1f0e848ffd72b0e8228
d3c71b4d55a6f99c59b0a168b5ea85f8
fe02e968afb0be3a0ab19235cd2c852a
42591a8e5da3e7845558029f159dfd16
5227a0efb959c48b21cdb9579c9c5166
e82bd33f80d0e083982dcb80594ff0ed
1419b7474909b5aa58ed7cc7c1e4b917
3e6c0cb782d5730cfa77a0d216e6a64a
38e286ebc4c53ff6b8230dae8ed9cb12
e4323a24d087c383c7d9a5700eee9a21
-----END OpenVPN Static key V1-----
? ? ? ? 静态秘钥文件由openvpn命令生成,命令如下:
openvpn --genkey --secret static.key
选项介绍如下:
? ? ? ? --genkey:表示本命令要生成秘钥文件。
? ? ? ? --secret:表示生成的秘钥文件是静态秘钥文件。
tips:这个静态秘钥文件可以由服务器端生成或是客户端生成都可以,关键的地方在于如何安全的将秘钥文件安全的送到对方手上。
openvpn --cd /etc/openvpn --config server.conf
? ? ? ? 启动命令和非加密模式一样。
dev tun
proto udp
secret static.key
remote 192.168.5.100 1194
ifconfig 10.8.0.2 10.8.0.1
verb 3
? ? ? ? 客户端的配置文件相比于非加密模式也只是多了secret选项,由上面介绍服务器端可知,static.key文件的内容要和服务器端的一致。其他的选项就不做解释了,非加密连接这里有介绍。
openvpn --cd /etc/openvpn --config client.conf
? ? ? ? 本文简单介绍了OpenVPN静态秘钥连接方式的特点,服务端和客户端的配置文件,以及静态秘钥文件的生成方式。
? ? ? ? 本文提到的"服务器"和"客户端",由于是点对点方式,更准确的说法是连接端和被连接端,这里被连接端指代的是服务器,连接端指代的是客户端。