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的读者有所帮助。