在当今高度互联的数字环境中,虚拟私人网络(VPN)已成为保障远程访问安全、实现跨地域网络互通的重要工具,尤其对于运行Linux系统的服务器或开发环境而言,OpenVPN因其开源特性、灵活性和强大的加密能力,成为首选方案之一,本文将手把手带你完成Linux系统中OpenVPN的配置全过程,涵盖安装、证书生成、服务启动、防火墙设置以及安全性增强等关键步骤。

确保你的Linux发行版已更新至最新状态,以Ubuntu为例,执行以下命令:

sudo apt update && sudo apt upgrade -y

安装OpenVPN及相关依赖包:

sudo apt install openvpn easy-rsa -y

easy-rsa 是用于生成PKI(公钥基础设施)证书的工具,是OpenVPN身份认证的核心组件。

下一步是配置证书颁发机构(CA),进入EasyRSA目录并初始化:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass  # 创建CA证书,不设置密码便于自动化

随后,生成服务器证书和密钥:

sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign-req server server

再为客户端生成证书(每台客户端需单独生成):

sudo ./easyrsa gen-req client1 nopass
sudo ./easyrsa sign-req client client1

所有证书生成完成后,将服务器证书、私钥及CA证书复制到OpenVPN配置目录:

sudo cp pki/ca.crt pki/private/server.key pki/issued/server.crt /etc/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"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

注意:dh.pem 可通过 sudo ./easyrsa gen-dh 生成,用于Diffie-Hellman密钥交换。

启用IP转发和配置iptables规则以允许流量转发:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT

若使用UFW防火墙,则需添加相应规则:

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

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

为了进一步提升安全性,建议启用TLS验证、限制客户端连接数、定期轮换证书,并结合fail2ban防止暴力破解,可部署OpenVPN Web管理界面(如OpenVPN Access Server)实现更便捷的用户管理。

通过以上步骤,你已在Linux系统上成功搭建了一个稳定、安全且可扩展的OpenVPN服务,适用于远程办公、企业内网接入或物联网设备安全通信等多种场景,持续维护与日志监控才是长期稳定运行的关键。

Linux下高效配置OpenVPN服务的完整指南,从安装到安全优化  第1张

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速