2009年11月28日 星期六

Ubuntu : VPN Server

測試環境:Ubuntu-7.04-desktop@VMWare
所需套件:pptpd
設定檔案:/etc/pptpd.conf , /etc/ppp/pptpd-options , /etc/ppp/chap-secrets

安裝 pptpd
apt-get install pptpd

上一次玩 Ubuntu 已經是 2007 年 4 月的事了,現在都出到 9.x 版,因此在安裝 pptpd 時並不順利,由錯誤訊息來看,它根本找不檔案可下載。這可難為了我這個 N 久沒碰 Linux 的人了。上網找了一下資料,原來要先更新 apt 的資料庫,先執行:
apt-get update

等它更新完以後再執行安裝 pptpd 的指令。


修改 /etc/pptpd.conf

這個檔案要修改的是,告訴 pptpd :連線時 server 這邊要用什麼 IP, 而 client 端要配什麼 IP 給它,例如:
localip 192.168.0.2
remoteip 192.168.0.11-20

localip 指定了 server 在連線時用 192.168.0.2 的 IP , 而 remoteip 指定當 client 連線成功以後分配 192.168.0.11 到 192.168.0.20 之間任一個 IP 給它,也可以用逗號分隔,一個個列表。


修改 /etc/ppp/pptpd-options

這個檔案裡面,最重要的是兩項設定: name 和 ms-dns。

name 是定義在 /etc/ppp/chap-secrets 中第二個欄位(server name),因此兩邊要配合好,例如,下面是預設值:
name pptpd
依前述設定,在 /etc/ppp/chap-secrets 中就必須是下面的格式
xxxx pptpd xxxx 1.2.3.4
pptpd-options 中的另外一項要設的是 ms-dns ,它可以幫 client 端在連線成功以後指定 DNS,例如:
ms-dns 192.168.1.2
client 端連線成功以後會指定 192.168.1.2 為 DNS。對 Windows 的 clinet 來說,這項設定最多可以有兩行,因為 Windows 只能指定最多兩個 DNS。
此外,如果想幫 client 指定 WINS 則可以加入底下的設定:
ms-wins 192.168.1.5
上面的的設定可以幫 client 設定 WINS 到 192.168.1.5



修改 /etc/ppp/chap-secrets

這個檔案主要是儲存 client 端進行 VPN 連線時的帳號、密碼資訊。例如:
vip pptpd walawala *
上面的設定:
  • 帳號:vip
  • 主機:pptpd (參考 /etc/ppp/pptpd-options 中的 name)
  • 密碼:walawala
咦!最後一個欄位的星號( * )是什麼?它告訴 pptpd :不由這裡指定 client 連線時的 IP ,由 /etc/pptpd.conf 中的 remoteip 設定來分配。也就是採動態分配 IP (類似 DHCP),如果星號改成 IP ,那就是採固定 IP。


啟動 pptpd

如果前面的步驟都完成,就可以啟動 pptpd 囉!執行:
/etc/init.d/pptpd start
或是
/etc/init.d/pptpd restart

接著就可以利用 client 端來連線測試。如果連線有問題,可以查一下主機的記錄檔,看看有何線索:
  • /var/log/messages
  • /var/log/syslog
  • /var/log/daemon.log

2 則留言:

  1. 老師!剛剛拜了一下Google大神,原來VPN的功能是可以透過瀏覽器取得校內IP,老師測試這個是為了那粉機車的Windows7認證機制嗎?那學校如果要開放VPN伺服器是不是直接在對外的Mail主機安裝VPN?老師上次好像說學校的防火牆是不是也有VPN的功能......

    回覆刪除
  2. 這一篇是因為朋友有這個需求。昨天把 Windows7 裝起來,呵!裝在 VMWare 中,吃掉 6GB 的 disk, 嚇人!目前並不打算換 Windows7

    回覆刪除

 
© 2009. Design by Pocket