發新話題
打印

[檔案傳輸] OpenVPN for Windows 架設虛擬區域網路

本主題由 站長 於 2008-5-21 05:55 加入精華

OpenVPN for Windows 架設虛擬區域網路

之前都一直在學如何建立防火牆
但這篇是在介紹架設VPN系統,讓你通過加密連線來傳輸資料,穿越防火牆

VPN系統會建立一個你(Client)和伺服器(VPN Server)的虛擬區域網路
他會虛擬出一個網路介面,程式可以透過這個介面跟VPN虛擬區域網路上的其他電腦作網路傳輸
但是VPN軟體會將通過這個網路介面的封包用RSA演算法加密,並且透過一個設定好的Port將封包送至
虛擬區域網路中的其他電腦

它透過兩個特點穿越網路閘道的防火牆

1.送出封包是加密的,防火牆無法檢查內容,也可以防止外面的駭客竊取封包後,得知封包資料
2.雖然程式以為他是用某個協定,透過某個特定Port送出資料,但是VPN會將封包透過設定的協定,Port
將資料送出,所以可以繞過防火牆擋住某個Port或某個協定 例如 閘道防火牆禁止在內網架設FTP Server 開Port 21
透過VPN,可以讓FTP資料透過UDP 1194來進行傳送 避開防火牆封鎖

架設步驟
我這邊是介紹OpenVPN在Windows上架設,這套軟體是免費的,需要架設Server 並且用Client連線
其實還有一些比較簡單的VPN 但是不是要錢 就是功能不夠齊全

從官方網站下載http://openvpn.net/index.php/downloads.html
有多個版本,我是用OpenVPN 2.1_rc7 Windows Installer
http://openvpn.net/release/openvpn-2.1_rc7-install.exe

下載後,雙擊安裝,建議先關掉一些防護軟體,因為需要安裝一些網路驅動程式
照著步驟按Next



會遇到安裝警告,按繼續安裝

裝好後,右下角系統列應該會多出一個網路連線



接著要開始作設定

先開啟安裝資料夾,像我是C:\Program Files\OpenVPN

接著將easy-rsa資料夾作備份,複製一份到旁邊,萬一等一下步驟出問題時,可以直接覆蓋回來


進到easy-rsa資料夾,新增一個資料夾叫keys


接著用文字編輯軟體開啟vars.bat.sample編輯

set KEY_SET 設定Key的大小,加密用的,預設是1024 數值越大越安全,但產生Key的時間越久


下面這邊 是一些基本資料設定,下面是我的設定,也可以保留預設值
set KEY_COUNTRY=TW
set KEY_PROVINCE=TW
set KEY_CITY=XC
set KEY_ORG=XC
set KEY_EMAIL=wu2691307@gmail.com


最後記得將vars.bat.sample存檔

接著要開始產生一些東西,注意指令輸入後有沒有錯誤訊息

先打開命令提示字元,切換到easy-rsa資料夾下

輸入init-config,按Enter


接著應該會複製兩個檔案


接著輸入vars.bat,按Enter 這樣會將環境初始化好


在輸入clean-all,按Enter,完成環境初始化


這時候keys資料夾裡面應該會如圖,有兩個檔案


接下來再輸入build-dh,按Enter 這會產生Key,時間長短依剛剛set KEY_SET的設定值變動,要一段時間(看電腦等級)
產生時建議不要動電腦,產生時如圖

完成後


產生好後,輸入build-ca,按Enter
會先跑出一些資料,接著會停住,這時要注意了
如果左方的[ ]中有資料,例如圖中[XC] 直接按Enter,代表設定值與左方相同

如果左方的[ ]中沒資料如圖,那就要自己輸入資料,再按Enter,而且請記住輸入的資料,等一下會用到


接著輸入build-key-server server,注意 後面要多帶server這個參數,要不然產生出來的檔案沒名字
輸入方式跟剛剛相同,注意如果是一樣的設定,資料要跟剛剛填的一樣,在A challenge password的地方請輸入你的密碼


後面它會問你(y/n)一律都答y

完成後


接下來要新增一個用戶端資料
輸入build-key client1 注意client1是你的用戶名稱,可以隨你自己高興取名 如Test,但不能重複
填法也跟剛剛一樣,但是注意Common Name不能和剛剛重複,也不能和其他用戶的一樣,否則會有錯誤


完成


看你要產生幾個用戶,就用這個指令產生幾個

接著,要開始架設Server的部分
將keys資料夾下的ca.crt、ca.key、dh(看你的set KEY_SET值,如果是1024這裡就是1024 2048就是2048).pem、server.crt、server.key
複製起來


複製到安裝資料夾(C:\Program Files\OpenVPN)\config資料夾下
接著再到安裝資料夾(C:\Program Files\OpenVPN)\sample-config中複製server.ovpn到config資料夾中


用文字編輯軟體打開server.ovpn

;local a.b.c.d 請將a.b.c.d設定成你的伺服器IP,前面的分號要記得拿掉


port 1194 可以設定你想要的port,或不會被防火牆封鎖的port 注意不要和伺服器上已開啟的port重複


proto udp 設定你要的通訊協定


dev tun設定走tun 還是 tap 我是用預設的tun,如果要用tap了話,下面好像有一些東西要設定,去網路上爬文吧
不然就用tun


dh dh1024.pem 設定檔案名稱,看你的set KEY_SET值,如果是1024這裡就是dh dh1024.pem 2048就是dh dh2048.pem


server 指定你的虛擬區域網路網段

;push "route 192.168.10.0 255.255.255.0" 把前面的;拿掉,指定用戶使用的VPN


;client-to-client 把前面的;拿掉後,可以讓虛擬區域網路中的用戶端互相通訊


;duplicate-cn 把前面的;拿掉後<可以預防用戶名稱取一樣而出問題


都設好後,記得要存檔
接著到開啟功能表內啟動OpenVPN GUI


點Connect


如果完全沒有錯誤,圖示會變成綠色的,代表你成功了


如果沒有變綠色,那可以到View Log開啟Log 查看錯誤


接下來是客戶端電腦,用戶端電腦也要先安裝OpenVPN,但是只要安裝就好
接著將剛剛keys資料夾下的ca.crt、client1.crt(剛剛產生的用戶名 如果是Test 就是Test.crt)、client1.key(跟前面一樣,剛剛產生的用戶名)
複製到用戶端電腦中的config,接著到sample-config資料夾中複製client.ovpn到config


用文字編輯軟體開啟client.ovpn編輯

走tun還是tap 要跟伺服器一樣


通訊協定 也要跟伺服器一樣


設定伺服器 remote my-server-1 1194   my-server-1設成伺服器IP或Domain name 1194要設成跟伺服器
一樣的的port


接下來的這個
cert 後面的檔名請你改成跟剛剛複製進來的檔名相同 就是 用戶名.crt
key 也是 用戶名.key


完成後存檔

一樣到開啟功能表啟動OpenGUI


按Connect連線


成功後,圖示也會變成綠色的
你和伺服器的虛擬區域網路就架好了

接著你可以用虛擬區域網路網段IP來跟伺服器傳送封包
伺服器的IP會是虛擬區域網路網段.1 例如192.168.10.0 就是192.168.10.1
如果伺服器上有FTP Server 你可以在FTP Client IP的地方輸入伺服器的虛擬區域網路IP進行連線
不過記得伺服器FTP Server要使用的網路介面,要改成這個虛擬網路介面
我目前還沒試FTP 但是我的Proxy伺服器已經能透過VPN來連線了

注意 穿越防火牆 我還沒實際測試  希望如果有網友有這種環境 幫忙測試
感謝http://www.kerobbs.net/viewthread.php?tid=9082&extra=page%3D1 教我使用的方法
本帖最近評分記錄
  • 蛋頭 威望 +20 棒~!!! 2008-5-4 00:53
  • 蛋頭 黃金 +20 棒~!!! 2008-5-4 00:53
  • upside 威望 +20 精品文章 2008-5-3 14:46
  • upside 黃金 +20 精品文章 2008-5-3 14:46

TOP

很棒的教學 可以給我收集嗎
以技術為本 造福他人 為眾人所幸
以技術為惡 危害他人 為眾人所指
解決問題的順序:
1. 先檢查硬體(有沒有超頻/記憶體模組/周邊網路設備的好壞等等)
2. 檢查 系統的登錄檔,尤其是 Run 的內容
3. 不要急,先翻書瞭解相關問題的原理,再設法解決
4. 利用關鍵字,在 論壇內 或 www.google.com.tw 搜尋是否有人已經遇過類似的問題
5. 都沒有辦法了,再在討論區以明確的標題來發問

TOP

回復 2# 的帖子

當然可以呀

TOP

真的太棒了@@
我也要打包一份XDD

傳說中...有一天我在逛逛朋友的無名布拉格,準備要回覆時,意外的發現這組"認證碼",我黯然的按下F5.....

      蛋頭網 http://255148.3cc.cc

TOP

發新話題