说明:
目的是实现在家可以访问公司内部局域网内的机器。实现方式是通过在centos上部署open***服务,
通过***连入内部局域网。
软件包下载:http://build.open***.net/downloads/releases/
参考文档:https://open***.net/index.php/open-source/documentation/howto.html
系统环境:centos 6.8
安装包准备:
Openssl lzo pam open***
安装open***依赖
openssl lzo pam
系统默认安装了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
安装部署:
1、 安装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
2、 安装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
3、 安装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
4、 生成证书 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
5、 配置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
6、启动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
7、开启外网访问,配置防火墙
#开启系统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
8、 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***连接了。
转载于:https://blog.51cto.com/rogerwang/1812257