[分享]用兩台ASUS RT-N16(Tomato)建置兩地同網段的VPN

  話說「絞兔有三窟」,因個人不屬"兔,所以沒那麼多巢穴,不過倒是常於兩巢三地間奔走,
巢穴一,是從小到大生長的地方,目前剩父母親與未婚的弟弟同住;結婚多年後在夫妻雙方的努力下,
終於小有能力築起自己愛的小窩,那便是我的巢穴二,那第三個地方是那裡呢? 不用想也知道,
那是我每天都要去"撥米"的地方.

個人熱愛電腦,上、下班都離不開它,與其說熱愛電腦,不如說是熱愛電腦網路來的貼切,
所以一直希望有一天能夠把三地的網路串接在一起,不過它們之間不是左鄰右舍,
想要串接它們,就只有靠 "VPN" 了.

VPN(Private Personal Network/虛擬私有網路)是什麼?有什麼功能,請自己去拜問谷歌大神。

在Mobile01做足了功課之後,終於狠下心來,於99.12.11購入了第1台ASUS RT-N16並刷了Tomato韌體,
最感興趣的部份,當然就是它的VPN的功能,於是便開始研究它該怎麼使用,在一番研究之後終於搞定了
PC→Roouter部份的VPN建置,它築起了「辦公室→愛的小窩」間的橋樑.


經過1個多月的狠操,ASUS RT-N16(Tomato)的表現令我滿意,可以說它是目前我買過最滿意的IP分享器了,於是趁著順發會員回娘家活動的最後一天,100.1.27在順發3C的實體門市購入我的第2台RT-N16,目的就是要用它來建置我的兩巢三地間的VPN.


接下來開始進入正題,說明「用兩台ASUS RT-N16(Tomato)建置兩地的VPN」該怎麼做?

靭體版本~~
土司超人(Toastman)衍生版本: v1.28.7428 MIPSR2-Toastman K26 USB VPN



[甲地-VPN Server]---父母親家
HINET FTTB 10M/2M
WAN IP:114.34.253.XXX
Router:RT-N16-1/IP:192.168.1.1
DHCP:192.168.1.100~192.168.1.149


VPN Server Configuration-Basic

Start with WAN:Yes
Interface Type:TAP
Protocol:UDP
通訊埠:1194
Firewall:Automatic
Authorization Mod:Static Key



VPN Server Configuration-Advanced

Poll Interval:0
Respond to DNS:No
Encryption cipher:Use Default
Compression:Adaptive
自訂設定值:空白



VPN Server Configuration-Keys---"Static Key" 要怎麼產生?請容小弟後面再做說明.

Static Key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
3fd7d5b423b55c955aacc742106346cf
2c28689f11cd8166a213123ef58128d2
139d2d7a3e201d125f7c58e8bc119579
..省略....省略..省略..省略..省略
ea7ee78fe76b2327900e36399857c6dd
e7604b6ad3f8963768a8288b96398be5
c7377da9fdb302dca21c3837b33e8a7c
-----END OpenVPN Static key V1-----



VPN Server Configuration-Status

General Statistics
Name Value
TUN/TAP read bytes 3763143
TUN/TAP write bytes 10323418
TCP/UDP read bytes 10061400
TCP/UDP write bytes 2863092
Auth read bytes 10323418
pre-compress bytes 3592857
post-compress bytes 2343153
pre-decompress bytes 8112254
post-decompress bytes 9666500


按下最下方的"儲存",然後按下"Start Now",啟動Server端待命.



[乙地-VPN Client]---自己愛的小窩
SEEDET FTTB 10M/2M
WAN IP:123.205.246.XXX
Router:RT-N16-2/IP:192.168.1.2
DHCP:192.168.1.150~192.168.1.199


VPN Client Configuration-Basic

Start with WAN:Yes
Interface Type:TAP
Protocol:UDP
Server Address/Port:114.34.253.XXX:1194(這裡填的是甲地的WAN端IP)
Firewall:Auotmatic
Authorization Mode:Static Key
Server is on the same subnet:Yes



VPN Client Configuration-Advanced

Poll Interval:0
Redirect Internet traffic:No(要讓乙地的流量繞道到甲方出去(翻牆)的話,請選"Yes")
Encryption cipher:Use Default
Compression:Adaptive
Connection retry:30
自訂設定值:空白



VPN Client Configuration-Keys---"Static Key" 要怎麼產生?請容小弟後面再做說明.

Static Key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
3fd7d5b423b55c955aacc742106346cf
2c28689f11cd8166a213123ef58128d2
139d2d7a3e201d125f7c58e8bc119579
..省略....省略..省略..省略..省略
ea7ee78fe76b2327900e36399857c6dd
e7604b6ad3f8963768a8288b96398be5
c7377da9fdb302dca21c3837b33e8a7c
-----END OpenVPN Static key V1-----



VPN Client Configuration-Status

General Statistics

Name Value
TUN/TAP read bytes 11185192
TUN/TAP write bytes 3490303
TCP/UDP read bytes 2684624
TCP/UDP write bytes 10883444
Auth read bytes 3519647
pre-compress bytes 10602055
post-compress bytes 8910732
pre-decompress bytes 2102897
post-decompress bytes 3262327


按下最下方的"儲存",然後按下"Start Now",讓Client連接Server.


到這裡為止,Router的設定已全部OK了,
但是 "Static Key" 要怎麼產生呢?
大致有【二個方法】,請往下看...


【方法一】:需下載OpenVPN軟體輔助,稍微麻煩些.


1先下載 openvpn-2.1_beta7-gui-1.0.3-install.exe 後,安裝到電腦裡.
※這個步驟只為了產生 Static Key,好了之後可以將之移除.


2.執行 "C:\Program Files\OpenVPN\bin\openvpn.exe" --pause-exit --verb 3 --genkey --secret "C:\Program Files\OpenVPN\config\key.txt"


3.打開檔案總管,切到資料夾 C:\Program Files\OpenVPN\config


4.打開 key.txt , 這個檔的內容就是我們要的"Static Key",「步驟2」每執行一次,內容就會改變一次.

※注意! Server端與Client端需相同,否則無法連線.



【方法二】:使用Telnet進RT-N16,不用下載軟體,較簡單---感謝 "Paneb" 兄的指教.

1.視窗/開始/程式集/附屬應用程式/命令提示字元


2.命令提示字元


3.telnet 192.168.1.1(RT-N16的IP)


4.輸入帳號密碼: root/admin(預設值)


5.openvpn --genkey --secret static.key


6.cat static.key

7.把內容複製到設定頁面.

#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
ddbeddc017fae359ec5508519f56cf9c
b487a9e769bf70f772fffe9427644167
ca6bbce037c149e6422baf39dd8ae64e
c38bbba4aeb531e650b3fbb7305a8f57
f01d7219ef8fd5017a65afcf29c8e517
f70f9a8d34dc5c3c6d64f892f75c0882
15e70b488a59461c27b64f2802f4f5a6
52b5d49c5c95beec7730735436eacb61
9ee9b673d62a1104504b89db793724e3
454e5b59be44b88da92c46b0d7af110e
7736e8fd361db781606d8ecb17b3f098
204303bb9233ac8ab4f42f099a62ca89
26f174b199cb944a0917d3a4c1db1672
e3bae8aae2c9d715754498b3f7df2875
e716856108b201730fe231d8c1c2c0d4
3a0ec14c7900e4048390237a96bd294e
-----END OpenVPN Static key V1-----


上面這段是完整的Static Key,如果你自己懶得做 "Key",直接「複製/貼上」拿去用吧!


8.exit(離開telnet模式)




寫到這裡,設定方面的工作已全部完畢!再來就是驗收成果了,
要怎麼知道兩地的VPN有沒有成功連接呢?
最好的方法當然就是呼叫(Ping)對方來試試...


由甲Ping


由乙Ping


甲說:看看妳的心裡有沒有我--->【連線設備列表(Device List)】


乙說:看看妳的心裡有沒有我--->【連線設備列表(Device List)】


看看「網路上的芳鄰」能通嗎?


用「網路上的芳鄰」傳個檔案試試..


===============================================================
100.09.29新增:以PC(WindowsXP)來當VPN Client

最近陸續有網友PM提問,要以PC(WindowsXP)來當Client端要怎麼操作?
請大家有問題不要採PM提問,儘量直接發表在版面上,這樣可以有讓更多人參與討論.


以下說明:
1.下載openvpn-2.1_beta7-gui-1.0.3-install.exe,並安裝.

2.將VPN Server Configuration/Keys頁面中,Static Key欄位裡的資料複製一份,存成key.tx檔,
並放到(C:\Program Files\OpenVPN\config)目錄下.



3.複製C:\Program Files\OpenVPN\sample-config下的client.ovpn到C:\Program Files\OpenVPN\config下.

4.執行「開始/所有程式/Open VPN/Add a new TAP-Win32 virtual ethernet adapter」
(在螢幕右下角會多出一個網連線的圖示)




5.按視窗右下角的 "雙電腦+地球" 圖示,選"Edit Config",以編輯client.ovpn檔(內容如下):

remote xxx.xxx.xxx.xxx(此處入Server端的IP)
port xxxx(此處入Server端的Port/default=1194)
dev tap or tun(註1)
secret key.txt
proto udp
comp-lzo
ifconfig 10.8.0.2 10.8.0.1
redirect-gateway(讓流量繞道(翻牆))
註1:
dev= "tap" or "tun" 要在VPN Server及VPN Client 同步設定,
當dev為"tap" 時,要把以下內容拿掉.
ifconfig 10.8.0.2 10.8.0.1
redirect-gateway


6.按視窗右下角的 "雙電腦+地球" 圖示,選Connect,即可自動完成連線

VPN Server Configuration---Status


注意事項:
1.用 Static key,一個VPN Sever只能允許一個VPN Client連接,詳情請參閱官方網站的說明.
當第二個Client端連線到Server時,會導致第一個Client端與Server的VPN連線斷開,
等第二個Client端與Server的VPN連線斷開時,第一個Client端與Server的VPN才能恢復連線.


2.要使用一個Server多個Clients,請將VPN Server的Authorization Mode改為TLS.

3.若想建立三地的VPN,但又嫌Authorization Mode使用TLS太麻煩,仍想使用Static Key,
則可採用開2個VPN Server的方式解決,但注意需將Port錯開,
例:VPN Server1 Port=1194、VPN Server2 Port=1196,
否則你將無法同時開啟2個VPN Server的服務.



===============================================================
100.09.29新增:憑證及金鑰檔案製作.

在Authorization Mode="TLS"時,
製作加密用的憑證及金鑰(共6組)

1.Certificate Authority(ca.crt)
2.Server Certificate(server.crt)
3.Server Key(server.key)
4.Diffie Hellman parameters(dh1024.pem)
5.Client Certificate(client.crt)
6.Client Key(client.key)


操作步驟:
1.下載openvpn-2.1_beta7-gui-1.0.3-install.exe,並安裝,安裝好之後各資料夾原始檔案如下圖:

C:\Program Files\OpenVPN


C:\Program Files\OpenVPN\bin


C:\Program Files\OpenVPN\config


C:\Program Files\OpenVPN\driver


C:\Program Files\OpenVPN\easy-rsa


C:\Program Files\OpenVPN\log


C:\Program Files\OpenVPN\sample-config


2.開啟檔案總管,切換到安裝位置中的C:\Program Files\OpenVPN\easy-rsa目錄下,
新增一資料夾,名稱為 "keys".


3.執行init-config.bat,產生vars.bat及openssl.cnf等兩個檔



4.以文字編輯器,編輯vars.bat,填入適當的值(如下)

set HOME=c:\Program Files\OpenVPN\easy-rsa
set KEY_CONFIG=openssl.cnf
set KEY_DIR=keys
set KEY_SIZE=1024
set KEY_COUNTRY=TW
set KEY_PROVINCE=TW
set KEY_CITY=Taipei
set KEY_ORG=home
set KEY_EMAIL=xxxxxxxx@yahoo.com.tw


5.開啟cmd視窗.切換工作目錄到"C:\Program Files\OpenVPN\easy-rsa"
執行vars.bat---設定金鑰及憑證的環境


6.執行clean-all.bat---產生index.txt及serial兩個檔


7.執行build-ca---產生ca.crt及ca.key兩個檔


8.執行build-key-server server---產生server.crt、server.csr及server.key三個檔


9.執行build-key client---產生client.crt、client.csr及client.key三個檔

需要多個Client端時就執行
build-key client1
build-key client2
build-key client3
  .
  .


10.執行build-dh---產生01.pem及dh1024.pem兩個檔



產出的憑證及金鑰檔案都放在C:\Program Files\OpenVPN\easy-rsa\keys資料夾內


Server端設定(使用RT-N16):
1.把ca.crt的內容貼到Certificate Authority欄.
2.把server.crt的內容貼到Server Certificate欄.
3.把server.key的內容貼到Server Key欄.
4.把dh1024.pem的內容貼到Diffie Hellman parameters欄.
5.按下最下方的"儲存",然後按下"Start Now",啟動Server端待命.


Client端設定1(使用RT-N16):
1.把ca.crt的內容貼到Certificate Authority欄.
2.把client.crt的內容貼到Client Certificate欄.
3.把client.key的內容貼到Client Key欄.
4.按下最下方的"儲存",然後按下"Start Now",讓Client連接Server.



Client端設定2(使用WindowsXP):
1.複製C:\Program Files\OpenVPN\easy-rsa\keys下的ca.crt、client.crt、client.key到C:\Program Files\OpenVPN\config下.

2.複製C:\Program Files\OpenVPN\sample-config下的client.ovpn到C:\Program Files\OpenVPN\config下.


3.執行「開始/所有程式/Open VPN/Add a new TAP-Win32 virtual ethernet adapter」
(在螢幕右下角會多出一個網連線的圖示)





4.按視窗右下角的 "雙電腦+地球" 圖示,選"Edit Config",以編輯client.ovpn檔(內容如下):

client
proto udp
dev tap or tun(註2)
remote xxx.xxx.xxx.xxx(此處入Server端的IP)
port xxxx(此處入Server端的Port/default=1194)
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
redirect-gateway(讓流量繞道(翻牆))
註2:
dev= "tap" or "tun" 要在VPN Server及VPN Client 同步設定,
當dev為"tap" 時,要把以下內容拿掉.
redirect-gateway


3.按視窗右下角的 "雙電腦+地球" 圖示,選Connect,即可自動完成連線


VPN Server Configuration---Status

2011-01-31 1:11 #1
辛苦了!

open VPN 的教學文,先收下了!

目前,還在用 PPTP!
推~open VPN 教學

請問一下發文大!!為什麼不使用DD-WRT 的VPN server 就好,設定上簡單多了

有什麼特殊的考量嗎??安全性??
See: OpenVPN中文概述

OpenVPN 彈性, 安全性都比較高....
一般的私人, 家用可以考慮 PPTP, 或 Bridged OpenVPN (TAP),
比較大的組織, 就要用 Routed Openvpn (TUN).

OpenVPN 相當好用的.
jenjer168 wrote:
請問一下發文大!!為什麼不使用DD-WRT 的VPN server 就好,設定上簡單多了..(恕刪)


因個人非常喜歡Tomato韌體的 MRTG 功能,所以就只能選它嘍!

MRTG

MRTG
單純用site to site,使用 ssh進 n16,在命令模式下
openvpn --genkey --secret static.key
就會產生static key,然後 cat static.key,把資料copy到設定頁就好啦。

可以省略你在windows上的一切步驟。

Paneb wrote:
單純用site to site,使用 ssh進 n16,在命令模式下...(恕刪)


感謝 Paneb 兄的指教,已經把方法加進文章內容了.
非常有用的教學~
長知識了,暫時沒用到,先收藏!

rontzong wrote:
話說「絞兔有三窟」,...(恕刪)

3Q...暫時沒用到,先收藏!慢慢研究...
因為即將要去對岸工作
先前使用過PPTP覺得穩定度不是很好
所以買了一台ASUS RT-N16刷tomato-K26USB-1.28.7428MIPSR2-Toastman-VPN 土司超人中文化韌體
搭配另外一台WHR-HP-G54刷tomato-ND-1.28.7616-Toastman-VPN

兩邊都設定好也可以使用(可看到RT-N16的管理界面,IP也是對的),
但是發生每幾分鐘就會跳回原本的網路,也就是VPN有時候連的上有時候連不上,

不知道有沒有人遇過類似問題?
或者可以借我參考如何使用OpenVPN GUI的*.ovpn設定檔連上,

目前怎麼試都失敗,過幾天就要去了
難不成只好換回PPTPQ_Q



限制級
您即將進入之討論頁 需滿18歲 方可瀏覽。
提醒:內容可能因過於寫實、驚悚而令人感到不舒服,是否繼續觀看?

根據「電腦網路內容分級處理辦法」修正條文第六條第三款規定,已於該限制級網頁,依台灣網站分級推廣基金會規定作標示。
評分
複製連結
請輸入您要前往的頁數(1 ~ 41)