文章目录
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到这个目录:
sudo apt updatesudo 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 varscd ~ /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 Configdev tunproto udpport 1194keepalive 10 120max-clients 10# Certsca ca.crtcert server.crtkey server.keydh dh.pemtls-auth ta.key 0# Ciphers and Hardening#reneg-sec 0#remote-cert-tls clienttls-version-min 1.2cipher AES-256-CBCdata-ciphers-fallback AES-256-CBCauth SHA512tls-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 poolserver 192.168.100.0 255.255.255.0topology subnetifconfig-pool-persist ipp.txt#client-config-dir client# Miscpersist-keypersist-tuncomp-lzo# DHCP Push options force all traffic through VPN and sets DNS serverspush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 8.8.8.8"push "dhcp-option DNS 8.8.4.4"# Logginglog-append /var/log/openvpn.logverb 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 truetls-clientpullclientdev tunproto udpremote 服务器的公网ipv4地址(或者ipv6) 1194redirect-gateway def1nobindpersist-keypersist-tuncomp-lzoverb 3ca ca.crtcert client.crtkey client.keytls-auth ta.key 1remote-cert-tls serverns-cert-type serverkey-direction 1cipher AES-256-CBCtls-version-min 1.2auth SHA512tls-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