当前位置:首页 > Centos > 正文

CentOS OpenVPN安装(手把手教你从零搭建OpenVPN服务器)

在当今远程办公和网络安全需求日益增长的背景下,搭建一个私有的虚拟专用网络(VPN)变得尤为重要。本文将详细讲解如何在 CentOS 系统上安装和配置 OpenVPN 服务器。无论你是 Linux 新手还是有一定经验的用户,只要按照本教程一步步操作,都能成功完成 CentOS OpenVPN安装

CentOS OpenVPN安装(手把手教你从零搭建OpenVPN服务器) OpenVPN安装 OpenVPN服务器搭建 CentOS配置VPN OpenVPN教程 第1张

一、准备工作

在开始之前,请确保你有以下条件:

  • 一台运行 CentOS 7 或 CentOS 8 的服务器(建议使用 CentOS 7,兼容性更好)
  • 拥有 root 权限或 sudo 权限
  • 服务器具有公网 IP 地址
  • 防火墙已开放 UDP 1194 端口(OpenVPN 默认端口)

二、更新系统并安装 EPEL 源

首先,登录你的 CentOS 服务器,执行以下命令更新系统并安装 EPEL(Extra Packages for Enterprise Linux)仓库:

# 更新系统sudo yum update -y# 安装 EPEL 源(CentOS 7)sudo yum install epel-release -y# 如果是 CentOS 8,请使用以下命令:# sudo dnf install epel-release -y

三、安装 OpenVPN 和 Easy-RSA

接下来,我们将安装 OpenVPN 以及用于生成证书的工具 Easy-RSA:

# 安装 OpenVPN 和 Easy-RSAsudo yum install openvpn easy-rsa -y

四、配置 Easy-RSA 生成证书和密钥

我们将使用 Easy-RSA 创建 CA(证书颁发机构)、服务器证书、客户端证书等。

# 创建工作目录cp -r /usr/share/easy-rsa/3.0.8 /etc/openvpn/easy-rsacd /etc/openvpn/easy-rsa# 初始化 PKI(公钥基础设施)./easyrsa init-pki# 构建 CA(过程中会提示输入密码和 Common Name)./easyrsa build-ca# 生成服务器密钥和证书请求./easyrsa gen-req server nopass# 签发服务器证书./easyrsa sign-req server server# 生成 Diffie-Hellman 参数(可能需要几分钟)./easyrsa gen-dh# 生成 TLS 认证密钥openvpn --genkey --secret pki/ta.key

五、创建 OpenVPN 服务端配置文件

创建并编辑 OpenVPN 服务端配置文件 /etc/openvpn/server.conf

port 1194proto udpdev tunca /etc/openvpn/easy-rsa/pki/ca.crtcert /etc/openvpn/easy-rsa/pki/issued/server.crtkey /etc/openvpn/easy-rsa/pki/private/server.keydh /etc/openvpn/easy-rsa/pki/dh.pemtopology subnetserver 10.8.0.0 255.255.255.0ifconfig-pool-persist ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 8.8.8.8"push "dhcp-option DNS 8.8.4.4"keepalive 10 120tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0cipher AES-256-CBCauth SHA256user nobodygroup nobodypersist-keypersist-tunstatus openvpn-status.logverb 3explicit-exit-notify 1

六、启用 IP 转发和配置防火墙

为了让客户端通过 VPN 访问外网,需开启 IP 转发:

# 临时开启 IP 转发echo 1 > /proc/sys/net/ipv4/ip_forward# 永久生效:编辑 /etc/sysctl.conf,添加或取消注释以下行net.ipv4.ip_forward = 1# 应用更改sysctl -p

配置 firewalld 防火墙(如果使用的是 iptables,请参考相关文档):

firewall-cmd --permanent --add-port=1194/udpfirewall-cmd --permanent --add-masqueradefirewall-cmd --reload

七、启动 OpenVPN 服务

现在可以启动 OpenVPN 服务了:

# 启动服务systemctl start openvpn@server# 设置开机自启systemctl enable openvpn@server# 查看状态systemctl status openvpn@server

八、生成客户端配置文件

为客户端生成证书和配置文件:

cd /etc/openvpn/easy-rsa# 生成客户端密钥(例如 client1)./easyrsa gen-req client1 nopass./easyrsa sign-req client client1

然后创建客户端配置文件 client1.ovpn,内容如下:

clientdev tunproto udpremote YOUR_SERVER_IP 1194resolv-retry infinitenobindpersist-keypersist-tunremote-cert-tls servercipher AES-256-CBCauth SHA256key-direction 1verb 3<ca>(粘贴 ca.crt 内容)</ca><cert>(粘贴 client1.crt 内容)</cert><key>(粘贴 client1.key 内容)</key><tls-auth>(粘贴 ta.key 内容)</tls-auth>

client1.ovpn 文件下载到你的本地设备,使用 OpenVPN 客户端导入即可连接。

九、总结

通过以上步骤,你已经成功完成了 CentOS OpenVPN安装 和基本配置。这个 OpenVPN服务器搭建 教程适用于大多数 CentOS 环境,是实现安全远程访问的理想方案。如果你在 CentOS配置VPN 过程中遇到问题,建议查阅官方文档或社区支持。

希望这篇 OpenVPN教程 对你有所帮助!如有疑问,欢迎在评论区留言交流。