[玩转系统] 如何在 Windows 上安装和配置 OpenVPN 服务器
作者:精品下载站 日期:2024-12-14 23:28:43 浏览:14 分类:玩电脑
如何在 Windows 上安装和配置 OpenVPN 服务器
OpenVPN 是一款开源软件套件,它确实是实现安全 VPN 的最流行、最简单的解决方案之一。 OpenVPN 允许您将服务器和客户端(甚至位于 NAT 或防火墙后面的客户端)组合到单个网络中,或连接远程办公室的网络。您几乎可以在所有可用的操作系统中部署 OpenVPN 的服务器部分,包括 Linux、Windows、MacOS 和 *BSD。您可以在 Windows Server 2022/20119/2016/2012R2 甚至运行桌面 Windows 版本(Windows 10 或 11)的计算机上安装 OpenVPN 服务器。
在本文中,我们将展示如何在运行 Windows 10 的计算机上安装和配置 OpenVPN 服务器、在另一台 Windows 设备上设置 OpenVPN 客户端以及建立安全的 VPN 连接。
OpenVPN 在 SOHO 领域非常流行,可以为远程员工提供访问:您不需要购买任何特殊硬件、许可证即可构建基于 Windows Server 的 VPN 服务器,将 RDP 端口暴露到 Internet,并且可以轻松防御 RDP 暴力攻击。
如何在Windows上安装OpenVPN Server服务?
从官方网站 (https://openvpn.net/community-downloads/) 下载适用于您的 Windows 版本的 OpenVPN MSI 安装程序。在我们的例子中,这是OpenVPN-2.5.7-I602-amd64.msi (https://swupdate.openvpn.org/community/releases/OpenVPN-2.5.7-I602-amd64.msi)。
运行安装程序并选择OpenVPN Service进行安装。如果您希望 OpenVPN 服务器自动启动,则可以不安装 OpenVPN GUI。
OpenVPN 2.5(及更高版本)支持 WireGuard 开发人员的 WinTun 驱动程序。该驱动程序比默认的 TAP OpenVPN 驱动程序更快。我们建议安装 Wintun 驱动程序而不是 TAP-Windows6。
安装EasyRSA 证书管理脚本 OpenSSL 实用程序。
完成安装。
默认情况下,OpenVPN 安装到 C:\Program Files\OpenVPN。
安装完成后,您将看到一个新的网络适配器Wintun Userspace Tunnel。如果 OpenVPN 服务未运行,则该适配器将被禁用。
创建 OpenVPN 加密密钥和证书
OpenVPN 基于 OpenSSL 加密。这意味着必须使用 RSA3 密钥和证书在客户端和 VPN 服务器之间建立网络连接。
打开命令提示符并转到 easy-rsa 目录:
cd "C:\Program Files\OpenVPN\easy-rsa"
创建文件的副本:
copy vars.example vars
在任何文本编辑器中打开 vars 文件。检查 OpenVPN 和 EaseRSA 工作文件夹的路径。
请务必编辑 EASYRSA_TEMP_DIR 变量,如下所示:
set_var EASYRSA_TEMP_DIR "$EASYRSA_PKI/temp"
您可以填写证书字段(可选):
set_var EASYRSA_REQ_COUNTRY "DE"
set_var EASYRSA_REQ_PROVINCE "BY"
set_var EASYRSA_REQ_CITY "MUN"
set_var EASYRSA_REQ_ORG "WOSHUB-Com"
set_var EASYRSA_REQ_EMAIL "[email protected]"
set_var EASYRSA_REQ_OU "IT dept"
设置证书到期日期:
set_var EASYRSA_CA_EXPIRE 3650
set_var EASYRSA_CERT_EXPIRE 825
保存文件并运行命令:
EasyRSA-Start.bat
以下所有命令必须在 EasyRSA shell 中运行:
初始化 PKI:
./easyrsa init-pki
您应该看到此消息:
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: C:/Program Files/OpenVPN/easy-rsa/pki
然后生成根CA:
./easyrsa build-ca
输入两次 CA 密码:
CA creation is complete and you may now import and sign cert requests.
上面的命令创建了:
证书颁发机构的根证书:
C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt
证书颁发机构密钥:C
:\Program Files\OpenVPN\easy-rsa\pki\private\ca.key
然后为您的 OpenVPN 服务器生成证书请求和密钥:
./easyrsa gen-req server nopass
该工具将生成两个文件:
要求:
C:/Program Files/OpenVPN/easy-rsa/pki/reqs/server.req
关键:
C:/Program Files/OpenVPN/easy-rsa/pki/private/server.key
使用您的 CA 签署请求以颁发服务器证书:
./easyrsa sign-req server server
输入yes确认数据。
然后输入根 CA 的 CA 密码。
server.crt 文件将出现在 issued 文件夹中(
C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt
)。
然后就可以生成 Diffie-Hellman 密钥(需要很长时间):
./easyrsa gen-dh
要为您的 VPN 服务器提供额外的保护,建议启用 tls-auth。此功能允许在 SSL/TLS 握手中使用 HMAC 签名,从而启动额外的完整性检查。没有此类签名的数据包将被 VPN 服务器丢弃。这将保护您免受 VPN 服务器端口扫描、DoS 攻击、SSL/TLS 缓冲区溢出等。
生成 tls-auth 密钥:
cd C:\Program Files\OpenVPN\bin
openvpn --genkey secret ta.key
这
C:\Program Files\OpenVPN\bin\ta.key
文件将会出现。将其移至 C:\Program Files\OpenVPN asy-rsa\pki 文件夹。
然后您可以为 OpenVPN 客户端生成密钥。连接到 VPN 服务器的每个客户端都必须有自己的密钥对。
有多种方法可以生成 OpenVPN 密钥并将其分发给客户端。
在下面的示例中,我们将在服务器上创建客户端密钥并使用密码(PEM 密码短语)对其进行保护:
./easyrsa gen-req testuser1
./easyrsa sign-req client testuser1
复制密钥文件(
C:\Program Files\OpenVPN\easy-rsa\pki\private\testuser1.key
)到客户端计算机告诉用户密码(语音、电子邮件、短信)。客户端可以禁用密钥的密码保护:
openssl rsa -in "C:\Program Files\OpenVPN\easy-rsa\pki\private\testuser1.key"-out "C:\Program Files\OpenVPN\easy-rsa\pki\private\testuser1_use.key"
如果要生成不受密码保护的密钥,则需要运行以下命令:
./easyrsa gen-req testuser2 nopass
您可以为 VPN 服务器上的用户创建任意数量的密钥和证书。以同样的方式为其他客户端生成密钥和证书。
您可以撤销受损的客户端证书:
cd C:\Program Files\OpenVPN\easy-rsa
EasyRSA-Start.bat
./easyrsa revoke testuser2
因此,我们为 OpenVPN 服务器生成了一组密钥和证书。现在您可以配置并运行您的 VPN 服务。
适用于 Windows 的 OpenVPN 服务器配置文件
复制 OpenVPN 服务器的配置文件模板:
copy "C:\Program Files\OpenVPN\sample-config\server.ovpn" "C:\Program Files\OpenVPN\config-auto\server.ovpn"
在任何文本编辑器中打开 server.ovpn 并进行设置。我正在使用以下 OpenVPN 配置:
# Specify a port, a protocol and a device type
port 1194
proto udp
dev tun
# Specify paths to server certificates
ca "C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt"
cert "C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt"
key "C:\Program Files\OpenVPN\easy-rsa\pki\private\server.key"
dh "C:\Program Files\OpenVPN\easy-rsa\pki\dh.pem"
# Specify the settings of the IP network your VPN clients will get their IP addresses from
server 10.24.1.0 255.255.255.0
# If you want to allow your clients to connect using the same key, enable the duplicate-cn option (not recommended)
# duplicate-cn
# TLS protection
tls-auth "C:\Program Files\OpenVPN\easy-rsa\pki\ta.key" 0
cipher AES-256-GCM
# Other options
keepalive 20 60
persist-key
persist-tun
status "C:\Program Files\OpenVPN\log\status.log"
log "C:\Program Files\OpenVPN\log\openvpn.log"
verb 3
mute 20
windows-driver wintun
保存文件。
OpenVPN 允许您使用 TCP 和 UDP 协议。在此示例中,我们在 UDP 端口 1194 上运行 OpenVPN。建议使用UDP,因为它对于性能和安全性都是最佳的。
请记住在防火墙中打开您在客户端和服务器上指定的 OpenVPN 端口号的端口。您可以使用 PowerShell 在 Windows Defender 中打开端口。
OpenVPN 服务器的防火墙规则:
New-NetFirewallRule -DisplayName "AllowOpenVPN-In" -Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow
客户规则:
New-NetFirewallRule -DisplayName "AllowOpenVPN-Out" -Direction Outbound -Protocol UDP -LocalPort 1194 -Action Allow
然后运行OpenVPN服务并将其启动类型更改为自动。使用 PowerShell 命令启用该服务:
Set-Service OpenVPNService -startuptype automatic -passthru
Get-Service OpenVPNService| Start-Service
打开网络连接对话框(
ncpa.cpl
)并确保 OpenVPN Wintun 虚拟适配器现已启用。如果不是,请检查日志文件
C:\Program Files\OpenVPN\log\server.log
。
如果启动 OpenVPN 时在日志中看到以下错误:
Options error: In C:\Program Files\OpenVPN\config-auto\server.ovpn:1: Maximum option line length (256) exceeded, line starts with…
在 server.ovpn 中将换行符更改为 Windows CRLF(在 Notepad++ 中,选择“编辑”->“EOL 转换”->“Windows CR LF”)。保存文件并重新启动 OpenVPNService。
此 OpenVPN 配置仅允许远程客户端访问服务器资源。服务器本地网络中的其他计算机和服务不可用于远程客户端。为了允许 OpenVPN 客户端访问内部 LAN,请在注册表中启用 IPEnableRouter 选项(在 Windows 中启用 IP 路由,包括 Hyper-V 网络之间的路由,并允许您使用端口转发):
reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f
将到本地 IP 网络的路由添加到服务器配置文件中:
push "route 10.24.1.0 255.255.255.0"
push "route 192.168.31.0 255.255.255.0"
如果需要,为客户端分配 DNS 服务器地址:
push "dhcp-option DNS 192.168.31.10"
push "dhcp-option DNS 192.168.31.11"
如果您想将所有客户端请求(包括互联网流量)重定向到您的 OpenVPN 服务器,请添加选项:
push "redirect-gateway def1"
这些选项描述了前面考虑的情况:连接到 VPN 后丢失 Internet 连接以及连接到 VPN 时无 DNS 解析。
在 Windows 上配置 OpenVPN 客户端
使用以下设置在服务器上创建 VPN 客户端的模板配置文件(基于 client.ovpn 模板)(文件名为 testuser1.ovpn):
client
dev tun
proto udp
remote your_vpn_server_address 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert testuser1.crt
key testuser1.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-GCM
connect-retry-max 25
verb 3
在 remote 指令中指定 OpenVPN 服务器的公共 IP 地址或 DNS 名称。
下载并安装适用于 Windows 的 OpenVPN Connect (https://openvpn.net/downloads/openvpn-connect-v3-windows.msi)。
然后将以下文件从服务器复制到安装了 OpenVPN 客户端的计算机:
- ca.crt
- testuser1.crt
- testuser1.key
- dh.pem
- ta.key
- testuser1.ovpn
进口
*.ovpn
配置文件并尝试连接到您的 VPN 服务器。
如果设置正确,您将看到下图:
在客户端查看OpenVPN连接日志:
C:\Program Files\OpenVPN Connect\agent.log
Mon Jul 17 08:09:30 2022 proxy_auto_config_url
Mon Jul 17 08:09:31 2022 TUN SETUP
TAP ADAPTERS:
guid='{25EE4A55-BE90-45A0-88A1-8FA8FEF24C42}' index=22 name='Local Area Connection'
Open TAP device "Local Area Connection" PATH="\.\Global\{25EE4A55-BE90-45A0-88A1-8FA8FEF24C42}.tap" SUCCEEDED
TAP-Windows Driver Version 9.24
ActionDeleteAllRoutesOnInterface iface_index=22
netsh interface ip set interface 22 metric=1
Ok.
netsh interface ip set address 22 static 10.24.1.10 255.255.255.252 gateway=10.24.1.5 store=active
IPHelper: add route 10.24.1.1/32 22 10.24.1.5 metric=-1
客户端已成功连接到VPN服务器并收到IP地址10.24.1.10。
现在检查服务器端的 OpenVpn 日志(
C:\Program Files\OpenVPN\log\openvpn.log
)。在这里您还可以看到具有 testuser1 证书的客户端已成功连接到服务器。
2022-07-17 08:09:35 192.168.13.20:55648 [tesuser1] Peer Connection Initiated with [AF_INET6]::ffff:192.168.13.20:55648
2022-07-17 08:09:35 tesuser1/192.168.13.20:55648 MULTI_sva: pool returned IPv4=10.24.1.10, IPv6=(Not enabled)
2022-07-17 08:09:35 tesuser1/192.168.13.20:55648 MULTI: Learn: 10.24.1.10 -> testuser1/192.168.13.20:55648
2022-07-17 08:09:35 tesuser1/192.168.13.20:55648 MULTI: primary virtual IP for tesuser1/192.168.13.20:55648: 10.24.1.10
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag