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、安裝前準備
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="[email protected]" 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目錄下生成的文件:
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、測試
ping通服務器的內網IP,說明已經接入到服務器的內部網絡。
到Open***服務器上查看客戶端的連接情況,查看狀態文件/etc/open***/open***-status.log: