logo

Ubuntu 16.04下OpenVPN安装与网关配置全攻略

作者:很酷cat2025.09.26 20:25浏览量:1

简介:本文详细介绍在Ubuntu 16.04系统上安装配置OpenVPN服务端,并设置客户端作为网关连接子网的全过程,涵盖安装、配置、证书管理、防火墙设置及客户端配置等关键步骤。

一、环境准备与OpenVPN安装

在开始配置之前,确保Ubuntu 16.04系统已更新至最新状态,并具备基本的网络配置。首先,安装OpenVPN及其依赖项:

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

easy-rsa是一个用于管理OpenVPN证书的工具包,简化了证书的创建和管理过程。

二、配置证书颁发机构(CA)

  1. 初始化PKI(公钥基础设施)

    1. make-cadir ~/openvpn-ca
    2. cd ~/openvpn-ca
  2. 编辑vars文件:设置CA的基本信息,如国家、省份、城市等。

    1. nano vars

    修改如下字段(示例):

    1. export KEY_COUNTRY="CN"
    2. export KEY_PROVINCE="Beijing"
    3. export KEY_CITY="Beijing"
    4. export KEY_ORG="YourOrg"
    5. export KEY_EMAIL="admin@yourorg.com"
  3. 初始化PKI并构建CA

    1. source vars
    2. ./clean-all
    3. ./build-ca

    这将生成CA证书和私钥,位于~/openvpn-ca/keys/目录下。

三、生成服务器证书和密钥

  1. 生成服务器证书

    1. ./build-key-server server

    按照提示填写信息,大部分可以默认。

  2. 生成Diffie-Hellman参数

    1. ./build-dh
  3. 生成TLS认证密钥(增强安全性):

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

四、配置OpenVPN服务端

  1. 复制模板配置文件

    1. sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
    2. sudo gzip -d /etc/openvpn/server.conf.gz
  2. 编辑服务端配置

    1. sudo nano /etc/openvpn/server.conf

    修改或添加以下关键配置:

    1. port 1194
    2. proto udp
    3. dev tun
    4. ca /etc/openvpn/ca.crt
    5. cert /etc/openvpn/server.crt
    6. key /etc/openvpn/server.key
    7. dh /etc/openvpn/dh.pem
    8. server 10.8.0.0 255.255.255.0
    9. ifconfig-pool-persist /var/log/openvpn/ipp.txt
    10. push "redirect-gateway def1 bypass-dhcp" # 重要:将客户端流量路由通过VPN
    11. push "dhcp-option DNS 8.8.8.8"
    12. keepalive 10 120
    13. tls-auth /etc/openvpn/ta.key 0
    14. cipher AES-256-CBC
    15. persist-key
    16. persist-tun
    17. status /var/log/openvpn/openvpn-status.log
    18. verb 3
  3. 创建必要的目录和文件

    1. sudo mkdir -p /var/log/openvpn
    2. sudo cp ~/openvpn-ca/keys/{ca.crt,server.crt,server.key,dh.pem,ta.key} /etc/openvpn/

五、配置防火墙和NAT

  1. 启用IP转发

    1. echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
    2. sudo sysctl -p
  2. 配置UFW防火墙(如果使用):

    1. sudo ufw allow 1194/udp
    2. sudo ufw allow from 10.8.0.0/24 to any port 22 # 示例:允许VPN子网访问SSH
    3. sudo ufw enable
  3. 设置NAT规则(允许VPN客户端访问互联网):

    1. sudo nano /etc/ufw/before.rules

    在文件顶部添加(在*filter之前):

    1. *nat
    2. :POSTROUTING ACCEPT [0:0]
    3. -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    4. COMMIT

    重启UFW:

    1. sudo ufw disable
    2. sudo ufw enable

六、启动OpenVPN服务

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

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

  1. 生成客户端证书

    1. cd ~/openvpn-ca
    2. source vars
    3. ./build-key client1
  2. 创建客户端配置文件client1.ovpn):

    1. client
    2. dev tun
    3. proto udp
    4. remote your_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
  3. 客户端作为网关配置

    • Windows客户端:在VPN连接属性中,选择“网络”选项卡,勾选“允许其他网络用户通过此计算机的Internet连接来连接”,并选择正确的网络接口。
    • Linux客户端:编辑/etc/sysctl.conf启用IP转发,并使用iptables设置NAT规则,类似于服务端配置。
  4. 测试连接

    • 在客户端上连接VPN。
    • 使用ping命令测试是否能访问VPN子网内的其他设备或服务。
    • 检查服务端日志/var/log/openvpn/openvpn-status.log)以确认连接状态。

八、总结与优化建议

通过上述步骤,您已成功在Ubuntu 16.04上安装并配置了OpenVPN服务端,同时设置了客户端作为网关连接子网。为了确保系统的稳定性和安全性,建议定期更新OpenVPN和操作系统补丁,监控日志文件,以及根据实际需求调整防火墙规则。此外,考虑使用更强大的加密算法和认证机制,如采用椭圆曲线加密(ECDSA)证书,以进一步提升安全性。

相关文章推荐

发表评论

活动