說明: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***鏈接了。