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

sudo apt update
sudo apt-get install easy-rsa

3 设置openvpn环境变量

cd ~ /usr/share/easy-rsa

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

vim vars
export EASYRSA_REQ_COUNTRY="CN"
export EASYRSA_REQ_PROVINCE="YC"
export EASYRSA_REQ_CITY="YICHANG"
export EASYRSA_REQ_ORG="YUSU"
export EASYRSA_REQ_EMAIL="YUSUtech@.com"
export EASYRSA_REQ_OU="YUSU"
export KEY_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 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地址!!

# 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 上安装 OpenVPN 并进行配置的步骤: 1. 安装 OpenVPN 在终端中运行以下命令以安装 OpenVPN: ``` sudo apt-get update sudo apt-get install openvpn ``` 2. 获取 OpenVPN 配置文件 你需要获取 OpenVPN 的配置文件,通常是以 .ovpn 结尾的文件。你可以从你的 VPN 服务提供商那里获取这些文件,或者使用你自己的 OpenVPN 服务器。 将配置文件下载到你的 Ubuntu 系统中,例如你可以将它们存储在 /etc/openvpn 目录中。 3. 配置 OpenVPN 在终端中运行以下命令以编辑 OpenVPN 配置文件: ``` sudo nano /etc/openvpn/your_config_file.ovpn ``` 将 "your_config_file.ovpn" 替换为你的配置文件名。 在配置文件中,你需要设置以下内容: - auth-user-pass:指定用户名和密码的文件路径 - ca:指定证书文件路径 - cert:指定客户端证书文件路径 - key:指定客户端私钥文件路径 - remote:指定远程服务器的 IP 或域名和端口号 在配置文件中,你可以使用注释行(以 # 开头)来注释掉一些不需要的选项。 4. 配置用户名和密码 在终端中运行以下命令以创建一个文件,其中包含你的 VPN 用户名和密码: ``` sudo nano /etc/openvpn/auth.txt ``` 在文件中,输入你的 VPN 用户名和密码,每行一个,例如: ``` your_username your_password ``` 保存并关闭文件。 5. 启动 OpenVPN 在终端中运行以下命令以启动 OpenVPN: ``` sudo openvpn /etc/openvpn/your_config_file.ovpn ``` 将 "your_config_file.ovpn" 替换为你的配置文件名。 如果一切正常,你应该能够看到一些输出,其中包含 "Initialization Sequence Completed" 的字样,表示 OpenVPN 已成功连接到 VPN 服务器。 现在,你的 Ubuntu 系统已经成功安装并配置了 OpenVPN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值