OpenVPN 在两点之间创建加密隧道,防止第三方访问您的网络流量。 通过设置您的虚拟专用网络 (VPN) 服务器,您将成为自己的 VPN 提供商。 许多流行的 VPN 服务已经使用 OpenVPN,因此当您可以完全控制时,为什么要将您的连接绑定到特定的提供商?
本系列文章的第一篇文章设置了 VPN 服务器,第二篇文章演示了如何安装和配置 OpenVPN 服务器软件。 第三篇文章展示了如何启动具有身份验证的 OpenVPN。
要设置 OpenVPN 服务器,您必须
- 创建配置文件。
- 设置
sysctl
值为net.ipv4.ip_forward = 1
以启用路由。 - 为所有配置和身份验证文件设置适当的所有权,以便在非 root 帐户下运行 OpenVPN 服务器守护程序。
- 将 OpenVPN 设置为使用适当的配置文件启动。
- 配置您的防火墙。
配置文件
您必须在 /etc/openvpn/server/
中创建一个服务器配置文件。 如果您愿意,可以从头开始,OpenVPN 包含多个示例配置文件,可用作起点。 查看 /usr/share/doc/openvpn/sample/sample-config-files/
以查看所有这些文件。
如果您想手动构建配置文件,请从 server.conf
或 roadwarrior-server.conf
(视情况而定)开始,并将您的配置文件放在 /etc/openvpn/server
中。 这两个文件都有大量的注释,因此请阅读注释并决定哪个最适合您的情况。
您可以使用我预先构建的服务器和客户端配置文件模板以及 sysctl
文件来打开网络路由,从而节省时间和麻烦。 此配置还包括对连接和断开连接进行日志记录的自定义设置。 它将日志保存在 OpenVPN 服务器上的 /etc/openvpn/server/logs
中。
如果您使用我的模板,您需要编辑它们以使用您的 IP 地址和主机名。
要使用我预先构建的配置模板、脚本和 sysctl
来打开 IP 转发,请下载我的脚本
$ curl \
https://www.dgregscott.com/ovpn/OVPNdownloads.sh > \
OVPNdownloads.sh
阅读脚本以了解它的作用。 以下是其操作的快速概述
- 在您的 OpenVPN 服务器上创建相应的目录
- 从我的网站下载服务器和客户端配置文件模板
- 下载我的自定义脚本并将其放入具有正确权限的正确目录中
- 下载
99-ipforward.conf
并将其放入/etc/sysctl.d
中,以便在下次启动时打开 IP 转发 - 为
/etc/openvpn
中的所有内容设置所有权
一旦您确信您了解脚本的作用,使其可执行并运行它
$ chmod +x OVPNdownloads.sh
$ sudo ./OVPNdownloads.sh
以下是它复制的文件(注意文件所有权)
$ ls -al -R /etc/openvpn
/etc/openvpn:
total 12
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 .
drwxr-xr-x. 139 root root 8192 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 client
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 server
/etc/openvpn/client:
total 4
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
-rw-r--r--. 1 openvpn openvpn 1764 Apr 6 20:35 OVPNclient2020.ovpn
/etc/openvpn/server:
total 4
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 ccd
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 logs
-rw-r--r--. 1 openvpn openvpn 2588 Apr 6 20:35 OVPNserver2020.conf
/etc/openvpn/server/ccd:
total 8
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
-rwxr-xr-x. 1 openvpn openvpn 917 Apr 6 20:35 client-connect.sh
-rwxr-xr-x. 1 openvpn openvpn 990 Apr 6 20:35 client-disconnect.sh
/etc/openvpn/server/logs:
total 0
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
这是 99-ipforward.conf
文件
# Turn on IP forwarding. OpenVPN servers need to do routing
net.ipv4.ip_forward = 1
编辑 OVPNserver2020.conf
和 OVPNclient2020.ovpn
以包含您的 IP 地址。 此外,编辑 OVPNserver2020.conf
以包含您之前的服务器证书名称。 稍后,您将重命名并编辑 OVPNclient2020.ovpn
的副本,以供您的客户端计算机使用。 以 ***?
开头的块显示您需要编辑的位置。
文件所有权
如果您使用了我网站上的自动脚本,则文件所有权已经到位。 如果没有,您必须确保您的系统有一个名为 openvpn
的用户,该用户是名为 openvpn
的组的成员。 您必须将 /etc/openvpn
中所有内容的所有权设置为该用户和组。 如果您不确定用户和组是否已经存在,这样做是安全的,因为 useradd
会拒绝创建与已存在的用户同名的用户
$ sudo useradd openvpn
$ sudo chown -R openvpn.openvpn /etc/openvpn
防火墙
如果您决定不在步骤 1 中禁用 firewalld 服务,则您的服务器的防火墙服务可能默认不允许 VPN 流量。 使用 firewall-cmd
命令,您可以启用 OpenVPN 服务,这将打开必要的端口并根据需要路由流量
$ sudo firewall-cmd --add-service openvpn --permanent
$ sudo firewall-cmd --reload
无需迷失在 iptables 的迷宫中!
启动您的服务器
您现在可以启动您的 OpenVPN 服务器。 为了使其在重启后自动启动,请使用 systemctl
的 enable
子命令
systemctl enable --now openvpn-server@OVPNserver2020.service
最后步骤
本系列文章的第四篇也是最后一篇文章将演示如何设置客户端以从远处连接到您的 OpenVPN。
本文基于 D. Greg Scott 的 博客,经许可转载。
1 条评论