RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [分享]OpenVPN   字型大小:||| 
MU
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
驢的傳人-驢騎士

今日心情

 . 積分: 765
 . 精華: 12
 . 文章: 5247
 . 收花: 3150 支
 . 送花: 1996 支
 . 比例: 0.63
 . 在線: 609 小時
 . 瀏覽: 6090 頁
 . 註冊: 7214
 . 失蹤: 50
 . 台中的阿土伯
#1 : 2009-3-1 04:14 PM     只看本作者 引言回覆

出自DebianWiki

OpenVPN 2.0

架設 vpn server 有幾個功用:

client 端並沒有真實 ip 時,某些服務無法使用,例如公司的 intranet,只允許公司內部的 ip 才能開啟,從家裡就無法連上,或是 ip 並沒有對應的 hostname,smtp 不給寄信,這時透過 vpn server 的 ip 及 hostname 即可使用。
想隱藏 client 端的 ip,不給別人知道。
或是某些裝備並不支援 ssh,僅提供 telnet,但又怕連線被中途 sniffer,就可使用 vpn。
另外還可做到存取 vpn server 內部的虛擬 ip 的機器,免除要在 vpn server 上將 port forward 到虛擬 ip 機器,或是要先 ssh 至 vpn server 那台,再 ssh 至虛擬機器的麻煩。



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
MU
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
驢的傳人-驢騎士

今日心情

 . 積分: 765
 . 精華: 12
 . 文章: 5247
 . 收花: 3150 支
 . 送花: 1996 支
 . 比例: 0.63
 . 在線: 609 小時
 . 瀏覽: 6090 頁
 . 註冊: 7214
 . 失蹤: 50
 . 台中的阿土伯
#2 : 2009-3-1 04:17 PM     只看本作者 引言回覆

現在要設定的是 debian(sarge) 中的 openvpn 2.0 的版本。

root@debian:~# apt-get install openvpn
首先先從簡單的 static key 方式講起,等到這部份完成,再進一步到更複雜的。
優點:簡單易設定 No X509 PKI (Public Key Infrastructure) to maintain
缺點:規模受到限制,僅能一台 server,一台 client
Lack of perfect forward secrecy -- key compromise results in total disclosure of previous sessions 金鑰必須以明碼的方式存於各個 vpn 端金鑰必須使用預先存在的加密通道來傳送

產生金鑰:

root@debian:~# openvpn --genkey --secret static.key
將此金鑰利用原本已存在的加密通道(如 ssh)傳送到另一台電腦,二端都用同一個金鑰

server 端設定:

dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key
client 端設定: (請將 your_vpn_server_ip_address 改成您的 ip)

remote your_vpn_server_ip_address
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
防火牆的設定: server 端必須開啟 UDP 1194 port,並且二端都要允許TUN interface(tun0) 封包通過

接著將二端的 openvpn daemon 啟動:

root@debian:~# /etc/init.d/openvpn start
這時應該可以從 client(10.8.0.2) 去 ping 到 server(10.8.0.1) 了,或是從 server (10.8.0.1) ping 到 client (10.8.0.2)。

另外可將 vpn 連線壓縮,在二邊設定檔中加入:

comp-lzo
要保持 NAT 的 firewall 或 router 連線,可加上:

keepalive 10 60
ping-timer-rem
persist-tun
persist-key
將 openvpn 改成以 daemon 方式運作,並以 nobody 及 nogroup 來啟動:

daemon
user nobody
group nogroup
要允許 client 端存取整個 server 的 subnet:

route 192.168.4.0 255.255.255.0
以上就完成 static key 的方式



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
MU
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
驢的傳人-驢騎士

今日心情

 . 積分: 765
 . 精華: 12
 . 文章: 5247
 . 收花: 3150 支
 . 送花: 1996 支
 . 比例: 0.63
 . 在線: 609 小時
 . 瀏覽: 6090 頁
 . 註冊: 7214
 . 失蹤: 50
 . 台中的阿土伯
#3 : 2009-3-1 04:18 PM     只看本作者 引言回覆

接下來要做是另一種較複雜且安全的方式,建立自己的 Certificate Authority (CA) 並產生 certificates 及金鑰供 openvpn server 及多個 client 使用。

第一步是建立 PKI (public key infrastructure). 切換到 /usr/share/doc/openvpn/examples/easy-rsa 目錄,執行:設定環境變數

root@debian:~# . ./vars
以下東西產生出來會放到 ./keys/ 目錄下,可修改 vars 來改變位置

root@debian:~# ./clean-all
root@debian:~# ./build-ca
會產生

ca.crt
ca.key
建立給 server 用的 certificate & key

root@debian:~# ./build-key-server server
當中問到 "Common Name" 設成 "server" 會產生

01.pem
server.crt
server.csr
server.key
產生給多個 client 用的 certificates & keys 當中問到 "Common Name" 設成 "client1",以此類推

root@debian:~# ./build-key client1
產生

client1.crt
client1.csr
client1.key
root@debian:~# ./build-key client2
root@debian:~# ./build-key client3
Generate Diffie Hellman parameters

root@debian:~# ./build-dh
Hardening OpenVPN Security

root@debian:~# openvpn --genkey --secret ta.key
接著將 key 利用加密通道拷貝到 server 及 client 機器上(和設定檔放在同一目錄)


在 server 端機器上修改 /etc/openvpn/server.conf,可從 /usr/share/doc/openvpn/examples/sample-config-files/ 拿來當範本

# openvpn server 的 ip
local your_vpn_server_ip_address

# vpn server 的 port
port 1194

# protocol
proto udp

# device
dev tun

tls-server
ca ca.crt
cert server.crt
key server.key

tls-auth ta.key 0

dh dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# 自動將 client 的 default gateway 設成經由 VPN server 出去
push "redirect-gateway"

# 保持連線,每 10 秒 ping 一次,若是 120 秒未收到封包,即認定 client 斷線
keepalive 10 120

comp-lzo

# 最多同時只能有十個 client
max-clients 10

# vpn daemon 執行時的身份(在非 Windows 平台中使用)
user nobody
group nogroup

persist-key
persist-tun
daemon

# 以下二行是將 vpn server 內部的虛擬 ip 機器開放給 client 使用
push "route 192.168.10.0 255.255.255.0"
push "route 192.168.20.0 255.255.255.0"
在 client1 端機器上修改 client.conf

# 本台是當 client
client

dev tun
proto udp

# vpn server 的 ip 及 port
remote your_vpn_server_ip_address 1194

# 執行時的身份
user nobody
group nogroup

persist-key
persist-tun

tls-client
ca ca.crt
cert client1.crt
key client1.key

tls-auth ta.key 1

ns-cert-type server
comp-lzo
daemon
client2 及 client3 設定檔和 client1 差不多,只有 cert 及 key 不同:

cert client2.crt
key client2.key
以此列推

啟動 openvpn server 及 client,這時 client 端的 default gateway 會被修改過,經由 vpn server 那台出去,因此從外面查詢到的 ip 為 vpn server 的 ip。

由於啟動 openvpn 後,身份切換到 nobody,導致要結束 openvpn 時有錯誤訊息,無法執行 route 指令,將 default gateway 恢復到未啟動 vpn 前的狀況,因此在此寫個 shell script 來結束 openvpn

stop-openvpn

/etc/init.d/openvpn stop
route del your_vpn_server_ip_address
route add default gw your_original_default_gateway
用 root 執行即可結束 openvpn daemon



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
MU
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
驢的傳人-驢騎士

今日心情

 . 積分: 765
 . 精華: 12
 . 文章: 5247
 . 收花: 3150 支
 . 送花: 1996 支
 . 比例: 0.63
 . 在線: 609 小時
 . 瀏覽: 6090 頁
 . 註冊: 7214
 . 失蹤: 50
 . 台中的阿土伯
#4 : 2009-3-1 04:19 PM     只看本作者 引言回覆

若是在 Windows 下要安裝 openvpn 請到 http://openvpn.net/download.html 不管是 linux 或 Windows 版,server 或 client 都是同一套程式,僅是設定檔不同,抓 openvpn-2.0_rc20-install.exe

安裝後會多出一個 TAP-Win32 Adapter 的區域連線將 c:/Program Files/OpenVPN/sample-config 中的 server.ovpn(當 server) 或 client.ovpn(當 client) 複製一份到 c:/Program Files/OpenVPN/config 中,修改成符合我們需求即可,接著將從 server 產生的 key(ca.crt client1.crt client1.key)也放到 c:/Program Files/OpenVPN/config 中。

底下以 client 當範例:

client

dev tun
proto udp

# vpn server 的 ip 及 port
remote your_vpn_server_ip_address 1194

nobind
persist-key
persist-tun

tls-client
ca ca.crt
cert client1.crt
key client1.key

tls-auth ta.key 1

ns-cert-type server
comp-lzo
接著到 "服務" 中去啟動 openvpn service 即可,TAP-Win32 Adapter 會自動從 openvpn server 取得 ip 和 gateway。

取自"http://wiki.debian.org.tw/index.php/OpenVPN"



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-3-28 05:01 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.020213 second(s), 6 queries , Qzip disabled