目录
前言
CentOS 7 是一款广受欢迎的开源操作系统,在服务器领域有着广泛的应用。在很多场景下,我们需要通过 VPN 来访问内网资源或者加强网络安全性。本文将详细介绍如何在 CentOS 7 系统上搭建 OpenVPN 服务,并提供常见问题的解答。
VPN 服务简介
VPN(Virtual Private Network) 即虚拟专用网络,是一种通过公共网络建立安全连接的技术。VPN 可以为用户提供以下功能:
- 数据加密: 确保数据在传输过程中不被窃取或篡改
- IP 地址隐藏: 隐藏用户的真实 IP 地址,提高上网安全性
- 访问限制: 仅允许授权用户访问内网资源
在本教程中,我们将使用开源的 OpenVPN 软件来搭建 VPN 服务。
安装 OpenVPN
-
更新系统软件包:
bash yum update -y
-
安装 OpenVPN 及其依赖包:
bash yum install -y openvpn easy-rsa
配置 OpenVPN 服务
4.1 生成 CA 证书
-
进入 easy-rsa 目录:
bash cd /usr/share/easy-rsa/
-
复制 easy-rsa 配置文件:
bash cp -rf vars.example vars
-
编辑 vars 文件,修改相关参数:
set_var EASYRSA_REQ_COUNTRY “CN” set_var EASYRSA_REQ_PROVINCE “Beijing” set_var EASYRSA_REQ_CITY “Beijing” set_var EASYRSA_REQ_ORG “Your Organization” set_var EASYRSA_REQ_EMAIL “your@email.com” set_var EASYRSA_REQ_OU “your-organization-unit”
-
初始化 easy-rsa 环境:
bash ./easyrsa init-pki
-
生成 CA 证书:
bash ./easyrsa build-ca nopass
此步骤会生成 pki/ca.crt 和 pki/private/ca.key 文件。
4.2 创建服务端配置文件
-
进入 OpenVPN 配置目录:
bash cd /etc/openvpn/
-
复制服务端配置文件模板:
bash cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf .
-
编辑 server.conf 文件,修改以下参数:
port 1194 proto udp dev tun ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/server.crt key /etc/openvpn/pki/private/server.key dh /etc/openvpn/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 nobody persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3
4.3 创建客户端配置文件
-
生成客户端证书和密钥:
bash ./easyrsa build-client-full client1 nopass
此步骤会生成 pki/issued/client1.crt 和 pki/private/client1.key 文件。
-
复制客户端配置文件模板:
bash cp /usr/share/doc/openvpn/sample/sample-config-files/client.conf /etc/openvpn/client.ovpn
-
编辑 client.ovpn 文件,修改以下参数:
remote your-server-ip 1194 ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/client1.crt key /etc/openvpn/pki/private/client1.key
防火墙设置
-
开放 OpenVPN 端口:
bash firewall-cmd –permanent –add-port=1194/udp firewall-cmd –reload
启动 OpenVPN 服务
-
启动 OpenVPN 服务:
bash systemctl start openvpn@server systemctl enable openvpn@server
客户端连接 VPN
- 将 client.ovpn 文件发送给客户端。
- 客户端使用 OpenVPN 客户端软件连接 VPN 服务器。
FAQ
如何查看 OpenVPN 服务状态?
可以使用以下命令查看 OpenVPN 服务的状态:
bash systemctl status openvpn@server
如何查看 OpenVPN 日志?
OpenVPN 的日志文件位于 /var/log/openvpn/openvpn.log。可以使用以下命令查看日志:
bash tail -n 50 /var/log/openvpn/openvpn.log
如何管理 OpenVPN 客户端?
可以使用以下命令查看当前连接的 OpenVPN 客户端:
bash tail -n 50 /var/log/openvpn/openvpn-status.log
此命令会显示当前已连接的客户端 IP 地址和连接时间等信息。
如何撤销客户端证书?
如果需要撤销某个客户端的证书,可以执行以下步骤:
-
进入 easy-rsa 目录:
bash cd /usr/share/easy-rsa/
-
撤销客户端证书:
bash ./easyrsa revoke client1 ./easyrsa gen-crl
-
将 pki/crl.pem 文件复制到 /etc/openvpn 目录下。
-
在 server.conf 文件中添加以下配置:
crl-verify /etc/openvpn/crl.pem
-
重启 OpenVPN 服务:
bash systemctl restart openvpn@server
现在,已被撤销的客户端将无法再连接到 VPN 服务。
希望本教程对您有所帮助。如果您还有其他问题,欢迎随时与我们联系。