这是本文档旧的修订版!


如何搭建基于astercc系统的OpenVPN

VPN服务器端:Centos 6.6(Final) (装有astercc系统) VPS的IP为:8.38.33.10

VPN客户端:Windows7 OpenVPN-GUI IP为:192.168.1.226

第一步:为VPS安装OpenVPN及所有所需软件

安装EPEL仓库

 wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
 rpm -Uvh epel-release-6-8.noarch.rpm 

安装OpenVPN

包含了 lzo 和 pkcs11-helper

 yum install 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-rsa文件夹复制到/etc/openvpn/目录下:

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

安装Unzip和Zip

在安装Easy-rsa步骤中,假如在 “unzip master.zip” 时提示: -bash: unzip: command not found,则需要执行如下操作:

debian系统,就直接执行如下命令进行安装:

 apt-get install -y zip unzip 

centos系统,那就需要输入下面的命令进行安装:

 yum -y install zip unzip 

第二步:编辑vars文件,根据自己环境配置

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

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

然后,在此目录下复制 vars.example 为 vars

 cp vars.example vars 

最后,根据自己VPS情况修改下面字段,命令:vi vars,然后进行修改,最后 :wq 退出并保存。注意:配置文件中以 “;” 和 “#” 开头的语句均表示注释,但 “;” 是用来注释可选配置的。

 set_var EASYRSA_REQ_COUNTRY "CN"
 set_var EASYRSA_REQ_PROVINCE "Liaoning"
 set_var EASYRSA_REQ_CITY "Dalian"
 set_var EASYRSA_REQ_ORG "Astercc Org"
 set_var EASYRSA_REQ_EMAIL "liuxl@astercc.com"
 set_var EASYRSA_REQ_OU "Support Unit" 

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

首先,进入/etc/openvpn/easy-rsa/easyrsa3/目录,进行初始化:

 cd /etc/openvpn/easy-rsa/easyrsa3/
 ./easyrsa init-pki

然后,创建根证书,输入并确认密码,再输入common name:

 ./easyrsa build-ca 

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

再创建服务器端证书,输入Common Name:

 ./easyrsa gen-req server nopass 

创建签约服务端证书:

 ./easyrsa sign server server 

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

 ./easyrsa gen-dh 

第四步:创建客户端证书

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

 cd /root/
 mkdir client             //&& cd client
 cp -R /etc/easy-rsa/ client/
 cd client/easy-rsa/easyrsa3/ 

然后进行初始化:

 ./easyrsa init-pki 

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

 ./easyrsa gen-req andy  //名字是自己定义的 

然后再将得到的andy.req导入然后签约证书:

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

<code> cd /etc/openvpn/easy-rsa/easyrsa3/ </code>

b.导入req

<code> ./easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/andy.req andy </code>

c.签约证书

<code> ./easyrsa sign client andy </code>

这里生成client,所以必须为client,andy要与之前导入名字一致。上面签约证书跟server类似,就不截图了,但是期间还是要输入CA的密。

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

服务端:(/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/andy.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/andy.crt
  /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem

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

  /root/client/easy-rsa/easyrsa3/pki/private/andy.key
  /root/client/easy-rsa/easyrsa3/pki/reqs/andy.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/andy.crt /root/client
 cp /root/client/easy-rsa/easyrsa3/pki/private/andy.key /root/client 

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

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

当你安装好了openvpn时候,他会提供一个server配置的文件例子,在 /usr/share/doc/openvpn-2.3.6/sample/sample-config-files 下会有一个server.conf文件,我们将这个文件复制到/etc/openvpn

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

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

 local 192.168.1.178(跟自己vps IP一致)
 port 1194
 dev tun
 proto udp
 ca /etc/openvpn/ca.crt
 cert /etc/openvpn/server.crt
 key /etc/openvpn/server.key   # This file should be kept secret
 dh /etc/openvpn/dh.pem
 server 10.8.0.0 255.255.255.0   ?????   #假如不行,改写成服务端的192.168.1.219地址试一下
 ifconfig-pool-persist ipp.txt
 push "redirect-gateway def1 bypass-dhcp"   #网关重定向
 push "dhcp-option DNS 8.8.8.8"
 keepalive 10 120
 comp-lzo
 max-clients 100
 persist-key
 persist-tun
 status openvpn-status.log
 verb 3 

每个项目都会由一大堆介绍。上述修改,openvpn提供的server.conf已经全部提供,我们只需要去掉前面的注释 #(或;),然后修改我们自己的有关配置。

??开启系统转发功能??

[root@vpn ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1 [root@vpn ~]# sysctl -p [root@vpn ~]# sysctl -a | grep net.ipv4.ip_forward net.ipv4.ip_forward = 1

??封装出去的数据包(eth0是你的vps外网的网卡)??:

/sbin/iptables -t nat -I POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE ​

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

第七步:测试排错

  

zh/实际案例指导/如何搭建基于astercc系统的openvpn.1433300390.txt.gz · 最后更改: (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki