Ubuntu 16.04 架设 OpenVPN 服务器

#1 安装OpenVPN

OpenVPN在Ubuntu的默认仓库中,所以你可以直接使用apt安装。我还会安装easy-rsa,使用它帮助我们设置CA。

#2 构建CA

OpenVPN是使用TLS/SSL协议的VPN。也就是说客户端和服务器之间的流量是加密的,证书登场。

为了生成可信任的证书,我们首先设置一个简单CA。

复制easy-rsa的模版目录:

Ubuntu 16.04 架设 OpenVPN 服务器

配置CA环境变量:

找到如下一段:

Ubuntu 16.04 架设 OpenVPN 服务器

上面的这些值随便添,但是不能为空:

Ubuntu 16.04 架设 OpenVPN 服务器

在上面一段的下面有一个KEY_NAME,把值改为server:

保存退出。

使变量生效:

Ubuntu 16.04 架设 OpenVPN 服务器

构建CA:

一直回车;

Ubuntu 16.04 架设 OpenVPN 服务器

#3 生成服务端证书、密钥

生成证书和Key:

一直回车,先不要设置密码:

Ubuntu 16.04 架设 OpenVPN 服务器

生成Diffie-Hellman key:

等待几分钟;

生成HMAC签名加强TLS认证:

#4 生成客户端证书、密钥

我们可以使用客户端机器生成,然后让服务器签名。为了简单,我在服务器生成。

下面我为一个客户端生成证书,如果你有多个客户端可以重复这个过程。

同样一直回车,密码空。

#5 配置OpenVPN服务

把上面生成的证书复制到对应的OpenVPN目录:

创建OpenVPN配置文件:

编辑OpenVPN配置文件:

去掉如下几行的注释:

每行配置上方都有详细的解释;

去掉下面一行的注释,并在下面添加一行:

#6 打开IP转发

去掉下面一行的注释:

使生效:

配置防火墙规则:

启动UFW防火墙:

编辑:

在文件头添加:

编辑:

修改DEFAULT_FORWARD_POLICY的值:

允许OpenVPN通行:

#7 启动OpenVPN服务

Ubuntu 16.04 架设 OpenVPN 服务器

OpenVPN使用的tun0网络接口:

Ubuntu 16.04 架设 OpenVPN 服务器

#8 生成OpenVPN客户端使用的ovpn

复制模版配置文件:

编辑:

找到remote一段:

把server_IP_or_domain替换为OpenVPN服务IP或域名。

去掉如下两行的注释:

更改ca, cert key的值,修改为[inline];inline代表本文件。

找到tls-auth一段,去掉注释并在其下添加一行:

生成ovpn文件:

上面命令其实就是把#4步生成的客户端证书/key和服务器证书/key组合在一起。

把~/client/ovpn/client1.ovpn文件传给客户端;OpenVPN客户端就可以使用这个文件连接了,怎么连接就不说了。

相关文章

《Ubuntu 16.04 架设 OpenVPN 服务器》有1个想法

  1. apt-get install systemctl
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    E: Unable to locate package systemctl

    博主,我是ubuntu14.04 这样怎么办

发表评论

电子邮件地址不会被公开。 必填项已用*标注