说明:php
目的是实如今家能够访问公司内部局域网内的机器。实现方式是经过在centos上部署open***服务,
html
经过***连入内部局域网。算法
软件包下载:http://build.open***.net/downloads/releases/vim
参考文档:https://open***.net/index.php/open-source/documentation/howto.htmlcentos
系统环境:centos 6.8安全
安装包准备:bash
Openssl lzo pam open***服务器
安装open***依赖 app
openssl lzo pam
tcp
系统默认安装了openssl-1.0.1e-48.el6_8.1.x86_64 pam-1.1.1-22.el6.x86_64
使用的软件包:
easy-rsa-2.2.0_master.tar.gz lzo-2.09.tar.gz open***-2.3.11.tar.gz
安装部署:
一、 安装lzo, 是致力于解压速度的一种数据压缩算法,LZO是Lempel-Ziv-Oberhumer的缩写。加快open***的数据传输。
[root@www open***soft]# ls easy-rsa-2.2.0_master.tar.gz lzo-2.09.tar.gz open***-2.3.11.tar.gz [root@www open***soft]# tar -xzf lzo-2.09.tar.gz [root@www lzo-2.09]# ./configure --prefix=/usr/local/ [root@www lzo-2.09]# make && make install
二、 安装open***
[root@www open***soft]# tar zxf open***-2.3.11.tar.gz [root@www open***-2.3.11]# ./configure --prefix=/usr/local/open*** [root@www open***-2.3.11]# make && make install
三、 安装easy-rsa,用来生成证书和秘钥
[root@www open***soft]# tar zxf easy-rsa-2.2.0_master.tar.gz -C /usr/local/open***/ #备份vars文件 [root@www 2.0]# cp vars vars_20160706 #这里为了方便,去掉注释和空行,生成vars文件,你也能够直接编辑原文件 [root@www 2.0]# grep -v '^#' vars_20160706 > vars [root@www 2.0]# sed '/^$/d' -i vars #编辑vars文件 基本只须要修改有注释的部分,其余部分保持默认 [root@www open***]# cd easy-rsa-2.2.0_master/easy-rsa/2.0/vars export EASY_RSA="`pwd`" export OPENSSL="openssl" export PKCS11TOOL="pkcs11-tool" export GREP="grep" export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA` export KEY_DIR="$EASY_RSA/keys" echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR export PKCS11_MODULE_PATH="dummy" export PKCS11_PIN="dummy" #修改成2048 export KEY_SIZE=2048 export CA_EXPIRE=3650 export KEY_EXPIRE=3650 #下面信息 根据我的状况设置 #在后面生成服务端ca证书时,这里的配置会做为缺省配置 export KEY_COUNTRY="CN" export KEY_PROVINCE="BJ" export KEY_CITY="BJ" export KEY_ORG="Fly" export KEY_EMAIL="125065124@qq.com" export KEY_EMAIL=125065124@qq.com export KEY_CN=China export KEY_NAME=open***key export KEY_OU=Fly #这里是配置设置智能卡 #export PKCS11_MODULE_PATH=changeme #export PKCS11_PIN=1234
#配置SSL文件的软链接 [root@www 2.0]# ln -s openssl-1.0.0.cnf openssl.cnf #全局变量 [root@www 2.0]# source vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/local/open***/easy-rsa-2.2.0_master/easy-rsa/2.0/keys #初始化key文件,清空keys目录 [root@www 2.0]# ./clean-all
四、 生成证书 CA、server端crt、key 客户端 crt、key 证书秘钥传输加密ta.key
根据提示基本一路回车,不过有须要确认的信息,使用build-key-pass时须要设置密码
#生成服务器CA [root@www 2.0]# ./build-ca #生成服务端证书、秘钥 [root@www 2.0]# ./build-key-server #生成客户端证书秘钥,在客户端链接时不须要密码认证 [root@www 2.0]# ./build-key client1 #生成客户端证书秘钥,在客户端链接时须要密码认证 [root@www 2.0]# ./build-key-pass client2 #为服务器生成Diffie-Hellman文件 [root@www 2.0]# ./build-dh #加强upd传输时的安全性,下降DDos风险 open*** --genkey --secret ta.key
五、 配置open***
#将证书复制到/usr/local/open***/keys/目录下 [root@www keys]# cp -a ca.crt ta.key www.roger.com.crt dh2048.pem www.roger.com.key /usr/local/open***/keys/ #在解压包中将配置文件复制到/usr/local/open***/ [root@www open***-2.3.11]# cp -a sample/sample-config-files/server.conf /usr/local/open***/ #备份配置文件 [root@www open***]# cp -a server.conf server.conf_20160706 [root@www open***]# grep -v '^[#|;]' server.conf_20160706 | grep -v '^$' > server.conf #配置服务端open*** [root@www 2.0]# vim /usr/local/open***/server.conf # 设置监听IP,默认是监听全部IP ;local a.b.c.d #设置监听接口,注意防火墙开放 port 1194 #设置使用tcp 仍是udp协议 proto tcp #选择模式 tun为路由模式,tap为桥接模式 dev tun #指定SSL/TLS root certificate (ca) 证书(cert)和私钥(key) #每一个客户端和服务端都必须有本身的证书和私钥文件。 #服务端和客户端使用相同的ca文件 ca keys/ca.crt cert keys/www.roger.com.crt key keys/www.roger.com.key # This file should be kept secret #指定Diffie hellman parameters. 默认是2048,生成ca的时候修改过dh参数“export KEY_SIZE”则改成对应的数字 dh keys/dh2048.pem #证书秘钥加密传输,服务端设置ta.key 0 客户端设置ta.key 1 tls-auth keys/ta.key 0 # 配置×××使用的网段,Open×××会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网段重复 server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt #为客户端建立对应的路由,以另其通达公司网内部服务器 #但记住,公司网内部服务器也须要有可用路由返回到客户端 push "route 10.10.0.0 255.255.0.0" # 用Open×××的DHCP功能为客户端提供指定的DNS、WINS等 push "dhcp-option DNS 8.8.8.8" keepalive 10 120 persist-key persist-tun # 使用lzo压缩的通信,服务端和客户端都必须配置 comp-lzo # 输出短日志,每分钟刷新一次,以显示当前的客户端 status /var/log/open***/open***-status.log # 缺省日志会记录在系统日志中,但也能够导向到其余地方 # 建议调试的使用先不要设置,调试完成后再定义 log /var/log/open***/open***.log log-append /var/log/open***/open***.log #设置日志级别 verb 3
六、启动open***
#将启动脚本复制到/etc/init.d/目录下 [root@www open***-2.3.11]# cp -a distro/rpm/open***.init.d.rhel /etc/init.d/open*** #修改启动脚本相关配置,脚本85行 修改成:work=/usr/local/open*** [root@www open***-2.3.11]# vim /etc/init.d/open*** #启动open*** [root@www ~]# service open*** start #添加开机启动 [root@www ~]# chkconfig open*** on
七、开启外网访问,配置防火墙
#开启系统IP转发功能,让数据包在不一样的网段之间流通 [root@www ~]# vim /etc/sysctl.conf #将net.ipv4.ip_forward = 0 改成 1 [root@www ~]# sysctl -p #当即生效 #配置防火墙 开启1194 [root@www ~]# iptables -A INPUT -p TCP --dport 1194 -j ACCEPT #配置nat表将***网段IP转发到server内网 注意eth0是内网的接口 [root@www ~]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE #注意nat表POSTROUTING须要保存重启才生效 #保存iptables [root@www ~]# service iptables save #重启iptables [root@www ~]# service iptables restart
八、 Windows客户端配置:
软件包下载:http://build.open***.net/downloads/releases/
使用软件 open***-install-2.3.2-I003-x86_64.exe,一路默认选项安装。
通常安装在目录中C:\program files\Open×××中
在C:\program files\Open×××\config目录下建立client.o*** 内容以下:
client dev tun proto tcp remote 192.168.1.188 1194 #这里配置的是***服务端ip resolv-retry infinite ca ca.crt cert client1.crt key client1.key tls-auth ta.key 1 comp-lzo persist-key persist-tun auth-nocache status open***-status.log verb 3
下载服务器端生成的证书ca.crt client1.crt client1.key ta.key 并复制到 C:\program files\Open×××\config目录下。
此时,能够启动open***链接了。