匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Linux下如何搭建一个自己的VPN

Linux下如何搭建一个自己的VPN

VPN(Virtual Private Network)即虚拟专用网络,它能够在公共网络上建立一条专用的加密通道,使得在这条通道上的网络通信变得安全可靠。在有些情况下,我们希望能够搭建一个自己的VPN服务,这样我们就可以在外出或者出差的情况下,通过VPN连接到公司或家庭网络里的资源和服务。接下来,本文将详细介绍如何在Linux下搭建一个自己的VPN。

一、服务器系统选型

首先,我们需要选择一款适合搭建VPN的服务器系统,这里推荐使用CentOS 7。CentOS 7是一款非常稳定、安全、易于管理的Linux服务器操作系统,是广大企业用户的首选。

二、安装OpenVPN

OpenVPN是一款开源的VPN服务器软件,在Linux服务器上安装它是搭建VPN的必要步骤之一。在CentOS 7上安装OpenVPN非常简单,只需要运行以下命令即可:

```
yum install -y epel-release
yum install -y openvpn
```

三、创建证书和密钥

接下来,我们需要创建一些证书和密钥文件,这些文件用于验证客户端与服务器之间的通信安全性。我们可以使用Easy-RSA工具创建这些文件,运行以下命令:

```
cd /usr/share/easy-rsa/3.0.8/
cp -rfv /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa build-server-full server nopass
openvpn --genkey --secret /etc/openvpn/ta.key
```

上述命令中,cd命令将当前工作目录切换到Easy-RSA工具所在目录,cp命令将样例配置文件server.conf复制到OpenVPN配置文件目录,接着,使用Easy-RSA创建了CA证书、服务端证书和Diffie-Hellman参数,最后使用OpenVPN生成了ta.key文件。

四、配置OpenVPN

接下来,我们需要对OpenVPN进行一些配置,包括配置服务端和客户端的网络环境、通信协议、端口等等。

首先,需要编辑OpenVPN的配置文件/etc/openvpn/server.conf,将其中的以下参数设置正确:

```
port 1194  # 设置VPN端口号
proto udp  # 设置VPN通信协议
dev tun    # 设置VPN虚拟网卡名称
ca /etc/openvpn/pki/ca.crt     # 设置CA证书
cert /etc/openvpn/pki/issued/server.crt   # 设置服务器证书
key /etc/openvpn/pki/private/server.key   # 设置服务器密钥
dh /etc/openvpn/pki/dh.pem    # 设置Diffie-Hellman参数
topology subnet  # 设置VPN网络环境为子网
server 10.8.0.0 255.255.255.0  # 设置VPN虚拟IP地址段
ifconfig-pool-persist ipp.txt  # 设置IP地址池的持久化文件
push "dhcp-option DNS 8.8.8.8" # 设置DNS服务器
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120  # 设置OpenVPN心跳包保活
cipher AES-256-CBC  # 设置OpenVPN加密算法
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
```

上述配置文件中,我们设置了OpenVPN的端口、通信协议、虚拟网卡名称、证书和密钥、虚拟IP地址段、DNS服务器等等参数。

五、启动OpenVPN服务

完成OpenVPN的配置之后,我们需要启动OpenVPN服务,运行以下命令即可:

```
systemctl enable openvpn-server@server
systemctl start openvpn-server@server
```

六、创建客户端证书和配置文件

接下来,我们需要为需要访问VPN服务的客户端创建证书和配置文件。我们可以使用Easy-RSA工具创建客户端证书和密钥:

```
cd /usr/share/easy-rsa/3.0.8/
./easyrsa build-client-full client1 nopass
```

执行上述命令后,Easy-RSA会在/etc/openvpn/pki/issued目录下生成一个名为client1.crt的证书文件和一个名为client1.key的密钥文件。

接着,我们需要创建一个客户端配置文件,将以下内容保存到/etc/openvpn/client/client1.ovpn文件中:

```
client
dev tun
proto udp
remote 服务器IP地址 1194  # 替换成实际的服务器IP地址
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
remote-cert-tls server
tls-auth /etc/openvpn/ta.key 1
cipher AES-256-CBC
verb 3

# CA证书内容


# 客户端证书内容


# 客户端密钥内容

```

上述配置文件中,我们设置了客户端的网络环境、通信协议、服务器IP地址、证书文件路径等等参数。

七、客户端连接VPN

最后,我们可以使用上述客户端配置文件连接到VPN服务器,运行以下命令即可:

```
openvpn --config client1.ovpn
```

连接成功之后,我们就可以通过VPN连接到服务器上的资源和服务了。

总结

本文详细介绍了如何在Linux下搭建一个自己的VPN服务,包括服务器系统选型、OpenVPN安装、证书和密钥创建、OpenVPN配置、启动OpenVPN服务、客户端证书和配置文件创建等等步骤。希望本文对需要搭建VPN的读者有所帮助。