openvpn服务的搭建

openvpn服务的搭建

搭建openvpn时应首先同步网络时间否则会造成证书时间不同步,导致证书不生效。

是由openvpn将相应的子网推给客户端,客户端首先要连接到openvpnserver,在通过它到达其它的网段,所以openvpnserver首先要能够连通其他网段。

openvpn是在公共网络中打隧道,要想得到vpn服务首先得能够访问到,vpn服务器,如果vpn服务器是搭建在公网中,在client中直接指向这个地址就可以了,如果是搭建在私网中则需要指向它所映射的公网地址。

首先应该开启路由转发功能:

  sysctl -p 执行

也可以编辑/etc/sysctl.conf文件

yum install openvpn -y 安装openvpn

安装openvpn最新的easy-rsa,该包用来制作ca证书,服务端证书,客户端证书。最新的为easy-rsa3

wget https://github.com/OpenVPN/easy-rsa/archive/master.zip

unzip master.zip

将解压得到的文件夹easy-rsa-master重命名为easy-rsa

mv easy-rsa-master/ easy-rsa/

然后将的到的easy-ras文件夹复制到/etc/openvpn/目录下

cp -R easy-rsa/ /etc/openvpn/

编辑vars文件,根据自己环境配置

先进入cd /etc/openvpn/easy-rsa/easyrsa3目录

复制vars.example 为vars

cp vars.example vars

修改vars文件:vim vars     vars文件保存的是证书的信息,如ca的地域等

set_var EASYRSA_REQ_COUNTRY    国家

set_var EASYRSA_REQ_PROVINCE    省

set_var EASYRSA_REQ_CITY        城市

set_var EASYRSA_REQ_ORG        ca的单位

set_var EASYRSA_REQ_EMAIL       邮箱

set_var EASYRSA_REQ_OU         证书名

chmod +x vars

第三步、创建服务端证书及key

A:进入/etc/openvpn/easy-rsa/easyrsa3/目录初始化:

  cd /etc/openvpn/easy-rsa/easyrsa3

./easyrsa init-pki

B:创建根证书

./easyrsa build-ca

PEM pass phrase:test123

Common Name (eg: your user, host, or server name) [Easy-RSA CA]:test.com

注意:在这部分需要输入PEM密码 PEM pass phrase,输入两次,此密码必须记住,不然以后不能为证书签名。还需要输入common name 通用名,这个你自己随便设置个独一无二的。

C:创建服务器端证书

./easyrsa gen-req server nopass

该过程中需要输入common name,随意但是不要跟之前的根证书的一样

Common Name (eg: your user, host, or server name) [server]:test2.com

签约服务端证书:

./easyrsa sign server server

该命令中.需要你确认生成,要输入yes,还需要你提供我们当时创建CA时候的密码。如果你忘记了密码,那你就重头开始再来一次吧。

D:创建Diffie-Hellman,确保key穿越不安全网络的命令:

./easyrsa gen-dh

第四步、创建客户端证书

A:进入root目录新建client文件夹,文件夹可随意命名,然后拷贝前面解压得到的easy-ras文件夹到client文件夹,进入下列目录

cd /root/

mkdir client

cp -r easy-rsa client/

cd client/easy-rsa/easyrsa3/

B:初始化

./easyrsa init-pki

C:创建客户端key及生成证书(记住生成是自己输入的密码)

./easyrsa gen-req test nopass(nopass可实现免密认证) (这是自己定义的key的名称)

PEM pass phrase:test123   这个密码会成为以后客户端连接vpn所输入的密码

Common Name (eg: your user, host, or server name) [test]:test3.com

D:将的到的test.req导入然后签约证书

a.进入到/etc/openvpn/easy-rsa/easyrsa3/

cd /etc/openvpn/easy-rsa/easyrsa3/

b.导入req

./easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/test.req test

c.签约证书

//这里生成client所以必须为client,test要与之前导入名字一致

./easyrsa sign client test

这里需要输入上面创建根证书时设置的密码,红色字体需一致。其实总的看来,创建客户端证书和服务端证书的步骤是差不多的。基本上就是:1.导入easy-rsa/文件夹,2.初始化,3.定义一个key并生成密码和common name,4.签约证书

E:这步很重要,现在说一下我们上面都生成了什么东西

这一步在我看来就是将所有的证书和密钥分发到服务端和客户端,客户端的目录是/etc/openvpn,服务端是/root/client

服务端:(etc/openvpn/easy-rsa/文件夹)

/etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt

/etc/openvpn/easy-rsa/easyrsa3/pki/reqs/server.req

/etc/openvpn/easy-rsa/easyrsa3/pki/reqs/test.req

/etc/openvpn/easy-rsa/easyrsa3/pki/private/ca.key

/etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key

/etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt

/etc/openvpn/easy-rsa/easyrsa3/pki/issued/test.crt

/etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem

客户端:(root/client/easy-rsa文件夹)

/root/client/easy-rsa/easyrsa3/pki/private/test.key

/root/client/easy-rsa/easyrsa3/pki/reqs/test.req //这个文件被我们导入到了服务端文件所以那里也有

a.这一步就是拷贝这些文件放入到相应位置。将下列文件放到/etc/openvpn/ 目录执行命令:

cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn

cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn

cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn

cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem /etc/openvpn

这样就将上述四个文件放入到了/etc/openvpn目录下

b.这一步将下列文件放到/root/client 目录下执行命令:

cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /root/client

cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/test.crt /root/client/

cp /root/client/easy-rsa/easyrsa3/pki/private/test.key /root/client

这样就将上述三个文件复制到了/root/client目录,包括:ca.crt、test.crt、test.key

第五步、为服务端编写配置文件

编写配置文件就相当于如何来配置这个openvpn服务器,到时候服务器就会根据这个配置来开放相应的vpn服务

当你安装好了openvpn时候,他会提供一个server配置的文件例子,在

/usr/share/doc/openvpn-版本号/sample/sample-config-files

下会有一个server.conf文件,我们将这个文件复制到/etc/openvpn

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

然后修改配置vi server.conf如下:

目前只修改了监听地址,具体需要用到什么功能再具体修改参数,详见openvpn配置文件详解

第六步、下载openvpn客户端,并进行配置

A:用sftp将我们在vps生成的客户端证书和key下载到客户端电脑

ca.crt qingliu.crt qingliu.key //这三个文件

B:去官网下载openvpn客户端进行安装,然后安装目录找到simple-config

安装目录\OpenVPN\sample-config\client.ovpn

将client.ovpn 复制到安装目录的OpenVPN\config下

最后,在服务端启动服务,如果报错请查看日志service openvpn start

开启日志,在/etc/openvpn/server.conf中指定log参数,后跟日志路径,查看日志得到:

    WARNING: cannot stat file 'ta.key': No such file or directory (errno=2)

在配置文件注释掉具有ta.key这一行就可以正常启动了。

iptables -I INPUT 4 -m state --state NEW -p udp --dport 1194 -j ACCEPT 添加防火墙规则,开放1194端口

如果要使用ta.key的话:

先用openvpn --genkey --secret ta.key 这条命令生成

在配置文件中指明相应的位置:tls-auth /etc/openvpn/ta.key 0

要记住:server中是0,而client中是1

当openvpn不能穿透防火墙时添加规则:

iptables -I INPUT 2 -p udp --dport 1194 -j ACCEPT

要使openvpn转发:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE  这个网段与server.conf中的server 后的网段一致。

删除forward中的拒绝规则。

猜你喜欢

转载自my.oschina.net/u/3849152/blog/1809484