Linux下用pptp連接VPN服務(wù)器
目前Linux 發(fā)行版本主要分成兩個(gè)系列2.4內(nèi)核(red hat 9 、 red hat 8.0、fedora core 1 、RHEL 3)、2.6內(nèi)核(fedora core 2-6 、RHEL 4)。首先介紹前者。這里以red hat 9為準(zhǔn)。
1. 安裝基礎(chǔ)軟件包libglade和libglade-devel
libglade和libglade-devel是一個(gè)用于 GTK+/GNOME 程序。從 xxx.glade 文件自動(dòng)生成程序界面或界面中的一部分的庫(kù)。 Glade 設(shè)計(jì)初衷就是要把 GTK+/GNOME 程序的界面描述從源代碼里分離出來,即使用 xxx.glade 文件來描述界面,而不是把生成界面的 c 代碼寫再源代碼中,額外的好處就是使得后期修改程序界面非常容易,你只需要使用 Glade 來調(diào)整界面即可(實(shí)際是僅僅修改了 xxx.glade 文件,無需對(duì)源程序做改動(dòng))。另外,使用 .glade 文件來生程序界面并不會(huì)影響到你的程序的效率,因?yàn)槟阒恍枰淮窝b入所有界面,然后在需要時(shí)直接使用。如果在系統(tǒng)安裝時(shí)已經(jīng)把安裝上了,那么我們就可以直接安裝VPN客戶端軟件。否則,可以通過Rat Het Linux圖形界面下的“添加/刪除應(yīng)用程序”工具進(jìn)行安裝。具體方法是,選擇“主選單”→“系統(tǒng)設(shè)置”→“添加/刪除應(yīng)用程序”,在彈出的界面中選中“GNOME Software Development”,單擊“更新”即可。如圖1。
?/P>
圖1安裝libglade和libglade-devel |
如果您的Linux 發(fā)行版本沒有這兩個(gè)軟件也可以通過網(wǎng)絡(luò)安裝。下載網(wǎng)址:http://ftp.gnome.org/pub/GNOME/sources/libglade/2.0/libglade-2.0.1.tar.bz2
2. 安裝DKMS 模塊軟件包
DKMS(Dynamic Kernel Module Support)動(dòng)態(tài)內(nèi)核模塊支持。旨在創(chuàng)建一個(gè)內(nèi)核相關(guān)模塊源可駐留的框架,以便在升級(jí)內(nèi)核時(shí)可以很容易地重建模塊。這將允許 Linux 供應(yīng)商提供較低版本的驅(qū)動(dòng)程序,而無需等待新內(nèi)核版本發(fā)行,同時(shí)還可以省去嘗試重新編譯新內(nèi)核模塊的客戶預(yù)期要完成的工作。Oikawa等人在1996年提出一種與LKM類似的動(dòng)態(tài)核心模塊(DKMs)技術(shù)。與LKM一樣,DKMs以文件的形式存儲(chǔ)并能在系統(tǒng)運(yùn)行過程中動(dòng)態(tài)地加載和卸載。DKMs由一個(gè)用戶層的DKM服務(wù)器來管理,并非由內(nèi)核來管理。當(dāng)核心需要某模塊時(shí),由DKM服務(wù)器負(fù)責(zé)把相應(yīng)的DKM加載;當(dāng)核心的內(nèi)存資源緊缺時(shí),由DKM服務(wù)器負(fù)責(zé)卸載一個(gè)沒有被使用的DKM。缺點(diǎn)是所有的DKM是存儲(chǔ)在本地系統(tǒng)上的,占用了大量寶貴的存儲(chǔ)空間。DKMS工作原理見圖2 。
?/P>
圖2 DKMS工作原理 |
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/dkms-2.0.13-1.noarch.rpm
#rpm --install dkms-2.0.13-1.noarch.rpm
3. 安裝、查看ppp內(nèi)核模塊
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
#rpm --install kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
# dkms status
# kernel_ppp_mppe, 0.0.5, 2.4.20-8, athlon: installed (original_module exists)
4. 升級(jí)ppp軟件包
#wget ftp://rpmfind.net/linux/ASPLinux/contribs/9/i386/ppp-2.4.2-0.20030925asp.i386.rpm
#rpm --upgrade ppp-2.4.2-0.20030925asp.i386.rpm
5.安裝VPN客戶端軟件pptp-linux和圖形前端
#wget ftp://fr2.rpmfind.net/linux/sourceforge/p/pp/pptpclient/pptp-linux-1.5.0-1.i386.rpm
#rpm --install pptp-linux-1.4.0-1.i386.rpm
#wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/p/pp/pptpclient/pptp-php-gtk-20040102-rc1.i386.rpm
rpm --install pptp-php-gtk-20040102-rc1.i386.rpm
6.啟動(dòng)圖形前端pptpconfig[!--empirenews.page--]
在命令行下使用命令“pptpconfig”即可啟動(dòng)啟動(dòng)圖形前端。如圖3 。
Server(服務(wù)器)選項(xiàng)
?/P>
圖3 Server (服務(wù)器)選項(xiàng) |
說明:在服務(wù)器選項(xiàng)卡中,我們需要配置一些要素:
Name: 連接的名稱。你可以隨意地對(duì)它命名。
Server: 你將連接的VPN服務(wù)器,既可以是VPN服務(wù)器的IP也可以是名稱。
Domain: 如果有的話,是指VPN將連接的域。
Username: 你的VPN或企業(yè)內(nèi)部網(wǎng)登錄用戶名。
Password: VPN或企業(yè)內(nèi)部網(wǎng)的登錄口令。
Routing(路由)選項(xiàng)
通常我們需要發(fā)送All to Tunnel。然而,它可以,也會(huì)因VPN而異。與你的網(wǎng)絡(luò)管理員確定你需要選擇單選按鈕。如圖4 。
?/P>
圖4 Routing路由選項(xiàng) |
DNS選項(xiàng)
DNS選項(xiàng)卡通常十分簡(jiǎn)單;它是自動(dòng)的,或者我們需要輸入一些基本的DNS信息以及可能需要包含的選項(xiàng)。如圖5 。
?/P>
圖5 DNS選項(xiàng) |
Encryption(加密)選項(xiàng)如圖6 。
?/P>
圖6 Encryption(加密)選項(xiàng) |
說明:加密選項(xiàng)卡比較復(fù)雜。有許多選擇:
Require Microsoft Point-to-Point Encryption (MPPE):需要微軟點(diǎn)對(duì)點(diǎn)加密。
Refuse 40-bit Encryption :拒絕40位加密。
Refuse 128-bit Encryption:拒絕128位加密。
Refuse Stateless Encryption:拒絕無狀態(tài)加密。
這里我們選擇需要微軟點(diǎn)對(duì)點(diǎn)加密。
Miscellaneous(雜項(xiàng))選項(xiàng)
選項(xiàng)卡是我們的最后一個(gè)選項(xiàng)卡。如圖7。
?/P>
?/P>
圖7 Miscellaneous(雜項(xiàng))選項(xiàng) |
說明:
Start tunnel when this program starts :自動(dòng)啟動(dòng)VPN隧道。
Enable connection debugging facilities :顯示連接信息。
Reconnect if disconnected :自動(dòng)重復(fù)連接。
7. 啟動(dòng)VPN連接
所有選項(xiàng)完成后點(diǎn)擊“Add”按鈕,系統(tǒng)會(huì)自動(dòng)連接PPTP VPN服務(wù)器。此時(shí)屏幕會(huì)出現(xiàn)一個(gè)
連接狀態(tài)界面如圖8 。
?/P>
圖8連接狀態(tài)界面 |
從圖8 可以看到VPN服務(wù)器的IP地址是192.168.0.3 。MPPE加密功能已經(jīng)啟用。VPN接口是PPP1。
此時(shí)在PPTP VPN服務(wù)器使用ifconfig -a命令查看:
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:51:8A:2E
inet addr:192.168.1.18 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe51:8a2e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:98 errors:0 dropped:0 overruns:0 frame:0
TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11572 (11.3 KiB) TX bytes:8310 (8.1 KiB)
Interrupt:10 Base address:0x1400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3967 errors:0 dropped:0 overruns:0 frame:0
TX packets:3967 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4158080 (3.9 MiB) TX bytes:4158080 (3.9 MiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.0.3 P-t-P:192.168.1.128 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:30 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:3132 (3.0 KiB) TX bytes:92 (92.0 b)
ppp1 Link encap:Point-to-Point Protocol
inet addr:192.168.1.129 P-t-P:192.168.0.3 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:70 (70.0 b) TX bytes:76 (76.0 b)
sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
其中ppp0是Windows 客戶端連接PPTP VPN的接口。Ppp1是Linux客戶端連接PPTP VPN的接口。[!--empirenews.page--]
下面我們使用連接狀態(tài)界面的Ping按鈕測(cè)試連接狀況,如圖9 。
?/P>
圖9 使用Ping按鈕測(cè)試連接狀況 |
可以看到Ping 操作成功。
8.斷開VPN連接方法
斷開VPN連接方法點(diǎn)擊“stop”按鈕即可,此時(shí)pptpconfig狀態(tài)欄顏色從綠色(運(yùn)行狀態(tài))
轉(zhuǎn)變?yōu)樗{(lán)色(停止?fàn)顟B(tài)),如圖10 。
?/P>
圖10 斷開VPN連接方法 |
圖形前端pptpconfig程序:pptp-php-gtk已經(jīng)停止更新(2003年12月18日);所以使用2.6內(nèi)核版本的用戶可以使用其更新軟件。下面筆者會(huì)簡(jiǎn)單介紹一下安裝方法。以Fedora Core 2 為例子:
1. 下載安裝相關(guān)庫(kù)文件
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/libglade-0.17-19.fc6.i386.rpm
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/libglade-devel-0.17-19.fc6.i386.rpm
#rpm –ivh libglade-devel-0.17-19.fc6.i386.rpm
#rpm –ivh libglade-0.17-19.fc6.i386.rpm
2. 安裝DKMS 模塊軟件包
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/dkms-2.0.13-1.noarch.rpm
#rpm --install dkms-2.0.13-1.noarch.rpm
3. 下載安裝、查看kernel_ppp_mppe 內(nèi)核模塊
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
#rpm --install kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm
#modprobe ppp-compress-18 && echo success
success #應(yīng)當(dāng)顯示success信息#
4. 下載安裝ppp軟件包
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/ppp-2.4.4-1.2.fc2.i386.rpm
#rpm --upgrade ppp-2.4.4-1.2.fc2.i386.rpm
5.下載安裝VPN客戶端軟件pptp-linux
#wget ftp://fr2.rpmfind.net/linux/sourceforge/p/pp/pptpclient/pptp-linux-1.5.0-1.i386.rpm
#rpm --install pptp-linux-1.4.0-1.i386.rpm
6. 下載安裝輔助軟件包
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/php4-pcntl-4.4.1-2.i386.rpm
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/php4-pcntl-gtk-1.0.2-2.i386.rpm
#rpm -ivh php4-pcntl-4.4.1-2.i386.rpm
#rpm -ivh php4-pcntl-gtk-1.0.2-2.i386.rpm
7.下載、安裝前端GUI軟件pptpconfig
#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/pptpconfig-20060821-1.noarch.rpm
#rpm -ivh pptpconfig-20060821-1.noarch.rpm
8. 啟動(dòng)圖形前端pptpconfig
在命令行下使用命令“pptpconfig”即可啟動(dòng)啟動(dòng)圖形前端。主要界面和2.4 內(nèi)核版本介紹的基本相同。只是在Encryption(加密)選項(xiàng)如圖1 。
?/P>
圖11在Encryption(加密)選項(xiàng) |
多出一個(gè)選項(xiàng)即:Refuse to Authenticate with EAP 〔refuse-eap〕拒絕EAP認(rèn)證。
linux下要用vpn會(huì)用到ppp,但似乎很難與windows作為服務(wù)器的vpn服務(wù)器溝通:
先看看如何顯示調(diào)試信息,這對(duì)找出問題的出處很有幫助。
在 /etc/ppp/options.pptp里加入
debug dump logfd 2 nodetach
如果有 "Unsupported protocol rcvd [proto=xxxx]" 這樣的錯(cuò)誤,那么需要在options.pptp里加入這一句
refuse-eap
這個(gè)選項(xiàng)即對(duì)應(yīng)以上配置文件的選項(xiàng)。
其他方面圖形前端2.6內(nèi)核版本的pptpconfig和2.4 內(nèi)核版本的設(shè)置是相同的這里就不贅述了。