openvpn安装与配置

OpenVPN安装与配置 文档概述 本文档详细介绍了OpenVPN的安装与配置方法,包括在Linux环境(Ubuntu)和DD-WRT路由器环境下的配置步骤。 简介 OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。 它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。 目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Microsoft Windows以及Android和iOS上运行,并包含了许多安全性的功能。它并不是一个基于Web的VPN软件,也不与IPsec及其他VPN软件包兼容。 基础知识点 为什么使用PKI而不是静态密码呢? 静态加密使用的是静态密钥,它容易设置,但是缺点是: 一次只能有一个客户端使用服务器 如果密钥遭到丢失,将带来不可挽回的损失 使用PKI允许一次使用多个客户端,每个客户端都有自己的密钥。服务器不必具有客户端的任何特殊知识。OpenVPN只需要提供我们即将设置的OpenVPN CA签署的证书。反之,客户端也会验证服务器的证书 OpenVPN CA密钥不应放在OpenVPN服务器上。它仅用于签署客户端的证书,因此应该存储在可以执行操作的地方,但不能被盗。一旦CA密码被盗,你将无法再信任该CA颁发的任何证书。 什么是Certificate Authority(CA)? 你可能在应用中遇到过TLS网站证书,通常证书在WEB上下文中有两个作用 加密浏览器与服务器之间的数据 确保流览器连接到目标网站 只有当浏览器信任某个证书颁发机构颁发的证书时,才可以执行第二个任务。任何人都可以制作证书,但它并不能保证证书是合法的拥有者。因为证书颁发机构可以带来可靠的额外保证,因此CA证书分为收费与免费,创建自己的CA以签署OpenVPN客户端证书是一种可以控制谁可以连接到OpenVpn服务器的有效方法。这样您的Openvpn服务器只会信任你要创建的CA签署的客户端证书。同样如果一个政府机构在互联网提供一些便民服务,那么如何有效的避免钓鱼网站的信息套取呢,注册收费的CA证书是个有效的方法。 CA证书的作用 提供身份验证和信任链 防止中间人攻击 控制VPN接入权限 完美前向保密PFS(perfect forward secrecy) “perfect forward secrecy”则是由Christoph G. Günther在EUROCRYPT ’89提出的,其最初用于定义会话密钥交换协议的一种安全性。它的作用是保证密钥丢失之前的消息案全性或签名的不可伪造性。一般而言公钥是固定的,而密钥则随着时间进行更新。这个更新过程是单向的,因引也就保证了拿到当前的密钥,是无法恢复出以前的密钥,从而保证了前向安全。 Openvpn服务器配置我们将使用“perfect forward secrecy”,也就是说,加密的数据即使在前进的进候也会是秘密的。用于连接的证书和密钥不用于加密您的通讯数据。它们在传递数据时使用临时的加密密钥。默认情况下,这个临时密钥随着时间的推移每小时旋转一次。以这种方式,如果来不法份子收集了VPN数据包要想获得临时密钥那是不可能的,它允其量能够解密你最后一小时的数据。 在Openvpn服务器上配置了perfect forward secrecy你会在日志中看到每小时数据重置的情况。 1 2 3 4 5 6 7 8 Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 TLS: soft reset sec=0 bytes=51538/0 pkts=255/0 Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 VERIFY OK: depth=1, C=US, ST=RI, L=Quahog, O=Happy Go Lucky Toys, OU=inspections, CN=Happy Go Lucky Toys CA, name=EasyRSA, [email protected] Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 VERIFY OK: depth=0, C=US, ST=RI, L=Quahog, O=Happy Go Lucky Toys, OU=inspections, CN=client, name=EasyRSA, [email protected] Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Encrypt: Using 512 bit message hash 'SHA512' for HMAC authentication Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Decrypt: Using 512 bit message hash 'SHA512' for HMAC authentication Tue Jun 13 01:51:21 2017 client/142.68.135.226:53504 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA256, 2048 bit RSA Openvpn允许您控制旋转周期以匹配偏执狂级别。在server.conf文件中配置reneg-sec xx控制关键周期是多少秒。 ...