在当今远程办公日益普及的背景下,建立一个稳定、安全的虚拟私人网络(VPN)服务已成为企业与个人用户的重要需求,作为网络工程师,我将详细介绍如何在Linux系统(以Ubuntu 20.04为例)上部署一个基于OpenVPN的私有VPN服务器,确保数据传输加密、访问控制灵活,并具备良好的可扩展性。

准备工作必不可少,你需要一台运行Linux的云服务器或物理机(建议配置至少2GB内存),并拥有公网IP地址,登录服务器后,执行以下命令更新系统软件包:

sudo apt update && sudo apt upgrade -y

接着安装OpenVPN和Easy-RSA(用于证书管理):

sudo apt install openvpn easy-rsa -y

下一步是配置证书颁发机构(CA),复制Easy-RSA模板到指定目录:

make-cadir ~/openvpn-ca
cd ~/openvpn-ca

编辑vars文件,设置国家、组织等信息(如CN=China, O=MyCompany),然后生成CA证书:

./clean-all
./build-ca

接下来生成服务器证书和密钥:

./build-key-server server

此过程会提示输入密码,建议保持默认即可,随后生成客户端证书(每个用户一张):

./build-key client1

注意:为增强安全性,应为每个客户端生成独立证书,而非共享同一张。

完成证书生成后,复制相关文件到OpenVPN配置目录:

sudo cp ~/openvpn-ca/keys/{ca.crt,server.crt,server.key,ta.key} /etc/openvpn/

现在配置OpenVPN主服务文件,创建/etc/openvpn/server.conf

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
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
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

关键参数说明:

  • port 1194:标准UDP端口(可修改)
  • push "redirect-gateway":强制客户端流量经由VPN转发
  • comp-lzo:启用压缩提升性能
  • user/nogroup:降低权限提升安全性

启动服务前需启用IP转发(允许路由):

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

配置iptables规则(若使用ufw则用ufw allow 1194/udp):

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

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

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

至此,你的VPN服务器已上线!客户端可通过.ovpn配置文件连接,内容包含服务器IP、端口、证书路径等,建议通过SSL/TLS加密+用户名密码双重认证提升安全性。

运维提醒:定期更新证书(有效期通常1年)、监控日志(/var/log/openvpn.log)、备份配置文件,若需支持多用户,可批量生成证书并分发至客户端。

这个方案兼顾易用性与安全性,适合中小企业或技术爱好者部署,网络安全无小事,配置完成后务必进行渗透测试验证其有效性。

如何在Linux服务器上搭建安全可靠的VPN服务,从零开始的完整指南  第1张

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN