logo

Ubuntu 16.04安装OpenVPN并配置客户端网关连接子网全攻略

作者:狼烟四起2025.09.26 20:25浏览量:0

简介:本文详细介绍在Ubuntu 16.04上安装配置OpenVPN服务端,并配置客户端作为网关连接子网的全过程,包含环境准备、服务端配置、客户端配置及网络测试等关键步骤。

Ubuntu 16.04安装OpenVPN并配置客户端网关连接子网全攻略

引言

在现代企业网络架构中,远程办公和分支机构互联已成为常态。VPN(虚拟专用网络)技术因其安全性和灵活性,被广泛应用于连接远程用户和分支机构。OpenVPN作为一款开源的VPN解决方案,以其强大的功能和易用性受到广泛欢迎。本文将详细介绍如何在Ubuntu 16.04系统上安装和配置OpenVPN服务端,并配置客户端作为网关连接子网,实现安全的远程访问和子网互联。

环境准备

服务器环境

  • 操作系统:Ubuntu 16.04 LTS
  • 网络配置:确保服务器有公网IP或可访问的端口,以便客户端能够连接。
  • 软件依赖:安装OpenVPN和Easy-RSA(用于生成证书)。

客户端环境

  • 操作系统:可以是任何支持OpenVPN的系统,如Windows、macOS或Linux。
  • 网络配置:客户端需能够访问服务器的公网IP或域名

安装OpenVPN和Easy-RSA

安装OpenVPN

在Ubuntu 16.04上,可以通过APT包管理器安装OpenVPN:

  1. sudo apt-get update
  2. sudo apt-get install openvpn

安装Easy-RSA

Easy-RSA是一个用于管理OpenVPN证书的简单工具。我们可以从GitHub下载最新版本:

  1. wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
  2. tar -xzvf EasyRSA-3.0.8.tgz
  3. cd EasyRSA-3.0.8

配置Easy-RSA

初始化PKI

  1. ./easyrsa init-pki

创建CA证书

  1. ./easyrsa build-ca

在执行过程中,会提示输入CA的名称和密码。

创建服务器证书

  1. ./easyrsa gen-req server nopass
  2. ./easyrsa sign-req server server

创建客户端证书

  1. ./easyrsa gen-req client1 nopass
  2. ./easyrsa sign-req client client1

生成Diffie-Hellman参数

  1. ./easyrsa gen-dh

生成TLS认证密钥

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

配置OpenVPN服务端

复制证书和密钥

将生成的证书和密钥复制到OpenVPN的配置目录:

  1. sudo cp pki/ca.crt /etc/openvpn/
  2. sudo cp pki/issued/server.crt /etc/openvpn/
  3. sudo cp pki/private/server.key /etc/openvpn/
  4. sudo cp pki/dh.pem /etc/openvpn/
  5. sudo cp pki/ta.key /etc/openvpn/

创建OpenVPN服务端配置文件

编辑/etc/openvpn/server.conf文件:

  1. port 1194
  2. proto udp
  3. dev tun
  4. ca ca.crt
  5. cert server.crt
  6. key server.key
  7. dh dh.pem
  8. server 10.8.0.0 255.255.255.0
  9. ifconfig-pool-persist ipp.txt
  10. push "redirect-gateway def1 bypass-dhcp"
  11. push "dhcp-option DNS 8.8.8.8"
  12. push "dhcp-option DNS 8.8.4.4"
  13. keepalive 10 120
  14. tls-auth ta.key 0
  15. cipher AES-256-CBC
  16. persist-key
  17. persist-tun
  18. status openvpn-status.log
  19. verb 3
  20. explicit-exit-notify 1

启动OpenVPN服务

  1. sudo systemctl start openvpn@server
  2. sudo systemctl enable openvpn@server

配置OpenVPN客户端

复制客户端证书和密钥

将客户端证书和密钥复制到客户端机器:

  1. # 在服务器上执行
  2. scp pki/ca.crt user@client-ip:/path/to/client/
  3. scp pki/issued/client1.crt user@client-ip:/path/to/client/
  4. scp pki/private/client1.key user@client-ip:/path/to/client/
  5. scp pki/ta.key user@client-ip:/path/to/client/

创建客户端配置文件

编辑客户端配置文件(如/path/to/client/client.ovpn):

  1. client
  2. dev tun
  3. proto udp
  4. remote <server-ip> 1194
  5. resolv-retry infinite
  6. nobind
  7. persist-key
  8. persist-tun
  9. remote-cert-tls server
  10. cipher AES-256-CBC
  11. verb 3
  12. <ca>
  13. # 粘贴ca.crt内容
  14. </ca>
  15. <cert>
  16. # 粘贴client1.crt内容
  17. </cert>
  18. <key>
  19. # 粘贴client1.key内容
  20. </key>
  21. <tls-auth>
  22. # 粘贴ta.key内容
  23. </tls-auth>
  24. key-direction 1

配置客户端作为网关

为了使客户端作为网关连接子网,我们需要在客户端配置中添加路由规则。假设子网为192.168.1.0/24,可以在客户端配置文件中添加:

  1. route 192.168.1.0 255.255.255.0

同时,在服务器配置中,确保push指令包含:

  1. push "route 192.168.1.0 255.255.255.0"

启动客户端

在客户端机器上,使用OpenVPN客户端软件导入配置文件并连接。

测试网络连接

测试VPN连接

在客户端上,使用ping命令测试与VPN服务器的连接:

  1. ping 10.8.0.1

测试子网访问

在客户端上,使用ping命令测试与子网内主机的连接:

  1. ping 192.168.1.1

高级配置与优化

启用压缩

在服务器和客户端配置中添加:

  1. comp-lzo

启用多客户端支持

如果需要支持多个客户端,可以在服务器配置中添加:

  1. client-config-dir ccd

然后创建/etc/openvpn/ccd目录,并为每个客户端创建配置文件(如client1),内容如下:

  1. ifconfig-push 10.8.0.2 255.255.255.0
  2. iroute 192.168.1.0 255.255.255.0

防火墙配置

确保服务器的防火墙允许UDP 1194端口的流量:

  1. sudo ufw allow 1194/udp
  2. sudo ufw enable

结论

通过以上步骤,我们成功在Ubuntu 16.04上安装和配置了OpenVPN服务端,并配置了客户端作为网关连接子网。这一解决方案不仅提供了安全的远程访问,还实现了子网之间的互联,为企业网络架构提供了灵活性和安全性。希望本文对读者在实际部署中有所帮助。

相关文章推荐

发表评论

活动