在当今数字化时代,远程工作和在线协作变得越来越普遍,为了确保这些活动的安全性,使用虚拟专用网络(VPN)已经成为一种常见的做法,本文将指导你在一天内完成一个基本的VPN服务器搭建过程,使用OpenVPN作为示例。

第一步:选择合适的硬件和操作系统

你需要一台运行Linux操作系统的服务器,推荐使用Ubuntu Server,因为它易于管理且社区支持强大,如果你没有现成的服务器,可以考虑使用云服务提供商如AWS、Azure或Google Cloud来创建一个虚拟机实例。

第二步:安装必要的软件

登录到你的服务器,并更新系统包:

sudo apt update && sudo apt upgrade -y

安装OpenVPN和其他必要的工具:

sudo apt install openvpn easy-rsa -y

第三步:配置Easy-RSA

Easy-RSA是一个用于生成证书和密钥的工具集,我们需要对其进行一些配置以适应我们的需求:

  1. 创建并进入Easy-RSA目录:

     mkdir ~/openvpn-ca
     cd ~/openvpn-ca
     git clone https://github.com/OpenVPN/easy-rsa.git .
     cp vars.example vars
  2. 编辑vars文件以设置正确的值,

     set_var EASYRSA_REQ_COUNTRY "CN"
     set_var EASYRSA_REQ_PROVINCE "Beijing"
     set_var EASYRSA_REQ_CITY "Beijing"
     set_var EASYRSA_REQ_ORG "MyOrg"
     set_var EASYRSA_REQ_EMAIL "admin@example.com"
     set_var EASYRSA_KEY_SIZE 2048
  3. 初始化PKI(公钥基础设施):

     ./easyrsa init-pki
  4. 生成CA证书和密钥:

     ./easyrsa build-ca nopass
  5. 生成服务器证书和密钥:

     ./easyrsa gen-server-full server nopass
  6. 生成Diffie-Hellman参数:

     ./easyrsa gen-dh
  7. 生成TLS密钥:

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

第四步:配置OpenVPN

  1. 复制生成的证书和密钥到OpenVPN目录:

     mkdir /etc/openvpn/server
     cp ~/openvpn-ca/pki/ca.crt /etc/openvpn/server/
     cp ~/openvpn-ca/pki/private/server.key /etc/openvpn/server/
     cp ~/openvpn-ca/pki/dh.pem /etc/openvpn/server/
     cp ~/openvpn-ca/pki/ta.key /etc/openvpn/server/
  2. 创建服务器配置文件/etc/openvpn/server/server.conf

     port 1194
     proto udp
     dev tun
     ca ca.crt
     cert server.crt
     key server.key
     dh dh.pem
     topology subnet
     server 10.8.0.0 255.255.255.0
     ifconfig-pool-persist ipp.txt
     push "redirect-gateway def1 bypass-dhcp"
     push "dhcp-option DNS 8.8.8.8"
     push "dhcp-option DNS 8.8.4.4"
     keepalive 10 120
     tls-auth ta.key 0
     cipher AES-256-CBC
     user nobody
     group nogroup
     persist-key
     persist-tun
     status openvpn-status.log
     verb 3

第五步:启动OpenVPN服务

  1. 启动OpenVPN服务:

     sudo systemctl start openvpn@server
  2. 设置开机自启动:

     sudo systemctl enable openvpn@server

第六步:客户端配置

  1. 为每个客户端生成证书和密钥:

     ./easyrsa gen-client-full client1 nopass
  2. 将客户端证书和密钥复制到客户端计算机上:

     scp ~/openvpn-ca/pki/issued/client1.crt client1:/home/user/
     scp ~/openvpn-ca/pki/private/client1.key client1:/home/user/
     scp ~/openvpn-ca/pki/ca.crt client1:/home/user/
     scp ~/openvpn-ca/ta.key client1:/home/user/
  3. 在客户端计算机上创建OpenVPN配置文件client.ovpn

     client
     remote your_server_ip 1194
     proto udp
     dev tun
     ca ca.crt
     cert client1.crt
     key client1.key
     tls-auth ta.key 1
     cipher AES-256-CBC
     resolv-retry infinite
     nobind
     persist-key
     persist-tun
     remote-cert-tls server
     verify-x509-name server name
     ns-cert-type server
     comp-lzo no
     verb 3

第七步:测试连接

  1. 在客户端计算机上启动OpenVPN:

     sudo openvpn --config client.ovpn
  2. 如果一切正常,你应该能够看到类似以下的输出:

     OpenVPN 2.4.9 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD-NOCRC]
     library versions: OpenSSL 1.1.1f  31 Mar 2020, LZO 2.10
     auto-crypt to 'server' successful
     MULTI: multi_init called, r=256 v=4
     IFCONFIG POOL: base=10.8.0.4 size=252, ipv6=0
     IFCONFIG POOL LIST
     Initialization Sequence Completed

通过以上步骤,你已经成功地在一天内搭建了一个基本的OpenVPN服务器,你可以使用这个VPN服务器来保护你的远程工作和在线通信安全。

从零开始搭建VPN服务器,一天的实践指南  第1张

半仙加速器