Ubuntu搭建openVpn服务端

XJzz3 2024-10-05 10:07:03 阅读 93

文章目录

Ubuntu 搭建openVpn服务端,多客户端‘1. 安装 openvpn libssl-dev openssl2 安装easy-rsa3 设置openvpn环境变量4 制作相关证书4.1 加载变量并初始化pki4 .2生成ca证书4 .3生成dh证书4.4 生成服务端证书

4.5生成客户端证书4. 6 生成ta.key4.7 设置服务端配置文件5. 后台启动openvpn服务6. 服务端连接windows连接6.1 客户端配置文件导入6.2 客户端配置文件添加

Ubuntu 搭建openVpn服务端,多客户端‘

OpenVPN 是一种开源的虚拟专用网络(VPN)解决方案,它可以建立安全的点对点或站点到站点连接,通过公共网络(如互联网)进行加密通信。

OpenVPN 可以用于多种场景,包括远程访问、安全通信、跨地域网络连接等,是一个广泛使用和信赖的VPN解决方案。

1. 安装 openvpn libssl-dev openssl

openvpn 是要安装的主要软件包,用于实现虚拟私人网络(VPN)功能。 libssl-dev 是 OpenSSL

开发库,通常在需要进行与加密相关的开发时需要安装。 openssl 是一个强大的加密工具和库。

2 安装easy-rsa

easy-rsa是用来制作openvpn相关证书的。

进入Easy-RSA到这个目录:

<code>sudo apt update

sudo apt-get install easy-rsa

3 设置openvpn环境变量

cd ~ /usr/share/easy-rsa

编辑vars文件,设置证书参数:

vim vars

export EASYRSA_REQ_COUNTRY="CN"code>

export EASYRSA_REQ_PROVINCE="YC"code>

export EASYRSA_REQ_CITY="YICHANG"code>

export EASYRSA_REQ_ORG="YUSU"code>

export EASYRSA_REQ_EMAIL="YUSUtech@.com"code>

export EASYRSA_REQ_OU="YUSU"code>

export KEY_NAME="server"code>

4 制作相关证书

4.1 加载变量并初始化pki

执行./easyrsa init-pki命令会在当前目录创建一个pki目录,用于存储一些中间变量及最终生成的证书。

source vars

cd ~ /usr/share/easy-rsa

./easyrsa init-pki

4 .2生成ca证书

CA 证书在 OpenVPN

等安全通信中起着重要作用,它包含了证书颁发机构的信息,用于对其他证书(如服务器证书、客户端证书等)进行签名和验证,以确保证书的真实性和可靠性。

./easyrsa build-ca nopass

4 .3生成dh证书

./easyrsa gen-dh

./easyrsa gen-dh 命令用于生成 Diffie-Hellman(DH)参数。在使用 Easy-RSA 进行证书相关操作时,生成

DH 参数是一个重要的步骤。DH 参数通常仅由 TLS 服务器使用,它用于确保密钥可以穿越不安全网络。虽然 CA 的 PKI

也可以生成这个,但在服务器本身上执行生成更有意义,以避免生成后将文件发送到另一个系统。 执行该命令后,会在相应的目录(例如 Easy-RSA

初始化时创建的 pki 目录)中生成 dh.pem 文件,该文件即包含了生成的 DH 参数。

4.4 生成服务端证书

使用默认方式生成服务器端证书,过期时间为825天(推荐使用自定义):

./easyrsa build-server-full vpn-server nopass

使用自定义过期时间3650天:

easyrsa_cert_expire=3650 ./easyrsa build-server-full server nopass

./easyrsa build-server-full vpn-server nopass 命令用于生成 OpenVPN

服务端的相关证书和密钥。 easyrsa:是一个用于管理证书颁发机构(CA)和生成证书的工具。

build-server-full:表示构建完整的服务器证书。 vpn-server:是为生成的服务器证书指定的名称,这里将其命名为

vpn-server。 nopass:表示不使用密码保护生成的私钥。 执行该命令后,会在相应的目录(通常是 Easy-RSA 初始化时创建的

pki 目录)中生成服务端的证书和私钥文件。

4.5生成客户端证书

使用默认过期时间825天(推荐使用自定义):

./easyrsa build-client-full user01 nopass

./easyrsa build-client-full user02 nopass

./easyrsa build-client-full user03 nopass

自定义过期时间3650天:

easyrsa_cert_expire=3650 ./easyrsa build-client-full user02 nopass

这三条命令用于分别为 user01、user02 和 user03和user04 生成完整的客户端证书。 ./easyrsa

build-client-full 表示构建完整的客户端证书,nopass 表示私钥不设置密码。 执行这些命令后,会在相应的目录(通常是

Easy-RSA 初始化时创建的 pki 目录)中为每个用户生成对应的证书和私钥文件。

这些生成的证书和私钥在配置客户端与服务端的连接时会被使用,以确保客户端与服务端之间通信的安全性和身份验证。

4. 6 生成ta.key

openvpn --genkey --secret pki/ta.key

openvpn --genkey --secret pki/ta.key 这条命令用于生成 OpenVPN 的静态密钥文件 ta.key

并将其保存到 pki 目录下。这个静态密钥通常用于在 OpenVPN 服务器和客户端之间建立隧道时进行额外的加密和认证。 例如,在配置

OpenVPN 服务器和客户端时,需要在相应的配置文件中指定这个静态密钥的路径,以启用相关的加密和认证功能,增强通信的安全性。

// 将所有的配置文件都转移到etc/openvpn目录下面

cp pki/ca.crt /etc/openvpn/ca.crt

cp pki/dh.pem /etc/openvpn/dh.pem

cp pki/issued/vpn-server.crt /etc/openvpn/server.crt

cp pki/private/vpn-server.key /etc/openvpn/server.key

cp pki/ta.key /etc/openvpn/ta.key

4.7 设置服务端配置文件

创建一个配置文件 /etc/openvpn/server.conf:

cd /etc/openvpn

vim server.conf

配置文件包含的内容

协议,端口,保持时间,客户端最大连接数各个证书加密信息和加密算法ip地址池 设置,将ip地址持久化到本地ipp.txt文件中启动lzo压缩日志设置

# Secure OpenVPN Server Config

# Basic Connection Config

dev tun

proto udp

port 1194

keepalive 10 120

max-clients 10

# Certs

ca ca.crt

cert server.crt

key server.key

dh dh.pem

tls-auth ta.key 0

# Ciphers and Hardening

#reneg-sec 0

#remote-cert-tls client

tls-version-min 1.2

cipher AES-256-CBC

data-ciphers-fallback AES-256-CBC

auth SHA512

tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256

# Drop Privs

#user nobody

#group nobody

# IP pool

server 192.168.100.0 255.255.255.0

topology subnet

ifconfig-pool-persist ipp.txt

#client-config-dir client

# Misc

persist-key

persist-tun

comp-lzo

# DHCP Push options force all traffic through VPN and sets DNS servers

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"

# Logging

log-append /var/log/openvpn.log

verb 3

~

5. 后台启动openvpn服务

nohup /usr/sbin/openvpn --config /etc/openvpn/server.conf &

记得开启openvpn端口和

6. 服务端连接windows连接

6.1 客户端配置文件导入

在这里插入图片描述

打开openvpn软件的配置文件文件夹,将服务端生成的证书添加到对应目录

Ca.key

Client.key

Client.crt

Ta.key

6.2 客户端配置文件添加

在客户端配置文件夹中创建client.ovpn文件,并写入以下内容 一定要修改配置文件中的服务端的ip地址!!

<code># Secure OpenVPN Client Config

#viscosity dns full

#viscosity usepeerdns true

#viscosity dhcp true

tls-client

pull

client

dev tun

proto udp

remote 服务器的公网ipv4地址(或者ipv6) 1194

redirect-gateway def1

nobind

persist-key

persist-tun

comp-lzo

verb 3

ca ca.crt

cert client.crt

key client.key

tls-auth ta.key 1

remote-cert-tls server

ns-cert-type server

key-direction 1

cipher AES-256-CBC

tls-version-min 1.2

auth SHA512

tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。