0


Ubuntu搭建openVpn服务端

文章目录

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到这个目录:

sudoapt update
sudoapt-getinstall easy-rsa

3 设置openvpn环境变量

cd ~ /usr/share/easy-rsa

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

vim vars
exportEASYRSA_REQ_COUNTRY="CN"exportEASYRSA_REQ_PROVINCE="YC"exportEASYRSA_REQ_CITY="YICHANG"exportEASYRSA_REQ_ORG="YUSU"exportEASYRSA_REQ_EMAIL="[email protected]"exportEASYRSA_REQ_OU="YUSU"exportKEY_NAME="server"

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

配置文件包含的内容

  1. 协议,端口,保持时间,客户端最大连接数
  2. 各个证书
  3. 加密信息和加密算法
  4. ip地址池 设置,将ip地址持久化到本地ipp.txt文件中
  5. 启动lzo压缩
  6. 日志设置
# Secure OpenVPN Server Config# Basic Connection Config
dev tun
proto udp
port 1194
keepalive 10120
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地址!!

# 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
标签: ubuntu

本文转载自: https://blog.csdn.net/weixin_46965089/article/details/140533346
版权归原作者 XJzz3 所有, 如有侵权,请联系我们删除。

“Ubuntu搭建openVpn服务端”的评论:

还没有评论