»
免費軟體分享&教學 » [Step By Step教學]突破防火牆的OpenVPN Windows版(97/8/16修改文章並重新補圖)
|
  
- 文章
- 787
- 推文
- 109
- 噓文
- 0
- 遊戲經驗
- 0
- 歡慶點數
- 10
  
|
[教學] [Step By Step教學]突破防火牆的OpenVPN Windows版(97/8/16修改文章並重新補圖)
98/5/10
本來想說找個時間補一下client圖片的,
網路一找,竟然有人延用我的教學文章耶,
圖還一模一樣(直接用我空間的圖片),
雖然早知道放在網路上,
教學文章一定會被人取走,
不過,反正圖片不是我出錢的伺服器,
我也不該這麼計較。
但想想要再上圖的動力瞬間都沒了,
要轉個文章,密一下我有那麼難嗎?
97/12/11修改文章如紅字。在25點之後。
VPN指的是:虛擬私有網路
為何要架VPN呢?
因為公司防火牆擋的太離譜了,
舉例來說,如果家中電腦的檔案忘了copy,
想要連回家抓檔案時,因為公司網路跟你家的網路不太可能可以直接連。
又或者你想當跳板使用,例如,公司不給連除了HTTP、HTTPS這些port以外的話。
就只能找可以當跳板的伺服器,或者是在家中設定好當伺服器,
如此也可以突破防火牆。
有關於VPN的軟體眾多,
但是因為我用過的,例如:
日本的:
Softether
(以前是免費,但現在申請很麻煩,因為後來發生有不好的事情,詳情可以上google查詢)
Hamachi
(這套有正體中文支援,使用上也很方便,但缺點是免費版只能在一個群組中只有幾台電腦,
要超過多台則需要付費)
中國:
vnn
(我只玩過舊版,新版沒試過,我記得有分個人版跟伺服版)
以上,只有hamachi跟vnn非常好設定,
只需申請帳號即可,不用架伺服器,但相對的,網管人員要鎖這些vpn軟體就更方便了。
而softether我只用過1.x版,也要架個伺服器版,
而且只有日、英文版,設定上較麻煩。
但現在又不開放給一般使用者使用。
所以,目前我只好轉向今天我介紹的這套-OpenVPN。
它可以藉由軟體模擬網路卡,透過特定的port,
連上遠端的server,而模擬像網路卡直接接上hub的樣子,
如此可以跟遠端的server處在同一個local LAN,
從而達到突破公司連外防火牆的目的。
雖然它是英文版,而且不太好設定,但我終於抽空摸出心得來了。
底下就來介紹它的使用法了。
系統為vista的話,請下載2.1 beta版,但gui版似乎尚未更新,
所以,可能必須先裝非gui版,再裝gui,但裝gui時不要裝網卡,
這樣應該就可以了。(不要問我,我沒有一台電腦是vista!)
另,建議使用gui版會比較方便使用喔!
1.首先就是要連到官網:OpenVPN官網
目前版本為2.0.9版,點下連結

2.伺服器版本可以裝在linux或win系統上,今天要介紹的是裝在win系統上,
點選Windows Installer右邊的Download;(如果你的系統是win系統,並且希望有gui可用請跳至第6點下載即可)
3.再點openvpn-2.0.9-install.exe連結

4.點選「存檔」

5.找個好地方儲存吧,找完後,點「儲存」

6.檔案很小,一下子就下載完,請暫時切回ie,下載具gui界面的安裝軟體,
請往下一點,尋找OpenVPN GUI,並點下去。(這邊的安裝法跟gui很像,我就不放教學了)

7.這邊是OpenVPN GUI的官網,點選左邊的Download的「Stable」

8.點選「openvpn-2.0.9-gui-1.0.3-install.exe」

9.點選「存檔」

10.找個好地方儲存吧,找完後,點「儲存」

11.要馬上安裝,就點選「執行」吧

12.安全性警告,點「執行」

13.點選「Next」

14.版權宣告,點選「I Agree」

15.在「My Certificate Wizard」視情況打勾(根據我之前爬文的結果,聽說可以跟apache併用?),
點選「Next」

16.預設的安裝目錄,就不用動它了吧?點「Install」

17.安裝過程中,有個硬體的裝置因為沒有通過微軟認証過,
點選「繼續安裝」

18.看到Completed及successfuly,就表示安裝成功啦,點「Next」

19.點選「Finish」

20.接下來,我們需要備份一個重要的子目錄,按「視窗鍵」+「E」呼叫檔案總管出來後,
在網址列上貼入「C:\Program Files\OpenVPN」後,
在「easy-rsa」子目錄上,點選右鍵,選擇「複製」

21.在空白的地方(紅色虛線圈圈範圍)點右鍵,選「貼上」

22.進入「easy-rsa」子目錄後,如果您沒有畫面中的「DOS在這裡」,
請按「視窗鍵」+「r」呼叫執行視窗,輸入「cmd」,再輸入「cd "C:\Program Files\OpenVPN\easy-rsa"」
在這邊忘了抓一個重要的圖,就是要自己建一個「keys」的子目錄,您可以在命令提示字元中,直接輸入「md keys」
(也就是說「easy-rsa」子目錄下,需有一個子子目錄叫作「keys」)

23.在「vars.bat.sample」按右鍵,選「Open in Nopad++」,
(在這邊使用您喜歡用的文書編輯軟體即可,若無就使用筆記本,不過,會很難作業)

24.這個就是從內建的筆記本開出來的圖片,這個原因是windows系統跟其它系統的不同,
windows在文件中會使用到換行符號,所以,在其它系統的文件,打開來看就都沒有換行。
所以,請務必使用可以偵測並轉換的軟體。

25.如果需要把加密的key由1024(預設)加大為2048,
將「set KEY_SIZE=」後面改為2048,
(原則上1024應該就夠了,但是,2048會使得更難破解,但需要作key的時間會很長!)
另外,要修改的是底下常用的資料:
set KEY_COUNTRY=TW
set KEY_PROVINCE=TW
set KEY_CITY=TaiPei
set KEY_ORG=home
set KEY_EMAIL=sse-cmm@kerobbs.net
第一個是設定國家,第二個是省,第三個是城市,
第四個是組織名稱,第五個是你的e-mail。
變更完成後就存檔吧(Ctrl+S)。

26.如果您不想打字,那就從檔案總管中,將「init-config.bat」拉住不放,
移往命令提示字元吧,不然就直接打上「init-config」

27.確認檔名已出現在命令提示字元後,按「Enter」

28.正常來說會沒有錯誤訊息,它會copy二個檔案出來。


真是抱歉,竟然漏掉一個重要的執行。作好的vars.bat修改好後,
我在這邊竟然忘了作執行它的動作,也因為它沒執行的話,
則很多東西將會失敗,常見的會出現*.old找不到。
我也忘了這個指令該在何時須執行,我查完後再修正。
(12/11修正文章)
29.接下來,請先執行vars.bat,同樣的方法,拉「clean-all.bat」到命令提示字元,
或者直接輸入「clean-all」也可以,按「Enter」
(在這邊要注意,當你執行這個時,keys目錄裡的東西將會被刪除!)
30.這邊也要注意是否有錯誤訊息發生。如無意外,就會copy二個檔案出來。

31.同樣的方法,拉「build-dh.bat」到命令提示字元,
或者直接輸入「build-dh」也可以,按「Enter」
這邊會視你的電腦速度而有所快慢,而且,最好不要動電腦!
我產生2048的key的同時,又動了電腦,結果就是使用了137行才造成功,
約花了46分鐘才產生完!(這邊key的長度是之前你改的vars.bat.sample值)

(不好意思,因重新抓圖,我電腦又舊,所以這以下的圖都是以1024為範例,請見諒!)
32.同樣的方法,拉「build-ca.bat」到命令提示字元,
或者直接輸入「build-ca」也可以,按「Enter」

33.這個指令是要作伺服器的認証,這邊如果在[]之間有資料,
(也就是之前你改的vars.bat.sample值),可以直接按「enter」表示與左邊的預設值相同,
但有些[]是沒有資料的部份,請務必抄下來,
我覺得用戶端的資料若沒有合乎的話,可能會產生不出來!

34.同樣的方法,拉「build-key-server.bat」到命令提示字元,
或者直接輸入「build-key-server」也可以,接下來再輸入「 server」,按「Enter」
(請務必空一格,代表它帶有參數)

35.這邊一樣,如果在[]之間有資料,
(也就是之前你改的vars.bat.sample值),可以直接按「enter」表示與左邊的預設值相同,
但有些[]是沒有資料的部份,請務必抄下來,
資料一定要統一,例如section跟host name等等。
密碼請設長一點,本例是範例,所以才四個字元,請變更成難猜的密碼。
後面是告訴你是否要認証,當然是輸入「y」,後面也是輸入「y」。
到此步驟已經將伺服器所有認証的部份全建立好了。(見下下張圖)
同樣的方法,拉「build-key.bat」到命令提示字元,
或者直接輸入「build-key」也可以,接下來再輸入「 client1」,按「Enter」
(請務必空一格,代表它帶有參數,本參數可以隨意變換,例如:「build-key jack」,或「build-key john」)
(在這邊你有多少台電腦需連到伺服器就建立幾個,名字取自己容易記的,在這邊的主機名稱就不要設一樣的了)



注意一下,當製作client端連線資料時,主機名稱不可重覆,
否則會出現.old的錯誤訊息,只能再重作一次囉!

命令提示字元,大致呈現下面的字樣:C:\Program Files\OpenVPN\easy-rsa>"C:\Program Files\OpenVPN\easy-rsa\init-config
.bat"
C:\Program Files\OpenVPN\easy-rsa>copy vars.bat.sample vars.bat
複製了 1 個檔案。
C:\Program Files\OpenVPN\easy-rsa>copy openssl.cnf.sample openssl.cnf
複製了 1 個檔案。
C:\Program Files\OpenVPN\easy-rsa>"C:\Program Files\OpenVPN\easy-rsa\vars.bat"
C:\Program Files\OpenVPN\easy-rsa>"C:\Program Files\OpenVPN\easy-rsa\clean-all.b
at"
複製了 1 個檔案。
複製了 1 個檔案。
C:\Program Files\OpenVPN\easy-rsa>"C:\Program Files\OpenVPN\easy-rsa\build-dh.ba
t"
Loading 'screen' into random state - done
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.......................+.+......................................................
....+..................................+........................................
...............+................................................................
................................................................................
................................................................................
................................................................................
................................................................................
..............................+.................................................
.......................................................................+........
........................................................+.......................
................................................................................
.........................................................+......................
...........................................+....................................
..........................................++*++*
C:\Program Files\OpenVPN\easy-rsa>"C:\Program Files\OpenVPN\easy-rsa\build-ca.ba
t"
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
...........................................+++
.......................................................+++
writing new private key to 'keys\ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [TW]:
State or Province Name (full name) [TW]:
Locality Name (eg, city) [PingTung]:
Organization Name (eg, company) [home]:
Organizational Unit Name (eg, section) []:home
Common Name (eg, your name or your server's hostname) []:test
Email Address [sse-cmm@kerobbs.net]:
C:\Program Files\OpenVPN\easy-rsa>"C:\Program Files\OpenVPN\easy-rsa\build-key-s
erver.bat" server
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
................................................................................
........+++
................................+++
writing new private key to 'keys\server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [TW]:
State or Province Name (full name) [TW]:
Locality Name (eg, city) [PingTung]:
Organization Name (eg, company) [home]:
Organizational Unit Name (eg, section) []:home
Common Name (eg, your name or your server's hostname) []:test
Email Address [sse-cmm@kerobbs.net]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:test
An optional company name []:home
Using configuration from openssl.cnf
Loading 'screen' into random state - done
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'TW'
stateOrProvinceName :PRINTABLE:'TW'
localityName :PRINTABLE:'PingTung'
organizationName :PRINTABLE:'home'
organizationalUnitName:PRINTABLE:'home'
commonName :PRINTABLE:'test'
emailAddress :IA5STRING:'sse-cmm@kerobbs.net'
Certificate is to be certified until Nov 18 06:46:08 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
C:\Program Files\OpenVPN\easy-rsa>"C:\Program Files\OpenVPN\easy-rsa\build-key.b
at" client1
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
..................................................................+++
................................................................................
............+++
writing new private key to 'keys\client1.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [TW]:
State or Province Name (full name) [TW]:
Locality Name (eg, city) [PingTung]:
Organization Name (eg, company) [home]:
Organizational Unit Name (eg, section) []:home
Common Name (eg, your name or your server's hostname) []:client1
Email Address [sse-cmm@kerobbs.net]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:test
An optional company name []:home
Using configuration from openssl.cnf
Loading 'screen' into random state - done
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'TW'
stateOrProvinceName :PRINTABLE:'TW'
localityName :PRINTABLE:'PingTung'
organizationName :PRINTABLE:'home'
organizationalUnitName:PRINTABLE:'home'
commonName :PRINTABLE:'client1'
emailAddress :IA5STRING:'sse-cmm@kerobbs.net'
Certificate is to be certified until Nov 18 06:49:29 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
C:\Program Files\OpenVPN\easy-rsa> 36.將伺服器端所需要的檔案複製起來(ca.crt、ca.key、dh2048.pem、server.crt、server.key)。
詳細資料請參閱最下面的表格。

37.將剛複製的檔案copy到「config」這個目錄。

38.將目錄切換到「sample-config」,右鍵點「server.ovpn」,選「複製」。

39.目錄再切回「config」這個目錄,空白地方按右鍵,選「貼上」。

40.右鍵點「server.ovpn」,選「Open in Nopad++」。

41.若你有多組ip,可以在local中輸入你要指定的ip,記得前面的分號要拿掉。
port看你的環境是否有擋這個port,有的話,可以改為其它,例如80。
看是要走tcp還是udp,我知道有的防火牆狠一點都擋udp。
接下來看是要走tun模式還是tap(這邊我是用預設,其它都改為自己能用的)。

42.dh這邊,如果你改了預設數字1024,就要改成符合你之前設定的數字!

43.server這邊的參數是指定你的vpn的網段,我是使用192.168.2.0 255.255.255.0

44.開啟push "route 192.168.2.0 255.255.255.0"後可以使用戶端電腦知道要走vpn。

45.開啟client-to-client後可以使用戶端電腦連往別台用戶端電腦。

46.開啟duplicate-cn是怕用戶端電腦名稱可能會取一樣的情況發生。
(這個用途在於,若你想要分享給大家使用,
又不想每個人都建一個連線檔案的話,就必須設定,
設定之後每個人的ip連上來就不會被固定下來!)

47.到此就作好伺服器端電腦的設定了,記得要存檔(Ctrl+S),開始執行看看是否有誤。
右點在OpenGUI的小圖示,選「connect」

48.會另開一視窗,如果沒問題,該視窗會自行關閉。

49.若正確執行無誤的話,此時OpenGUI的小圖示會由紅燈轉綠燈,並且告知ip為何。

50.查看一下網路連線資料,果然多了一個網路卡,並且多了一個ip。

[ 本文最後由 sse-cmm 於 2008-8-16 20:20 編輯 ] |
-
3
評分次數
-
|
|
|
|
|
|
  
- 文章
- 787
- 推文
- 109
- 噓文
- 0
- 遊戲經驗
- 0
- 歡慶點數
- 10
  
|
奇怪ff無法顯示表格,只好花時間重畫...><"(請copy到記事本看,應該就正常了)
┌──────┬────────────┬─────────────┬────┐
│ 檔 名 │ 需 要 放 置 於 │ 目 的 │是否加密│
├──────┼────────────┼─────────────┼────┤
│ ca.crt │ 伺服器+所有用戶端 │ Root CA certificate │ NO │
├──────┼────────────┼─────────────┼────┤
│ ca.key │key signing machine only│ Root CA key │ YES │
├──────┼────────────┼─────────────┼────┤
│ dh{n}.pem │ 僅 伺 服 器 專 用 │Diffie Hellman parameters │ NO │
├──────┼────────────┼─────────────┼────┤
│ server.crt │ 僅 伺 服 器 專 用 │ Server Certificate │ NO │
├──────┼────────────┼─────────────┼────┤
│ server.key │ 僅 伺 服 器 專 用 │ Server Key │ YES │
├──────┼────────────┼─────────────┼────┤
│client1.crt │ 用 戶 端 1 專 用 │ Client1 Certificate │ NO │
├──────┼────────────┼─────────────┼────┤
│client1.key │ 用 戶 端 1 專 用 │ Client1 Key │ YES │
├──────┼────────────┼─────────────┼────┤
│ jack.crt │ 用 戶 端 2 專 用 │ Client2 Certificate │ NO │
├──────┼────────────┼─────────────┼────┤
│ jack.key │ 用 戶 端 2 專 用 │ Client2 Key │ YES │
├──────┼────────────┼─────────────┼────┤
│ john.crt │ 用 戶 端 3 專 用 │ Client3 Certificate │ NO │
├──────┼────────────┼─────────────┼────┤
│ john.key │ 用 戶 端 3 專 用 │ Client3 Key │ YES │
└──────┴────────────┴─────────────┴────┘
| 檔名 | 需要放置於 | 目的 | 是否加密 | | ca.crt | 伺服器+所有用戶端 | Root CA certificate | NO | | ca.key | key signing machine only | Root CA key | YES | | dh{n}.pem | 僅伺服器專用 | Diffie Hellman parameters | NO | | server.crt | 僅伺服器專用 | Server Certificate | NO | | server.key | 僅伺服器專用 | Server Key | YES | | client1.crt | 用戶端1專用 | Client1 Certificate | NO | | client1.key | 用戶端1專用 | Client1 Key | YES | | jack.crt | 用戶端2專用 | Client2 Certificate | NO | | jack.key | 用戶端2專用 | Client2 Key | YES | | john.crt | 用戶端3專用 | Client3 Certificate | NO | | john.key | 用戶端3專用 | Client3 Key | YES |
|
|
|
|
|
|
|
 
- 文章
- 25
- 推文
- 0
- 噓文
- 0
- 遊戲經驗
- 0
- 歡慶點數
- 0
|
請問一下, 我的機器是 P-3 670的CPU, 512MB SDRAM, 在 key size=1024 時, 有可能花費 24hrs 以上嗎... (目前還在動作中...)?
dos prompt 中只有顯示 : C:\Program Files\OpenVPN\easy-rsa 的字樣....
感謝哦 |
新聞快報:
|
|
|
|
|
|
  
- 文章
- 787
- 推文
- 109
- 噓文
- 0
- 遊戲經驗
- 0
- 歡慶點數
- 10
  
|
原帖由 eddie1 於 2008-8-15 18:12 發表 
請問一下, 我的機器是 P-3 670的CPU, 512MB SDRAM, 在 key size=1024 時, 有可能花費 24hrs 以上嗎... (目前還在動作中...)?
dos prompt 中只有顯示 : C:\Program Files\OpenVPN\easy-rsa 的字樣... ... 不太可能耶,都幾秒就ok了說。
我找個時間看看我的設定一下,再修改本回文。 |
|
|
|
|
|
|
 
- 文章
- 7
- 推文
- 0
- 噓文
- 0
- 遊戲經驗
- 0
- 歡慶點數
- 0
|
第21步"把它貼在空白的地方"請問到底是哪裡,因為圖我看不到,感激不盡.gif) |
|
|
|
|
|