本站內容為本人所有,禁止未經同意恣意未具名轉載或修改原作內容轉發!

2013年3月12日 星期二

[筆記] OpenVPN for windows 2008 輕鬆建立具有網際網路連線能力的私有網路環境 (單網卡)

雖然OpenVPN教學文章網路上頗多的,

但真的有明確教導如何在windows環境底下讓VPN具有網際網路連線能力(跳板)倒是沒有,

總之廢話不多說,

就開始吧!

Server端(Windows 2008)

Step1. 首先到官網下載 OpenVPN 32位元版本

image

至於為什麼不使用64位元版本,

原因其實很簡單…

就是裝了之後設定好卻無法順利啟動OpenVPN服務,

所以為了省事,

大家還是都使用32位元版本吧!= =

Step2. 安裝openvpn,安裝時,請記得再加裝OpenSSL Utilities與OpenVPN RSA Certificate Management Scripts

image

Step3.安裝完之後,請到 OpenVPN\config底下利用筆記本建立一個server.ovpn檔案,並將以下設定參數複製到其中,並針對個人需求做參數的調整後存檔

## server.ovpn ##
port 888  # 使用的port#
proto udp  # 採用udp連線。#
dev tap
ca ca.crt  #憑證檔案#
cert server.crt  #憑證檔案#
key server.key #憑證檔案#
dh dh1024.pem #採用1024位元加密,也可以改為2048#
#網路設定#
server 192.168.0.0 255.255.255.0
#為了配合windows內建共享網路網段,所以不能更改#
ifconfig-pool-persist ipp.txt
push "route 0.0.0.0 0.0.0.0" 
#這段的意思就是讓所有連線都透過server端的網際網路轉送,當然你也可以針對特定網段才透過server端連線,例如你想要讓140.x.x.x網段都透過server端轉送,那麼就加入 push "route 140.0.0.0 255.0.0.0"#
push "dhcp-option WINS 192.168.0.1"
#為了配合windows內建共享網路網段,所以不能更改#
push "dhcp-option DNS 192.168.0.1"
#為了配合windows內建共享網路網段,所以不能更改#
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
max-clients 10
persist-key
persist-tun
status openvpn-status.log
verb 3
#如果要讓client端彼此可以互連的話,以下參數一定要加!#
client-to-client

Step4. 建立vars檔案,開啟命令提示字元,並執行以下指令


cd C:\Program Files (x86)\OpenVPN\easy-rsa
(ps.資料夾位置會依你實際安裝位置而不同,請自行修改)
init-config

Step5. 為了降低日後產生Client端金鑰的麻煩,建議可以先編輯vars.bat檔案,之後就不用每產生一次就得更改一次,基本上不管你怎麼打都可以,但為了方便管理,還是照實打會比較好就是囉。

set KEY_COUNTRY=國家 (ex::TW)
set KEY_PROVINCE=省份 (ex:TW)
set KEY_CITY=城市 (ex:Tainan)
set KEY_ORG=組織 (ex:abc)
set KEY_EMAIL=電子郵件 (ex: abc@gmail.com)
set KEY_NAME=名字 (ex: Richard)

Step6. 執行以下指令,以產生兩個新的索引序列檔

vars
clean-all

step7. 建立ca 金鑰(這步驟只需要執行一次,因為這個key非常關鍵,他是讓server端判定Client是否為合法用戶的金鑰,所以一旦重新建立,那麼所有Client的金鑰都得重做囉~)

vars
build-ca

Step8. 執行以下指令,建立dh file

vars
build-dh

Step9. 執行以下指令,建立Server端 金鑰

vars
build-key-server server

step10. 以上指令執行完畢後,正常來說會產生 ca.crt, server.crt ,server.key, dh1024.pem(或dh2048.pem),請將這些檔案複製到OpenVPN\config底下

Step11. 產生Client端金鑰,基本上有幾台Client就要產生幾組金鑰,至於命名方式不限,都可以隨自己喜歡命名,唯獨在Common Name設定部份時,千萬不能與先前產生的金鑰重複(包含server金鑰),否則就會無法順利產生金鑰。

vars
build-key Client端名稱(ex:Client1, Client2…等)

Step12. 執行完後應該就會產生 Client端的金鑰組(ex: Client1.crt和Client1.key),請將此組金鑰包含ca.crt複製到Client端的OpenVPN\config底下

Step13. 之後即可至服務啟用OPENVPN Services,不過這裡要注意的是,啟動不代表啟動成功,所以如果想知道是否有順利啟動,可以至C:\Program Files (x86)\OpenVPN\log查看紀錄檔

image
image

Step14. 至控制台->網路和共用中心->管理網路連線->區域連線(具有網際網路連線能力)->按右鍵->內容->共用->開啟網路連線共用功能即可(如下圖)
image

image

step15.最後,別忘了打開你的防火牆連線喔~以上述的設定請開啟udp 888 port

Client端(Windows)

Step1. 安裝OpenVPN

Step2. 將Server端所產生的金鑰檔(ex: Client1.crt, Client1.key, ca.crt),放至OpenVPN\config資料夾內

Step3.在OpenVPN\config底下建立 client.ovpn檔案,並將以下內容複製其中,並針對需求進行參數修訂

## remote.ovpn ##
client
dev tap
proto udp
remote Server主機IP 888
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

Step4. 至桌面,以管理者權限開啟OpenVPN GUI即可順利連線成功囉!

image 

往後如果有時間,

再教大家讓Android手機連OpenVPN囉。 : )

沒有留言:
Write 意見