凌峰创科服务平台

公司云服务器搭建VPN的具体步骤是什么?

重要声明:法律与合规性

在开始之前,必须强调最重要的一点

公司云服务器搭建VPN的具体步骤是什么?-图1
(图片来源网络,侵删)
  • 遵守当地法律法规:在中国大陆,未经许可建立、使用VPN服务可能涉及法律风险,请确保您的操作符合相关法律法规,通常此类操作仅限于公司内部为员工提供远程办公支持。
  • 公司授权:请确保您已获得公司的明确授权来进行此项操作,这属于公司IT基础设施的变更。

第一步:准备工作

在开始配置之前,请确保您已准备好以下内容:

  1. 一台云服务器

    • 操作系统:推荐使用 Ubuntu 22.04 LTSCentOS 7/8,因为它们有大量的社区文档和教程支持,本指南将以 Ubuntu 22.04 为例。
    • 服务器配置:对于少量用户,1核CPU、1-2GB内存、1-2Mbps带宽即可,用户增多或流量增大时,请相应升级配置。
    • 公网IP地址:云服务器必须有一个固定的公网IP地址。
    • 安全组/防火墙设置:这是最关键的一步,您需要在云服务商(如阿里云、腾讯云、AWS等)的控制台设置安全组,放行以下端口:
      • VPN协议端口
        • WireGuard (推荐):UDP 51820
        • OpenVPN (传统):TCP 1194 或 UDP 1194
        • IPsec (IKEv2):UDP 5004500
      • SSH端口:TCP 22 (用于远程登录和管理服务器)
  2. 本地客户端设备

    您需要将连接VPN的设备(电脑、手机)准备好,并安装对应的VPN客户端软件。

    公司云服务器搭建VPN的具体步骤是什么?-图2
    (图片来源网络,侵删)
  3. 管理员权限

    • 您需要拥有服务器的管理员(root)权限,或一个可以使用 sudo 命令的用户。

第二步:选择VPN协议并搭建

我们介绍两种目前最主流和推荐的方案:WireGuardOpenVPN,WireGuard 更现代、性能更好、配置更简单;OpenVPN 兼容性更广,生态更成熟。

使用 WireGuard (强烈推荐)

WireGuard 是一个极其简单、快速且现代的 VPN,它利用了最新的加密技术。

在服务器上安装 WireGuard

公司云服务器搭建VPN的具体步骤是什么?-图3
(图片来源网络,侵删)
# 更新软件包列表
sudo apt update
# 安装 WireGuard 和必要的工具
sudo apt install wireguard -y

生成服务器的密钥对

# 进入 /etc/wireguard/ 目录
cd /etc/wireguard/
# 生成私钥和公钥
# wg genkey | tee privatekey | wg pubkey > publickey
# 执行后,会生成两个文件:privatekey 和 publickey

查看并保存好这两个密钥:

# 查看私钥 (保密!)
sudo cat privatekey
# 查看公钥 (需要配置到客户端)
sudo cat publickey

创建服务器配置文件 wg0.conf

sudo nano /etc/wireguard/wg0.conf

粘贴进去,并根据你的实际情况修改 AddressListenPort

[Interface]
# 服务器内网IP地址,这个IP段将分配给VPN客户端
Address = 10.8.0.1/24
# VPN服务监听的端口,可以自定义,但确保安全组已放行
ListenPort = 51820
# 填入上面生成的服务器私钥
PrivateKey = <你的服务器私钥内容>
# 启用IP转发,让服务器能将客户端的流量转发到互联网
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 关闭时删除这些规则
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

注意eth0 是大多数云服务器的默认网卡名称,如果不是,请替换为你的实际网卡名(如 ens3, eth1 等)。

启动并设置开机自启 WireGuard

# 启动 wg0 接口
sudo wg-quick up wg0
# 设置开机自启
sudo systemctl enable wg-quick@wg0

在客户端上配置

你需要为每个需要连接的客户端(例如员工的电脑)创建一个配置文件。

  • 生成客户端密钥对:在服务器上执行 wg genkey | tee client_private.key | wg pubkey > client_public.key,生成一对新的密钥。
  • 创建客户端配置文件:在服务器上创建一个配置文件,client.conf
sudo nano /etc/wireguard/clients/client1.conf

客户端配置文件内容示例:

[Interface]
# 客户端在内网VPN中的IP地址,确保不与服务器或其他客户端冲突
Address = 10.8.0.2/32
# 客户端的私钥 (保密!)
PrivateKey = <客户端的私钥内容>
# 可选:设置客户端的DNS,防止DNS泄露
DNS = 8.8.8.8, 1.1.1.1
[Peer]
# 填入服务器的公钥
PublicKey = <你的服务器公钥内容>
# 允许客户端访问的VPN服务器内网IP段
AllowedIPs = 10.8.0.0/24
# 服务器的公网IP和端口
Endpoint = <你的服务器公网IP>:51820

将客户端公钥添加到服务器

最后一步,将客户端的公钥添加到 WireGuard 的配置中,使其能够连接。

# 编辑服务器的主配置文件
sudo nano /etc/wireguard/wg0.conf

在文件末尾添加 [Peer] 部分:

# ... (前面的 [Interface] 部分) ...
[Peer]
# 客户端1的公钥
PublicKey = <客户端1的公钥内容>
# 客户端1的VPN内网IP
AllowedIPs = 10.8.0.2/32

保存后,重新加载 WireGuard 配置使其生效:

sudo wg-quick down wg0 && sudo wg-quick up wg0
# 或者使用 reload 命令 (如果支持)
sudo wg reload wg0

分发配置文件

client1.conf 文件安全地分发给对应的员工,员工可以使用 WireGuard 官方客户端导入这个 .conf 文件即可连接。


使用 OpenVPN (传统方案)

如果你的客户端设备非常老旧,或者团队习惯使用 OpenVPN,可以选择此方案。

在服务器上安装 OpenVPN

# 安装 OpenVPN 和 easy-rsa (用于管理证书)
sudo apt install openvpn easy-rsa -y

配置 Easy-RSA 并生成证书

# 创建一个目录来存放证书
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
# 编辑 vars 文件,设置一些默认值
nano vars
# 找到以下行并修改,或取消注释
export KEY_COUNTRY="CN"
export KEY_PROVINCE="SH"
export KEY_CITY="Shanghai"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"
export KEY_OU="ITDepartment"
# 保存并退出
# 初始化 PKI (Public Key Infrastructure)
source vars
./clean-all
./build-ca # 生成 CA 证书,一路回车即可
# 为服务器生成证书和私钥
./build-key-server server # 同样一路回车,最后两个问题选 y
# 生成 Diffie-Hellman 参数,用于增强安全性
./build-dh
# 生成 HMAC 密钥,用于增强 TLS 的安全性
openvpn --genkey --secret keys/ta.key

创建服务器配置文件

# 复制一个示例配置文件
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
# 编辑配置文件
sudo nano /etc/openvpn/server.conf

修改以下关键项:

# ...
;local a.b.c.d
# 改为监听所有网卡
local <你的服务器公网IP>
# ...
port 1194
# ...
proto udp
# ...
dev tun
# ...
ca /root/openvpn-ca/keys/ca.crt
cert /root/openvpn-ca/keys/server.crt
key /root/openvpn-ca/keys/server.key
# ...
dh /root/openvpn-ca/keys/dh2048.pem
# ...
server 10.8.0.0 255.255.255.0 # 定义VPN客户端的IP段
# ...
ifconfig-pool-persist /var/log/openvpn/ipp.txt
# ...
push "redirect-gateway def1 bypass-dhcp" # 推送路由,让客户端所有流量都走VPN
# ...
push "dhcp-option DNS 8.8.8.8" # 推送DNS服务器
push "dhcp-option DNS 1.1.1.1"
# ...
keepalive 10 120
# ...
tls-auth /root/openvpn-ca/keys/ta.key 0 # 使用HMAC
# ...
cipher AES-256-CBC # 使用强加密
# ...
user nobody
group nogroup
# ...
persist-key
persist-tun
# ...
status /var/log/openvpn/openvpn-status.log
verb 3
# ...

启动并设置开机自启 OpenVPN

# 启动服务
sudo systemctl start openvpn@server
# 设置开机自启
sudo systemctl enable openvpn@server

配置客户端

客户端配置比较复杂,通常需要从服务器下载 ca.crt, server.crt, client1.crt, client1.key, ta.key 等文件,然后手动组合成一个 .ovpn 文件,这个过程比较繁琐,通常有现成的脚本可以自动化生成客户端配置。

分发 .ovpn 文件

将生成的 .ovpn 文件分发给员工,他们可以使用 OpenVPN 官方客户端导入连接。


第三步:客户端连接与测试

  1. 安装客户端软件
  2. 导入配置:将之前生成的 client.conf (WireGuard) 或 .ovpn (OpenVPN) 文件导入到客户端软件中。
  3. 连接:在客户端软件中点击 "Connect" 按钮。
  4. 测试
    • 连接成功后,访问 https://whatismyipaddress.comhttps://ipinfo.io,查看你的公网IP是否已变为服务器的IP。
    • ping 一下你在服务器配置文件中定义的VPN内网IP(如 8.0.1),看是否通。
    • 如果需要访问公司内网资源,确保服务器开启了IP转发,并且公司防火墙策略允许。

第四步:安全加固建议

  1. 使用强密码:为服务器登录设置复杂的SSH密码,并建议使用SSH密钥对登录。
  2. 禁用密码登录:在SSH配置中(/etc/ssh/sshd_config),设置 PasswordAuthentication no,只允许密钥登录。
  3. 定期更新:保持系统和所有软件包为最新版本。
  4. 限制访问IP:在云服务器的安全组中,将SSH和VPN端口的访问来源限制为固定的公司IP地址,而不是对全互联网开放。
  5. 监控日志:定期查看 /var/log/auth.log (SSH) 和 /var/log/syslog 或 OpenVPN/WireGuard 的日志,检查异常登录行为。

希望这份详细的指南能帮助你成功搭建公司的VPN服务器!

分享:
扫描分享到社交APP
上一篇
下一篇