»
遊客:
加入
|
登入
(帳號有問題請連絡TWed2k@gmail.com)
TWed2k
»
Linux交流
» [分享]OpenVPN
可打印版本
|
推薦給朋友
|
訂閱主題
|
收藏主題
|
純文字版
論壇跳轉 ...
主題: [分享]OpenVPN
字型大小:
小
|
中
|
大
|
巨
←
→
MU
版主
驢的傳人-驢騎士
今日心情
. 積分:
766
. 精華:
12
. 文章:
5248
. 收花: 3153 支
. 送花: 1999 支
. 比例: 0.63
. 在線: 612 小時
. 瀏覽: 6230 頁
. 註冊:
7452
天
. 失蹤:
20
天
. 台中的阿土伯
#1 : 2009-3-1 04:14 PM
只看本作者
送花
(6)
送出中...
出自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 至虛擬機器的麻煩。
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接
快速回覆
送出中...
MU
版主
驢的傳人-驢騎士
今日心情
. 積分:
766
. 精華:
12
. 文章:
5248
. 收花: 3153 支
. 送花: 1999 支
. 比例: 0.63
. 在線: 612 小時
. 瀏覽: 6230 頁
. 註冊:
7452
天
. 失蹤:
20
天
. 台中的阿土伯
#2 : 2009-3-1 04:17 PM
只看本作者
送花
(0)
送出中...
現在要設定的是 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 的方式
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接
快速回覆
送出中...
MU
版主
驢的傳人-驢騎士
今日心情
. 積分:
766
. 精華:
12
. 文章:
5248
. 收花: 3153 支
. 送花: 1999 支
. 比例: 0.63
. 在線: 612 小時
. 瀏覽: 6230 頁
. 註冊:
7452
天
. 失蹤:
20
天
. 台中的阿土伯
#3 : 2009-3-1 04:18 PM
只看本作者
送花
(0)
送出中...
接下來要做是另一種較複雜且安全的方式,建立自己的 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
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接
快速回覆
送出中...
MU
版主
驢的傳人-驢騎士
今日心情
. 積分:
766
. 精華:
12
. 文章:
5248
. 收花: 3153 支
. 送花: 1999 支
. 比例: 0.63
. 在線: 612 小時
. 瀏覽: 6230 頁
. 註冊:
7452
天
. 失蹤:
20
天
. 台中的阿土伯
#4 : 2009-3-1 04:19 PM
只看本作者
送花
(0)
送出中...
若是在 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"
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接
快速回覆
送出中...
快速回覆
表情符號
更多 Smilies
字型大小 :
小
|
中
|
大
|
巨
[完成後可按 Ctrl+Enter 發佈]
溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別
關閉
表情符號
關閉
Discuz! 代碼
使用個人簽名
接收新回覆信件通知
發表時自動複製內容
[立即複製]
(IE only)
論壇跳轉 ...
最近訪問的論壇 ...
毒男腐女區
所在時區為 GMT+8, 現在時間是 2024-11-22 01:57 AM
清除 Cookies
-
連絡我們
-
TWed2k
© 2001-2046
-
純文字版
-
說明
Discuz!
0.1
| Processed in 0.025859 second(s), 8 queries , Qzip disabled