RSS订阅王佳明的个人网站
你现在的位置:首页 / 技术 / 正文

如何在Windows上安装和配置OpenVPN服务器

0 技术 | 2024年4月7日

新冠时期,由于居家办公,需要从家里访问公司的erp服务器等内网数据。

同时,为了提升云服务的安全性,我还设置了企业邮箱和云服务器的3389端口只能从公司公网ip访问。

为了满足上述要求,我通过群晖nas和威联通nas在拥有固定公网ip的公司内网傻瓜式部署了openvpn。

连上openvpn便可以访问公司内网数据。

通过代理上网,便可以以公司公网ip访问企业邮箱和云服务器的3389端口。

但是由于许多人不习惯在nas上部署业务场景,今天来尝试一下在windows上部署openvpn

OpenVPN是一款开源软件套件,您几乎可以在所有可用的操作系统中部署 OpenVPN 的服务器部分,包括 Linux、Windows、MacOS 和 *BSD。

您可以在 Windows Server 2022/20119/2016/2012R2 甚至运行桌面 Windows 版本(Windows 10 或 11)的计算机上安装 OpenVPN 服务器。

在本文中,我们将展示如何在运行 Windows 10 的计算机上安装和配置 OpenVPN 服务器、在另一台 Windows 设备上设置 OpenVPN 客户端以及建立安全的 VPN 连接。

如何在 Windows 上安装 OpenVPN 服务器服务

从官方网站 ( https://openvpn.net/community-downloads/ ) 下载适用于您的 Windows 版本的 OpenVPN MSI 安装程序。

点击安装程序,点击customize,然后选择全部安装吧。

对于Drivers,安装 Wintun 驱动程序而不是 TAP-Windows6

因为OpenVPN 2.5(及更高版本)支持WireGuard 开发人员提供的WinTun驱动程序。该驱动程序比默认的 TAP OpenVPN 驱动程序更快。

点击install now 等待安装完成。

默认情况下,OpenVPN 安装到 C:\Program Files\OpenVPN。

安装完成后,您将看到一个新的网络适配器Wintun Userspace Tunnel。如果 OpenVPN 服务未运行,则该适配器将被禁用。

创建 OpenVPN 加密密钥和证书

打开命令提示符并转到 easy-rsa 目录:

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

创建文件的副本:

copy vars.example vars

在任何文本编辑器中打开vars文件。

请务必编辑 EASYRSA_TEMP_DIR 变量,如下所示:

set_var EASYRSA_TEMP_DIR "$EASYRSA_PKI/temp"

您可以填写证书字段(可选):

set_var EASYRSA_REQ_COUNTRY“中国”

set_var EASYRSA_REQ_PROVINCE "MY"

set_var EASYRSA_REQ_CITY“摸鱼协会”

set_var EASYRSA_REQ_ORG“MOYUXIEHUI”

set_var EASYRSA_REQ_EMAIL“ admin@lwcz.net ”

set_var EASYRSA_REQ_OU "IT 部门"

设置证书到期日期:

set_var EASYRSA_CA_EXPIRE 3650

set_var EASYRSA_CERT_EXPIRE 825

保存文件并运行命令:

EasyRSA-Start.bat

初始化 PKI:

./easyrsa init-pki

然后生成根CA:

./easyrsa build-ca

如果提示:

Error

-----

Temporary directory does not exist:

* /temp

那就执行命令

mkdir /temp

接下来输入两次CA密码,然后输入Common Name,就是起个名字,比如openvpn。

CA就创建完成。

上面的命令创建了:

证书颁发机构的根证书

证书颁发机构密钥

然后为您的 OpenVPN 服务器生成证书请求和密钥:

./easyrsa gen-req server nopass

使用您的 CA 签署请求以颁发服务器证书:

./easyrsa sign-req server server

然后输入根 CA 的 CA 密码。

server.crt 文件将出现在已发布的文件夹 ( C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt) 中。

然后就可以生成 Diffie-Hellman 密钥(需要很长时间):

./easyrsa gen-dh

生成 tls-auth 密钥:

cd C:\Program Files\OpenVPN\bin

openvpn --genkey secret ta.key

该C:\Program Files\OpenVPN\bin\ta.key文件将会出现。将其移至C:\Program Files\OpenVPN\easy-rsa\pki文件夹。

然后您可以为 OpenVPN 客户端生成密钥。连接到 VPN 服务器的每个客户端都必须有自己的密钥对。

在下面的示例中,我们将在服务器上创建客户端密钥并使用密码(PEM 密码短语)对其进行保护:

./easyrsa gen-req testuser1

./easyrsa sign-req client testuser1

将密钥文件 ( C:\Program Files\OpenVPN\easy-rsa\pki\private\testuser1.key) 复制到客户端计算机,告诉用户密码.

您可以为 VPN 服务器上的用户创建任意数量的密钥和证书。以同样的方式为其他客户端生成密钥和证书。

您可以撤销受损的客户端证书:

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

EasyRSA-Start.bat

./easyrsa revoke testuser2

我们为 OpenVPN 服务器生成了一组密钥和证书。现在您可以配置并运行您的 VPN 服务。

复制 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


保存文件

我们使用UDP在 UDP 端口 1194 上运行 OpenVPN。

服务端和客户端防火墙放行1194


启动 OpenVPNService

net start OpenVPNService


打开网络连接对话框并确保 OpenVPN Wintun 虚拟适配器现已链接。

如果不是,请检查日志文件C:\Program Files\OpenVPN\log\server.log。


如果启动 OpenVPN 时在日志中看到以下错误:

选项错误:在 C:\Program Files\OpenVPN\config-auto\server.ovpn:1 中:超出最大选项行长度 (256),行以…开头

在 server.ovpn 中将换行符更改为Windows CRLF(在 Notepad++ 中,选择编辑 -> EOL Conversion -> 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



在 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


然后将以下文件从服务器复制到安装了 OpenVPN 客户端的计算机:

ca.crt

testuser1.crt

testuser1.key

dh.pem

ta.key

testuser1.ovpn


导入配置文件,然后把上述文件全部复制到

“C:\Users\Administrator\OpenVPN\config\testuser1\”

尝试连接


至此,客户端可以连上了,server所在内网也能ping通了,但是不能通过server访问互联网。


在服务器上

控制面板\网络和 Internet\网络连接

选择以太网(使用中的本地链接)这个适配器,右击属性,共享

勾选允许其他网络用户通过此计算机的Internet的连接来连接

家庭网络连接选择 OpenVPN Wintun

勾选允许其他网络用户控制或禁用共享的Internet连接

点击确认

之后OpenVPN Wintun的ip地址会发生变化

把server.ovpn中

server 10.24.1.0 255.255.255.0

这条修改为与之相同网段

在客户端配置文件中添加

redirect-gateway def1

让所有数据通过代理。

如此配置,便也可以通过server访问互联网了。


参考:

https://woshub.com/install-configure-openvpn-server-windows/


推荐您阅读更多有关于“ OpenVPN   ”的文章

以上内容如果对你有用,请收藏。
上一篇:病毒、烟头、猪肉下一篇:这可能是因为该站点使用过期的或不安全的 TLS 安全设置

猜你喜欢

评论列表:

官方LOGO
    佳明one

    我们的使命是减少资金、技术和
    教育方面的障碍,以提供有效的
    IT科技支援。。。。。。。。。

    5ubg


    扫码从手机访问


网站分类
友情链接