logo

Ubuntu16.0深度指南:OpenVPN安装与客户端网关配置

作者:暴富20212025.09.18 11:31浏览量:0

简介:本文详细介绍在Ubuntu 16.04上安装配置OpenVPN服务端,并设置客户端作为网关连接子网,涵盖环境准备、安装步骤、配置文件编写、路由设置及防火墙规则调整,适合企业用户和开发者参考。

Ubuntu 16.04 安装配置 OpenVPN,客户端作为网关连接子网

引言

在现代网络环境中,VPN(虚拟专用网络)已成为保障远程访问安全的重要工具。对于企业用户和开发者而言,配置一个稳定且安全的VPN连接,尤其是通过客户端作为网关连接内部子网,是确保数据传输安全性和灵活性的关键。本文将详细介绍如何在Ubuntu 16.04系统上安装和配置OpenVPN服务端,并设置客户端作为网关连接子网,以满足远程访问和内部网络互联的需求。

环境准备

在开始配置之前,确保你的Ubuntu 16.04系统已经更新到最新版本,并具备基本的网络配置知识。此外,还需要准备以下工具和资源:

  • OpenVPN:一款开源的VPN软件,提供安全的远程访问解决方案。
  • Easy-RSA:用于生成和管理OpenVPN所需的证书和密钥。
  • 一台具备公网IP的服务器:用于部署OpenVPN服务端。
  • 客户端设备:可以是PC、手机或其他支持OpenVPN的设备。

安装OpenVPN和Easy-RSA

安装OpenVPN

首先,在Ubuntu 16.04上安装OpenVPN。可以通过以下命令完成:

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

安装完成后,OpenVPN的配置文件通常位于/etc/openvpn/目录下。

安装Easy-RSA

Easy-RSA用于生成和管理SSL证书,是OpenVPN配置中的重要环节。可以通过以下命令安装Easy-RSA:

  1. sudo apt-get install easy-rsa

安装完成后,将Easy-RSA的模板文件复制到/etc/openvpn/easy-rsa/目录下(如果目录不存在,需要先创建):

  1. make-cadir /etc/openvpn/easy-rsa
  2. cd /etc/openvpn/easy-rsa

配置Easy-RSA

修改vars文件

进入/etc/openvpn/easy-rsa目录,编辑vars文件,设置证书的相关信息,如国家、省份、城市、组织等:

  1. nano vars

修改以下内容(根据你的实际情况填写):

  1. set_var EASYRSA_REQ_COUNTRY "CN"
  2. set_var EASYRSA_REQ_PROVINCE "Beijing"
  3. set_var EASYRSA_REQ_CITY "Beijing"
  4. set_var EASYRSA_REQ_ORG "MyCompany"
  5. set_var EASYRSA_REQ_EMAIL "admin@mycompany.com"
  6. set_var EASYRSA_REQ_OU "IT Department"

初始化PKI

/etc/openvpn/easy-rsa目录下,运行以下命令初始化PKI(公钥基础设施):

  1. ./easyrsa init-pki
  2. ./easyrsa build-ca

在生成CA(证书颁发机构)的过程中,需要设置一个CA密码,并确认相关信息。

生成服务器证书和密钥

生成服务器证书和密钥:

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

生成Diffie-Hellman参数

生成Diffie-Hellman参数,用于密钥交换:

  1. ./easyrsa gen-dh

生成TLS认证密钥

生成TLS认证密钥,增强安全性:

  1. openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/ta.key

配置OpenVPN服务端

复制证书和密钥

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

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

编写服务器配置文件

/etc/openvpn/目录下创建服务器配置文件server.conf

  1. nano /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

启动OpenVPN服务

启动OpenVPN服务,并设置开机自启:

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

配置客户端作为网关连接子网

生成客户端证书和配置文件

在服务器上生成客户端证书:

  1. cd /etc/openvpn/easy-rsa
  2. ./easyrsa gen-req client1 nopass
  3. ./easyrsa sign-req client client1

将客户端证书、CA证书和TLS认证密钥复制到客户端设备。同时,在服务器上创建客户端配置文件模板(如client.ovpn),内容如下:

  1. client
  2. dev tun
  3. proto udp
  4. remote <服务器公网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

配置客户端作为网关

在客户端设备上,安装OpenVPN客户端并导入配置文件。连接成功后,需要配置客户端作为网关,以便访问内部子网。这通常需要在客户端操作系统的网络设置中进行,具体步骤因操作系统而异。

Windows客户端

  1. 打开“网络和共享中心”。
  2. 点击“更改适配器设置”。
  3. 右键点击OpenVPN连接,选择“属性”。
  4. 切换到“共享”选项卡,勾选“允许其他网络用户通过此计算机的Internet连接来连接”,并在下拉菜单中选择正确的网络适配器。

Linux客户端

在Linux客户端上,可以通过iptablesnftables设置NAT规则,将客户端作为网关。例如,使用iptables

  1. sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
  2. sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
  3. sudo iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

同时,需要启用IP转发:

  1. echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
  2. sudo sysctl -p

验证和测试

配置完成后,从客户端设备尝试访问内部子网中的资源,验证VPN连接和网关功能是否正常。可以使用pingtraceroute等工具进行测试。

防火墙和安全设置

确保服务器的防火墙允许UDP 1194端口的流量。如果使用ufw,可以运行以下命令:

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

此外,建议定期更新OpenVPN和Easy-RSA,以修复潜在的安全漏洞。

结论

通过以上步骤,你可以在Ubuntu 16.04上成功安装和配置OpenVPN服务端,并设置客户端作为网关连接内部子网。这不仅提高了远程访问的安全性,还增强了内部网络的灵活性。对于企业用户和开发者而言,掌握这一技能将极大地提升工作效率和网络管理能力。

相关文章推荐

发表评论