作为一名网络工程师,在企业或家庭网络环境中,确保远程用户能够安全、稳定地访问内网资源是日常运维的重要任务之一,虚拟私人网络(VPN)技术是最常用的解决方案之一,本文将详细介绍如何在Linux服务器上搭建一个基于OpenVPN的服务端,并配置客户端连接,从而实现安全的远程访问。

准备工作必不可少,你需要一台运行Linux操作系统的服务器(推荐Ubuntu 20.04/22.04或CentOS Stream 9),拥有公网IP地址,并开放UDP端口1194(OpenVPN默认端口),建议使用云服务商如阿里云、腾讯云或AWS部署服务器,并提前配置好防火墙规则(如ufw或firewalld)以允许流量通过该端口。

安装OpenVPN及相关工具,以Ubuntu为例,执行以下命令:

sudo apt update
sudo apt install openvpn easy-rsa -y

easy-rsa 是用于生成证书和密钥的工具包,这是OpenVPN身份认证的核心组件,安装完成后,复制默认配置文件到指定目录:

sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/
cd /etc/openvpn/easy-rsa/

然后编辑 vars 文件,设置国家、省份、组织等信息,

export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"

接着执行初始化脚本并生成CA根证书:

./easyrsa init-pki
./easyrsa build-ca

生成服务器证书和密钥:

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

同样,为客户端生成证书(可多台设备使用不同证书):

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

配置OpenVPN服务端主文件 /etc/openvpn/server.conf,这是一个关键步骤,需要根据实际需求调整参数,示例配置如下:

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/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 /var/log/openvpn-status.log
verb 3

保存后启动服务并设为开机自启:

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

配置防火墙转发和NAT规则,使客户端能访问外网:

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

至此,OpenVPN服务端已成功部署,客户端可通过导出的证书和配置文件(如client1.ovpn)连接,整个过程涉及加密通信、身份验证和路由控制,保障了数据传输的安全性和稳定性。

对于有更高要求的用户,还可集成TLS认证、双因素验证或与LDAP结合,进一步提升安全性,定期更新证书、监控日志、限制访问IP范围是持续维护的关键。

如何在Linux系统中创建一个安全的OpenVPN服务端并实现远程访问  第1张

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