Ubuntu 8.10 PPTP Server Installation
其實, 目的只是弄個VPN Server來做跳板, 卻沒想到花了我三天兩夜的腦力...
筆記供後人參考吧~
[背景]
SERVER: COMPAQ m700, (p3-700, 256M+64M, 30GB)
ISP: HINET 固定 IP
[安裝 Ubuntu 8.10]
請 google 一下吧~
簡單來說, 我是先裝好 Win2000後, 再用 Wubi 裝 Ubuntu 8.10; 有遇到三個問題:
1. 光碟機無限迴圈
現像: 安裝至100%時, 會出現 "找不到光碟機" 的錯誤, 按下"重試"後, 會再從 0%開始重新讀取的無限迴圈
原因: Ubuntu的光碟驅動對於有COMBO功能的光碟機有問題。亦即可讀DVD; 實際放CD片安裝。
解決: 把Wubi 和 ubuntu 8.10的iso檔放在一起; 用自帶的虛擬光碟安裝。
2. 第一次啟動出現 Error 15 訊息
現像: 安裝100%完成後, 第一次重新啟動, 會出現 Error 15的訊息。
原因: Ubuntu 對於硬碟控制需要設置, 我安裝時是選在 IDE 0 的 D:, 但安裝程式預設可能是IDE 1 = D:
解決: 有兩種方法, 一個是將硬碟控制解碼(google的到, 但我沒試) ; 另一個比較簡單, 安裝在 C: 下~
3. 系統設定 在 94% 時出現 GRUB 嚴重錯誤
現像: 第一次重啟後, 會進入 ubuntu 的桌面中進行系統設定, 在 94%時跳出小視窗 "GRUB嚴重錯誤"
原因: 疑似 ubuntu 需要與外網連結進行一些下載的作業, 此時並未插入網路線
解決: 移除 ubuntu, 重新安裝並插上網路線(不需撥號, 可直接對外的) 即可。
以上, 所以安裝 Ubuntu 8.10 後, 我就開始懷疑自己的智力了...(誤)
~
[ Ubuntu + ADS L固定IP, 撥接上網設定 ]
是的, 你沒看錯, 就是固定IP的撥接上網。
我在安裝 Ubuntu 時, 是躲在 ip 分享器背後下搞定, (我在想若不能直接連上網, 可能上述的錯誤3還是會發生?)
不過因為他未來要挑VPN Server的大樑, 所以就必需硬上固定IP啦!!
先在桌面的左上方點擊: 應用程式 -> 附屬應用程式 -> 終端機
這時就進入 Linux 的指令介面囉, 話說我也是完全不懂~ 所以就鬧了一個超大笑話~ 哈!
步驟: (以下都在終端機下輸入)
1. START>>設定pppoe連線資訊
$ sudo pppoeconf
會開啟一個視窗, 都按預設的 YES, 在帳號和密碼的地方請輸入你的 hinet 資訊
固定IP: 8XXXXXXX@
ip.hinet.net / PASSWORD
浮動IP: 8XXXXXXX@hinet.net / PASSWORD
2. NEXT >>編輯ip設定檔
$ sudo nano /etc/network/interfaces
此時會出現一個 nano 的文字編輯畫面, 請將下面的碼
auto eth0
iface eth0 inet dhcp
更改及加入
auto eth0
iface eth0 inet static
address 220.232.XXX.YYY
netmask 255.255.255.0
gateway 220.232.XXX.254
(220.232.XXX.YYY為Hinet提供的固定IP位址, 此處請按個別情況設定)
存檔 - 離開
3. NEXT >>重啟網路功能
$ sudo /etc/init.d/networking restart
此時, 理論上就能連上 internet 囉~
~
[PPTP server 設定]
緊接著就是重頭戲PPTP server的安裝了, PPTP是一種VPN的模組功能, 據說相容性較好,
所以我選擇用他跑 VPN 的功能。
請開啟終端機的視窗
1. START >> 安裝pptpd程序
$ sudo apt-get install pptpd
按完 Yes 後, 請等他自已跑完~
2. NEXT >> pptpd.conf 設定
$ sudo nano /etc/pptpd.conf
此時會出現一個 nano 的文字編輯畫面, 請找到下面的碼; 並修改他!
#localip XXX
#remoteip XXX
去掉 "#" 符號, 表示啟用; 並加上
localip 192.168.0.1 ← 本地主機的IP
remoteip 192.168.0.2-5 ← 遠端客戶的IP範圍, 2-5表示同時允許四台機器連線
存檔, 離開
3. NEXT >> pptpd-options 設定
$ sudo nano /etc/ppp/pptpd-options
此時出現 nano 的文字編輯畫面, 請找到下面的碼; 修改之
# Authentication
name XXXXX ← XXXXX 表示此PPTP Server的主機名稱, 請自行設定, 本例為 pptpd
name pptpd
# Network and Routing (設定DNS)
ms-dns 168.95.192.1
ms-dns 168.91.1.1
這兩個ip是 Hinet 的 DNS位址, 請接自己的ISP設定。
存檔, 離開
3. NEXT >> chap-secrets 建立VPN用戶名
$ sudo nano /etc/ppp/chap-secrets
請自己增加用戶帳號
格式: User_name Server_name Password IP_limit
例: max2 pptpd max2 140.114.87.5 或 max2 pptpd max2 * ( *表示不做限制)
存檔
4. NEXT >> 重啟 pptpd 服務
$ sudo /etc/init.d/pptpd restart
OK, 至此, 理論上就可以用 WinXP 撥接至 VPN Server 囉~
但我的不行... 所以我又裝了兩個network-manager, 我也搞不清楚是怎麼讓pptpd啟用成功的了?
$ sudo apt-get install network-manager-pptp
$ sudo apt-get install network-manager-vpnc
在我另一台 WINXP 成功連上 VPN 後, 網路還是被封閉的, 所以此時就繼續把 NAT 搞定
~
[NAT 設定]
1. Start >> 開啟 ipv4 forward
$ sudo nano /etc/sysctl.conf
尋找以下字串
#net.ipv4.ip_forward=1
去掉 "#" 符號, 表示啟用; 存檔
$ sudo sysctl -p
2. Next>> 安裝 iptables
$ sudo apt-get install iptables
安裝完成後, 要為iptables加入一個規則..
$ sudo iptables -t nat -A POSTROUTING -s 192.168.0.1/5 -o ppp0 -j SNAT --to-source 220.132.xxx.YYY
上述很重要的就是
ppp0, 而非 eth0, 我就在這裡卡超久的。
第一個IP範圍是可共享網路的IP位址; 第二個IP指的是外網的IP地址。
弄好後, 遠端主機就可以用 VPN 連線囉!
接著要把 iptables 的設定成每次開機皆讀取。
3. Next>>iptables存取
$ sudo iptables-save > /etc/iptables
上述指令表示將現有的iptable規則儲存到 /etc/iptables 這份文件中。
然後再一次修改 /etc/network/interfaces 文件~
$ sudo nano /etc/network/interfaces
在 gateway 220.232.XXX.254 的下一行, 加入:
pre-up iptables-restore < /etc/iptables
表示將/etc/ iptables 的配置在每次開機時, 重新讀取。
~
以上弄好後, 就算是告一段落了,
我的 Ubuntu 8.10 + PPTP Server 也是大工告成~ 喔耶!!