Open***是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件。使用Open***可以方便地在家庭、办公场所、住宿酒店等不同网络访问场所之间搭建类似于局域网的专用网络通道。

    使用Open***配合特定的代理服务器,可用于访问Youtube、FaceBook、Twitter等受限网站,也可用于突破公司的网络限制。

一、服务器端安装及配置

    服务器环境:干净的CentOS6.3 64位系统

    内网IP:10.143.80.116

    外网IP:203.195.xxx.xxx

    Open***版本:Open*** 2.3.2 x86_64-redhat-linux-gnu

    1、安装前准备




# 关闭selinux


setenforce 0


sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config


 


# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度


yum -y install openssl openssl-devel


yum -y install lzo


 


# 安装epel源


rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm


sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo



    2、安装及配置Open***和easy-rsa




# 安装open***和easy-rsa


yum -y install open*** easy-rsa


 


# 修改vars文件


cd /usr/share/easy-rsa/2.0/


vim vars






# 修改注册信息,比如公司地址、公司名称、部门名称等。


export KEY_COUNTRY="CN"


export KEY_PROVINCE="Shandong"


export KEY_CITY="Qingdao"


export KEY_ORG="MyOrganization"


export KEY_EMAIL="me@myhost.mydomain"


export KEY_OU="MyOrganizationalUnit"






# 初始化环境变量


source vars


 


# 清除keys目录下所有与证书相关的文件


# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里


./clean-all


 


# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)


./build-ca


 


# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)


./build-key-server server


 


# 每一个登陆的***客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份


# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)


./build-key client1


./build-key client2


 


# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)


./build-dh


 


# 生成ta.key文件(防DDos***、UDP淹没等恶意***)


open*** --genkey --secret keys/ta.key



    查看keys目录下生成的文件:

wKioL1RhllmyOZW9AAKmWJ5x4tg383.jpg

    3、创建服务器端配置文件




# 在open***的配置目录下新建一个keys目录


mkdir /etc/open***/keys


 


# 将需要用到的open***证书和密钥复制一份到刚创建好的keys目录中


cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/open***/keys/


 


# 复制一份服务器端配置文件模板server.conf到/etc/open***/


cp /usr/share/doc/open***-2.3.2/sample/sample-config-files/server.conf /etc/open***/


# 查看server.conf里的配置参数


grep '^[^#;]' /etc/open***/server.conf


# 编辑server.conf


vim /etc/open***/server.conf






port 1194


# 改成tcp,默认使用udp,如果使用HTTP Proxy,必须使用tcp协议


proto tcp


dev tun


# 路径前面加keys,全路径为/etc/open***/keys/ca.crt


ca keys/ca.crt


cert keys/server.crt


key keys/server.key  # This file should be kept secret


dh keys/dh2048.pem


# 默认虚拟局域网网段,不要和实际的局域网冲突即可


server 10.8.0.0 255.255.255.0


ifconfig-pool-persist ipp.txt


# 10.0.0.0/8是我这台***服务器所在的内网的网段,读者应该根据自身实际情况进行修改


push "route 10.0.0.0 255.0.0.0"


# 可以让客户端之间相互访问直接通过open***程序转发,根据需要设置


client-to-client


# 如果客户端都使用相同的证书和密钥连接***,一定要打开这个选项,否则每个证书只允许一个人连接***


duplicate-cn


keepalive 10 120


tls-auth keys/ta.key 0 # This file is secret


comp-lzo


persist-key


persist-tun


# Open***的状态日志,默认为/etc/open***/open***-status.log


status open***-status.log


# Open***的运行日志,默认为/etc/open***/open***.log 


log-append open***.log


# 改成verb 5可以多查看一些调试信息


verb 5



    4、配置内核和防火墙,启动服务




# 开启路由转发功能


sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf


sysctl -p


 


# 配置防火墙,别忘记保存


iptables -I INPUT -p tcp --dport 1194 -m comment --comment "open***" -j ACCEPT


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


service iptables save


 


# 启动open***并设置为开机启动


service open*** start


chkconfig open*** on



    5、创建客户端配置文件




# 复制一份client.conf模板命名为client.o***


cp /usr/share/doc/open***-2.3.2/sample/sample-config-files/client.conf client.o***


# 编辑client.o***


vim client.o***






client


dev tun


# 改为tcp


proto tcp


# Open***服务器的外网IP和端口


remote 203.195.xxx.xxx 1194


resolv-retry infinite


nobind


persist-key


persist-tun


ca ca.crt


# client1的证书


cert client1.crt


# client1的密钥


key client1.key


ns-cert-type server


# 去掉前面的注释


tls-auth ta.key 1


comp-lzo


verb 3



二、Windows客户端安装及配置

    客户端系统:Windows7 64位

    内网IP:172.16.4.4

    Open***版本:Open*** 2.3.3 Windows 64位

    1、下载安装Open***

    Open*** 2.3.3 Windows 32位 安装文件:

    http://swupdate.open***.org/community/releases/open***-install-2.3.3-I002-i686.exe

    Open*** 2.3.3 Windows 64位 安装文件:

    http://swupdate.open***.org/community/releases/open***-install-2.3.3-I002-x86_64.exe

    2、配置client

    将Open***服务器上的client.o***、ca.crt、client1.crt、client1.key、ta.key上传到Windows客户端安装目录下的config文件夹(C:\Program Files\Open***\config)

    3、启动Open*** GUI

    在电脑右下角的open***图标上右击,选择“Connect”。正常情况下应该能够连接成功,分配正常的IP。

     4、测试

wKiom1RhjfPD8_AYAAGxUvt_PCA503.jpg

    ping通服务器的内网IP,说明已经接入到服务器的内部网络。

    到Open***服务器上查看客户端的连接情况,查看状态文件/etc/open***/open***-status.log