雖然設定過程簡單,不過其中也得到了一些設定心得,搞清楚了一些觀念....
以下是今天實作的環境,用一張簡圖來表示:
最左邊是我手邊用的 NB,其為 vpn client;而 vpn server 則是家中的主機,此台主機做為家中的 NAT 使用。
而設定 vpn tunnel 的目的是在於可以直接在外透過 vpn tunnel 直接連線至家中內部區域網路(192.168.0.0/24)。
設定方式很簡單,以下說明一下設定的內容,首先在 vpn server 的部分
# 使用 TUN 裝置 (routing mode) # 官方建議盡量使用 tun,除非不是使用 IP 協定或是有其他更特殊的用途當然也可以不用設定檔,直接以下指令的方式啟動 vpn server,以下指令可以達到同樣效果:
dev tun
# 「ifconfig」所設定的 ip,基本上只是 tunnel 兩端用來連結之用,並沒有什麼特殊意義 # 前面的部分指定 tunnel 本地端的 IP 位址 # 後面的部分指定 tunnel 另一端的 IP 位址 # 10.8.0.1 為本地端 vpn server IP # 10.8.0.2 為遠端 vpn client IP
ifconfig 10.8.0.1 10.8.0.2
# 用來加密傳輸資料的 key file
secret static.key
# 針對傳輸的資料進行壓縮 # 必須安裝 lzo 套件才行
comp-lzo
# 以 daemon 模式開啟,並指定 user/group
user nobody
group nobody
daemon
# 若上面設定的 nobody 沒有存取 static key 以及 tunnel 裝置 的權限 # 就必須加上此兩行設定,以避免產生權限不足的問題
persist-key
persist-tun
# 其實也是等於把所有參數在指令中下好是一樣的
shell> openvpn --dev tun --ifconfig 10.8.0.1 10.8.0.2 --secret /etc/openvpn/static.key --comp-lzo yes --user nobody --group nobody --daemon openvpn_daemon --persist-key --persist-key
再來是 vpn client 的設定部分:
# vpn server 的 ip address 或是 domain name
remote home.twcic.net
# 使用 TUN 裝置 (routing mode)
dev tun
# 同樣的,這邊也是指定 tunnel 兩端的 ip # 前面為 local ip,後面為 remote ip
ifconfig 10.8.0.2 10.8.0.1
secret static.key
comp-lzo
# 為了讓 client 可以直接與 server 後面的私有區域網路連線
# 必須設定 routing 資訊
# 注意! 這個部分不是設定在 server 喔!
route 192.168.0.0 255.255.255.0
最後,為了讓 client 可以順利連線到主機後端的私有區域網路,vpn server 必須將 packet forward 的功能開啟,透過以下指令即可:
echo "1" > /proc/sys/net/ipv4/ip_forwardPS. 其實原本就已經開啟了,因為那台本來就是 NAT server .......
如此一來,最基本的 vpn tunnel 就設定完成了!
參考連結:
沒有留言:
張貼留言