win server部署open VPN(亲测有用---成功)

本文详细指导了如何安装OpenVPN服务,包括设置CA证书、生成服务器和客户端证书,以及配置网络共享和安全设置。还介绍了如何吊销不再需要的客户端证书。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

步骤一:安装OpenVPN服务

下载最新版本的OpenVPN服务端,可以从这个地址下载:

Community Downloads | OpenVPN

下载的文件名为:OpenVPN-2.5.5-I602-amd64.msi

双击安装,选择“Customize”

默认情况下不会安装的两个特性,我们需要在安装过程中进行选择。

  • OpenVPN Service
  • OpenSSL  Utilities
  • 点击install now

安装完成后,点击close。

这时会弹出一个提醒框,提示没有找到可连接的配置文件,现在不用管它,点击ok即可。

我们打开网络和共享中心,点击更改适配器设置,可以看到多了两个网络连接

步骤二:设置CA证书、生成服务端和客户端的证书和私钥等

找到目录“C:\Program Files\OpenVPN\easy-rsa”,将文件vars.example复制一份改名为vars,“vars”文件包含内置的Easy-RSA配置设置。可以保持默认设置,也可以自定义更改。

属性

默认值

作用

set_var EASYRSA

C:\Program Files\OpenVPN\easy-rsa

Defines the folder location of easy-rsa scripts

set_var EASYRSA_OPENSSL

C:\Program Files\OpenVPN\bin\openssl.exe

Defines the OpenSSL binary path

set_var EASYRSA_PKI

C:\Program Files\OpenVPN\easy-rsa\pki

The folder location of SSL/TLS file exists after creation

set_var EASYRSA_DN

cn_only

This is used to adjust what elements are included in the Subject field as the DN

set_var EASYRSA_REQ_COUNTRY

“US”

Our Organisation Country

set_var EASYRSA_REQ_PROVINCE

“California”

Our Organisation Province

set_var EASYRSA_REQ_CITY

“San Francisco”

Our Organisation City

set_var EASYRSA_REQ_ORG

“Copyleft Certificate Co”

Our Organisation Name

set_var EASYRSA_REQ_EMAIL

“me@example.net”

Our Organisation contact email

set_var EASYRSA_REQ_OU

“My Organizational Unit”

Our Organisation Unit name

set_var EASYRSA_KEY_SIZE

2048

Define the key pair size in bits

set_var EASYRSA_ALGO

rsa

The default crypt mode

set_var EASYRSA_CA_EXPIRE

3650

The CA key expire days

set_var EASYRSA_CERT_EXPIRE

825

The Server certificate key expire days

set_var EASYRSA_NS_SUPPORT

“no”

Support deprecated Netscape extension

set_var EASYRSA_NS_COMMENT

“HAKASE-LABS CERTIFICATE AUTHORITY”

Defines NS comment

set_var EASYRSA_EXT_DIR

"$EASYRSA/x509-types"

Defines the x509 extension directory

set_var EASYRSA_SSL_CONF

"$EASYRSA/openssl-easyrsa.cnf"

Defines the openssl config file location

set_var EASYRSA_DIGEST

"sha256"

Defines the cryptographic digest to use

如没有特殊要求,则vars文件保持默认即可。

现在打开cmd(管理员权限),切换到“C:\Program Files\OpenVPN\easy-rsa”目录下

cd C:\Program Files\OpenVPN\easy-rsa

EasyRSA-Start.bat

输入EasyRSA-Start.bat回车后,我们会进入到easy-rsa3的shell会话

执行init-pki来创建pki目录

./easyrsa init-pki

现在,使用下面的命令构建证书颁发机构(CA)密钥。这个CA根证书文件稍后将用于签署其他证书和密钥。我们使用的“nopass”选项用于禁用密码。

./easyrsa build-ca nopass

命令将被要求输入通用名称。这里我输入的VPN服务器主机名是OPENVPNSERVER,这是一种常见的做法。在这里,我们可以自由使用任何名称或值。同时创建的CA证书将被保存到文件夹“C:\Program Files\OpenVPN\easy-rsa\pki”,文件名为“ca .crt”。请参考下面的截图。

现在使用下面的命令构建一个服务器证书和密钥。这里将< SERVER >替换为您自己的服务器名。我还使用Option nopass来禁用密码。

./easyrsa build-server-full <SERVER> nopass

颁发的服务器证书将在“C:\Program Files\OpenVPN\easy-rsa\pki\issued”文件夹中,文件名为SERVER .crt。

这里可以使用以下命令进行验证,返回ok就没问题

openssl verify -CAfile pki/ca.crt pki/issued/SERVER.crt

现在,使用下面的命令构建客户端证书和密钥。将< CLIENT >替换为您的客户端名称。也使用选项nopass来禁用密码。

./easyrsa build-client-full <CLIENT> nopass

颁发的客户端证书也会被保存到“C:\Program Files\OpenVPN\easy-rsa\pki\issued”文件夹中,文件名为“CLIENT.crt”。

同样这里可以使用以下命令进行验证,返回ok就没问题

openssl verify -CAfile pki/ca.crt pki/issued/CLIENT.crt

到这里就完成了CA证书,服务器和客户端证书的生成和密钥。这些密钥将用于OpenVPN服务器和客户端之间的身份验证。

现在生成一个用于标准RSA证书/密钥之外的共享密钥。文件名为tls-auth.key。

使用这个密钥,我们启用TLS -auth指令,它添加一个额外的HMAC签名到所有SSL/TLS握手包的完整性验证。任何不带有正确HMAC签名的UDP包可以被丢弃而无需进一步处理。

启用tls-auth可以保护我们免受:

  • OpenVPN UDP端口上的DoS攻击或端口泛洪。
  • 端口扫描,以确定哪些服务器UDP端口处于侦听状态。
  • SSL/TLS实现中的缓冲区溢出漏洞。
  • 从未经授权的机器发起SSL/TLS握手。

首先使用GitHub链接https://github.com/TinCanTech/easy-tls下载Easy-TLS。它是一个Easy-RSA扩展工具,我们正在使用它来生成tls-auth密钥。

请参考下面的截图。

然后解压“easy-tls-2.7.0.zip文件夹,将“easytls”和“easytls-openssl.cnf”文件拷贝到“C:\Program files \OpenVPN\easy-rsa”目录下。查看下面的截图作为参考。

现在回到EasyRSA shell提示符并输入下面的命令。初始化easy-tls脚本程序。

./easytls init-tls

现在,使用下面的命令生成tls-auth密钥。

./easytls build-tls-auth

该命令将生成名为“tls-auth”的密钥文件。在“C:\Program Files\OpenVPN\easy-rsa\pki\easytls”文件夹下。请参考下面的截图。

现在我们需要生成Diffie Hellman参数

OpenVPN服务器必须要生成Diffie Hellman参数

这些参数定义了OpenSSL如何执行Diffie-Hellman (DH)密钥交换。Diffie-Hellman密钥交换是一种通过公共信道安全地交换密码密钥的方法

发出下面的命令,从EasyRSA shell生成Diffie Hellman参数(这个过程可能需要1分钟左右时间)

./easyrsa gen-dh

该命令将在“C:\Program Files\OpenVPN\easy-rsa\pki”文件夹下创建dh文件,文件名为“dh .pem”。请参考下面的截图。

这就完成了OpenVPN服务所需的SSL/TLS密钥文件的生成。我们将能够在下面的文件夹中找到创建的文件。

目录

内容

C:\Program Files\OpenVPN\easy-rsa\pki

CA file, DH file and other OpenSSL related files like config file

C:\Program Files\OpenVPN\easy-rsa\pki\private

Include the private key files of CA, Server and Client certificates

C:\Program Files\OpenVPN\easy-rsa\pki\easytls

Contains the tls-auth key

C:\Program Files\OpenVPN\easy-rsa\pki\issued

Contains issued Server and Client certificates

下面是有关文件的简短说明

Filename

Needed By

Purpose

Secret

ca.crt

server + all clients

Root CA certificate

No

ca.key

Server Only

Root CA key

YES

dh.pem

server only

Diffie Hellman parameters

No

SERVER.crt

server only

Server Certificate

No

SERVER.key

server only

Server Key

Yes

CLIENT.crt

Client only

Client Certificate

No

CLIENT.key

Client only

Client Key

Yes

tls-auth.key

server + all clients

Used for tls-auth directive

No

步骤三:配置ip转发和网络共享

打开注册表,win+R,输入regedit.exe,依次找到:HKEY LOCAL MACHINESYSTEM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters将IPEableRouter值改为1,如下图

然后打开控制面板,找到“控制面板\网络和 Internet\网络连接”,右键点击“以太网”,点击“属性”,在“共享”中钩上“允许其他网络用户通过此计算机的internet连接来连接”,并选择“OpenVPN TAP-Windows6”,点击确定。

步骤四:创建服务端配置文件

首先打开Windows资源管理器,进入C:\Program Files\OpenVPN\sample-config文件夹,将server.ovpn文件复制一份到C:\Program Files\OpenVPN\config目录下。

同时将以下文件一并复制到C:\Program Files\OpenVPN\config目录下

  • ca.crt
  • dh.pem
  • SERVER.crt
  • SERVER.key
  • tls-auth.key

编辑server.ovpn文件,修改以下地方,其他保持默认即可

local x.x.x.x  # 这个是服务器的内网IP地址

ca ca.crt

cert SERVER.crt

key SERVER.key

dh dh.pem

push " route 192.168.10.0 255.255.255.0"  # 内网网段

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 114.114.114.114" # 可以改成其他的DNS服务器

push "dhcp-option DNS 8.8.8.8"

tls-auth tls-auth.key 0 # This file is secret

cipher AES-256-GCM

点击连接,图标变绿就正常。

步骤五:客户端安装

双击之前下载的OpenVPN-2.5.5-I602-amd64.msi安装,选择‘’install now‘’:

步骤六:配置客户端

复制以下文件到你的客户端,并且在同一目录下

  • ca.crt
  • CLIENT.crt
  • CLIENT.key
  • tls-auth.key
  • client.ovpn(“C:\Program Files\OpenVPN\sample-config”)

编辑client.ovpn,修改以下参数,其他保持默认

remote *.*.*.* 1194 # 服务器公网IP地址

ca ca.crt

cert client.crt

key client.key

tls-auth tls-auth.key 1

cipher AES-256-GCM

右击桌面任务栏带锁小图标,点击连接,变绿说明连接成功:

步骤七:验证

Win+R,输入cmd,pingVPN服务端虚拟地址和内网地址:

步骤八:吊销客户端证书

当我们创建了多个用户使用,然后某些原因,个别用户需要禁用的时候,我们就可以使用吊销证书的方式来处理。

首先在你的OpenVPN服务器上,打开cmd管理员权限窗口,进入目录“C:\Program Files\OpenVPN\easy-rsa\”

cd "C:\Program Files\OpenVPN\easy-rsa"

EasyRSA-Start.bat

进入easyrsa的shell界面

输入以下命令

./easyrsa revoke <client>  # 你要吊销的客户端名

./easyrsa gen-crl # 生成crl.pem文件,用来记录吊销的证书

编辑server.ovpn(“C:\Program Files\OpenVPN\config”下),在行尾加入一行

crl-verify "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\crl.pem" # 用来告知服务端有哪些证书是被吊销的

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值