环境:

vpn服务器系统: Ubutu

一、Vps端安装

1、安装openVpn服务

输入安装命令安装openvpn:

sudo apt-get –y install openvpn libssl-dev openssl

安装完成后查看版本:

openvpn –-version

记录下版本号。

2、安装easy-rsa,用来制作证书

输入安装命令:

sudo apt-get –y install easy-rsa

3、生成证书

  • 生成CA证书
    /etc/openvpn/目录下创建easy-rsa文件夹:

    sudo mkdir /etc/openvpn/easy-rsa/

    /usr/share/easy-rsa目录下所有文件复制到/etc/openvpn/easy-rsa/下:

    sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

    切换到root目录下:

    sudo su

    进入easy-rsa文件夹:

    cd /etc/openvpn/easy-rsa/

    编辑vars文件:

    sudo vi /etc/openvpn/easy-rsa/vars

    根据实际情况更改文件中如下配置项:

    export KEY_COUNTRY=”CN”
    export KEY_PROVINCE=”TJ”
    export KEY_CITY=”TianJin”
    export KEY_ORG=”qszy”
    export KEY_EMAIL=”公司或个人的邮箱地址”
    export KEY_OU=”qszy”
    export KEY_NAME=”qszyvpn”

    使vars文件生效:

    source vars
    ./clean-all

    制作CA证书:

    ./build-ca

    一路回车,完成后查看keys目录,应有ca.crt和ca.key两个文件:

    ll keys/

    把生成的ca.crt文件复制到openvpn启动目录下:

    cp kyes/ca.crt /etc/openvpn
  • 生成server端证书
    输入命令:

    ./build-key-server qszyvpn
    (此处名称须与生成CA证书时,vars文件配置中的export KEY_NAME配置项名称一致

    一路回车,需要输入y/n时,一律输入y
    完成后,查看keys文件夹,应有qszyvpn.crtqszyvpn.csrqszyvpn.key三个文件
    为服务器生成加密交换时的秘钥协议文件:

    ./build-dh

    此过程需要时间较长,耐心等待。
    完成后查看keys目录,应有dh2018.pem文件:

    ll keys/

    然后将qszyvpn.crtqszyvpn.keydh2048.pem都复制到/etc/openvpn/目录下:

    cp keys/qszyvpn.crt keys/qszyvpn.key keys/dh2048.pem /etc/openvpn/
  • 生成Client端证书
    为需要连接vpn的客户机生成一份证书。
    输入命令:

    ./build-key clint1
    shell

    一路回车,需要输入y/n时,一律输入y
    查看keys文件夹,应有client1.crtclient1.csrclient1.key三个文件

4、server端配置

复制openvpn自带的模板配置文件到启动目录:

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

进入openvpn目录解压文件:

cd /etc/openvpn/
gzip -d server.conf.gz

修改server.conf文件:

sudo vi /etc/openvpn/server.conf

找到并修改或添加如下配置项:

proto tcp
dev tap
cert qszyvpn.crt
key qszyvpn.key
dh dh2048.pem
client-to-client
push “10.8.0.0 255.255.255.0”
push “route 0.0.0.0 0.0.0.0”

完成后保存退出。

5、添加转发规则

开启ipv4转发,修改/etc/sysctl.conf配置文件:

vi /etc/sysctl.conf

net.ipv4.ip_forward项的值设为1

net.ipv4.ip_forward = 1

然后添加一条转发规则,输入命令:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

6、启动

以上工作结束后,即可启动openvpn服务:

/etc/init.d/openvpn start

查看其端口占用:

netstat -tunlp |grep 1194

二、win10客户端安装

1、下载所需证书

/etc/openvpn/easy-rsa/keys/目录下的ca.crtclinet1.crtclient1.key三个文件以及/usr/share/doc/openvpn/examples/sample-config-files/目录下的client.conf模板配置文件下载到本地。先将四个文件复制到用户目录下,并赋予qszy.key文件足够权限(777),再进行下载。

2、将下载下来的client.conf文件重命名为client.ovpn,然后进行编辑,找到并修改如下配置:

proto tcp
remote ip 1194            #此处ip替换为服务器的公网ip,1194为默认端口
dev tap
ca ca.crt
cert qszy.crt
key qszy.key

3、下载win客户端

进入http://build.openvpn.net/downloads/releases/镜像,找到与openvpn服务版本一致的exe安装文件下载,进行安装。

4、复制配置

安装完成后,将下载的4个文件放入同一个文件夹中,并将文件夹复制到openvpn安装目录的config文件夹下,文件夹名称可随意设置,只要保证其在config目录下名称唯一即可。

5、连接vpn

以管理员打开openvpnGUI客户端,会在系统托盘生成一个图标,右键单击图标,点击connect,即可连接,连接成功后,会提示已为本机生成一个IP,可通过cmdipconfig命令查看。

三、为其他win10客户端生成证书。

通过以上的配置,已经成功运行vpn服务并为一台客户端机器生成了证书以提供vpn连接服务,由于一台客户端机器只能使用唯一证书,因此局域网内其他机器想要连接vpn,须先为其再生成一份证书,证书生成过程如下:
首先进入vpn安装目录的easy-rsa目录下:

cd /etc/openvpn/easy-rsa/

切换到root权限:

sudo su

使配置文件生效:

source vars

此时不要执行./clean-all操作,否则以前生成的所有证书都会被清空。
然后生成客户端证书:

./build-key clint2

一路回车,需要输入y/n时,一律输入y
查看keys文件夹,应有client2.crtclient2.csrclient2.key三个文件。
client2.crtclient2.key以及ca.crt文件和/usr/share/doc/openvpn/examples/sample-config-files/目录下的client.conf模板配置文件下载下来,在新客户端上重复第二部分客户端安装操作即可。

四、Ubuntu客户端安装

openvpn既可以提供服务又可以连接服务,因此Ubuntu客户端想要连接vpn服务,只需安装好openvpn后,执行服务端提供的配置文件即可。

1. 安装openvpn

与服务端安装命令一致,只需输入:

sudo apt-get install openvpn

默认安装位置为:/etc/openvpn

2. 上传配置文件

将服务端提供的4个秘钥等配置文件:*.crt*.ca*.key*.ovpn上传到openvpn的安装目录/etc/openvpn下。

3. 执行配置文件

进入openvpn安装目录:

cd /etc/openvpn

执行配置文件以链接vpn

sudo openvpn *.ovpn

此时控制台即会输出链接信息,在其中可以找到被分配的ip地址。

4. 保持vpn后台链接

前边命令链接后,vpn在前台运行,并占用终端,退出终端后,vpn即停止运行,输入以下命令即可令vpn保持后台链接:

sudo openvpn *.ovpn > /dev/null &
也可将上述命令写入到/etc/rc.local以做到开机自连。

此时即可查看vpn的进程信息:

ps -ef | grep openvpn