查看完整版本: Linux下用pptp連接VPN服務器
頁: [1]

lixuhua 發表於 2015-10-9 09:13 PM

Linux下用pptp連接VPN服務器

本帖最後由 lixuhua 於 2015-10-21 09:13 PM 編輯

目前Linux 發行版本主要分成兩個系列2.4內核(red hat 9 、 red hat 8.0、fedora core 1 、RHEL 3)、2.6內核(fedora core 2-6 、RHEL 4)。首先介紹前者。這里以red hat 9為准。
1. 安裝基礎軟件包libglade和libglade-devel    libglade和libglade-devel是一個用于 GTK+/GNOME 程序。從 xxx.glade 文件自動生成程序界面或界面中的一部分的庫。 Glade 設計初衷就是要把 GTK+/GNOME 程序的界面描述從源代碼里分離出來,即使用 xxx.glade 文件來描述界面,而不是把生成界面的 c 代碼寫再源代碼中,額外的好處就是使得后期修改程序界面非常容易,你只需要使用 Glade 來調整界面即可(實際是僅僅修改了 xxx.glade 文件,無需對源程序做改動)。另外,使用 .glade 文件來生程序界面並不會影響到你的程序的效率,因為你只需要一次裝入所有界面,然后在需要時直接使用。如果在系統安裝時已經把安裝上了,那麼我們就可以直接安裝VPN客戶端軟件。否則,可以通過Rat Het Linux圖形界面下的“添加/刪除應用程序”工具進行安裝。具体方法是,選擇“主選單”→“系統設置”→“添加/刪除應用程序”,在彈出的界面中選中“GNOME  Software Development”,單擊“更新”即可。如圖1。


http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100312436.jpg
圖1安裝libglade和libglade-devel

    如果您的Linux 發行版本沒有這兩個軟件也可以通過網絡安裝。下載網址:http://ftp.gnome.org/pub/GNOME/sources/libglade/2.0/libglade-2.0.1.tar.bz2

2. 安裝DKMS 模塊軟件包

    DKMS(Dynamic Kernel Module Support)動態內核模塊支持。旨在創建一個內核相關模塊源可駐留的框架,以便在升級內核時可以很容易地重建模塊。這將允許 Linux 供應商提供較低版本的驅動程序,而無需等待新內核版本發行,同時還可以省去嘗試重新編譯新內核模塊的客戶預期要完成的工作。Oikawa等人在1996年提出一種與LKM類似的動態核心模塊(DKMs)技术。與LKM一樣,DKMs以文件的形式存儲並能在系統運行過程中動態地加載和卸載。DKMs由一個用戶層的DKM服務器來管理,並非由內核來管理。當核心需要某模塊時,由DKM服務器負責把相應的DKM加載;當核心的內存資源緊缺時,由DKM服務器負責卸載一個沒有被使用的DKM。缺點是所有的DKM是存儲在本地系統上的,占用了大量寶貴的存儲空間。DKMS工作原理見圖2 。


http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100314278.jpg
圖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內核模塊

#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. 升級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.啟動圖形前端pptpconfig

在命令行下使用命令“pptpconfig”即可啟動啟動圖形前端。如圖3 。
 Server(服務器)選項



http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100314860.jpg
圖3 Server (服務器)選項



說明:在服務器選項卡中,我們需要配置一些要素:
Name: 連接的名稱。你可以隨意地對它命名。
Server: 你將連接的VPN服務器,既可以是VPN服務器的IP也可以是名稱。
Domain: 如果有的話,是指VPN將連接的域。
Username: 你的VPN或企業內部網登錄用戶名。
Password: VPN或企業內部網的登錄口令。
 Routing(路由)選項
    通常我們需要發送All to Tunnel。然而,它可以,也會因VPN而異。與你的網絡管理員確定你需要選擇單選按鈕。如圖4 。



http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100315102.jpg
圖4 Routing路由選項


 DNS選項
 DNS選項卡通常十分簡單;它是自動的,或者我們需要輸入一些基本的DNS信息以及可能需要包含的選項。如圖5 。


http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100316907.jpg
圖5 DNS選項


 Encryption(加密)選項如圖6 。

http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100317421.jpg
圖6 Encryption(加密)選項

說明:加密選項卡比較復雜。有許多選擇:
Require Microsoft Point-to-Point Encryption (MPPE):需要微軟點對點加密。
Refuse 40-bit Encryption :拒絕40位加密。
Refuse 128-bit Encryption:拒絕128位加密。
Refuse Stateless Encryption:拒絕無狀態加密。
這里我們選擇需要微軟點對點加密。

 Miscellaneous(雜項)選項
選項卡是我們的最后一個選項卡。如圖7。

http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100318335.jpg
圖7 Miscellaneous(雜項)選項

說明:
Start tunnel when this program starts :自動啟動VPN隧道。
Enable connection debugging facilities :顯示連接信息。
Reconnect if disconnected :自動重復連接。

7. 啟動VPN連接    所有選項完成后點擊“Add”按鈕,系統會自動連接PPTP VPN服務器。此時屏幕會出現一個
連接狀態界面如圖8 。

http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100318509.jpg
圖8連接狀態界面

    從圖8 可以看到VPN服務器的IP地址是192.168.0.3 。MPPE加密功能已經啟用。VPN接口是PPP1。

此時在PPTP VPN服務器使用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的接口。

    下面我們使用連接狀態界面的Ping按鈕測試連接狀況,如圖9 。



http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100319171.jpg
圖9 使用Ping按鈕測試連接狀況

    可以看到Ping 操作成功。

8.斷開VPN連接方法    斷開VPN連接方法點擊“stop”按鈕即可,此時pptpconfig狀態欄顏色從綠色(運行狀態)
轉變為藍色(停止狀態),如圖10 。


http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100319611.jpg
圖10 斷開VPN連接方法


圖形前端pptpconfig程序:pptp-php-gtk已經停止更新(2003年12月18日);所以使用2.6內核版本的用戶可以使用其更新軟件。下面筆者會簡單介紹一下安裝方法。以Fedora Core 2 為例子:    1. 下載安裝相關庫文件

    #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 內核模塊

    #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 #應當顯示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.rpm8. 啟動圖形前端pptpconfig

    在命令行下使用命令“pptpconfig”即可啟動啟動圖形前端。主要界面和2.4 內核版本介紹的基本相同。只是在Encryption(加密)選項如圖1 。


http://linux.chinaitlab.com/UploadFiles_7565/200702/20070228100320346.JPG
圖11在Encryption(加密)選項



    多出一個選項即:Refuse to Authenticate with EAP 〔refuse-eap〕拒絕EAP認證。
    linux下要用vpn會用到ppp,但似乎很難與windows作為服務器的vpn服務器溝通:
    先看看如何顯示調試信息,這對找出問題的出處很有幫助。
    在 /etc/ppp/options.pptp里加入
    debug dump logfd 2 nodetach
    如果有 "Unsupported protocol rcvd " 這樣的錯誤,那麼需要在options.pptp里加入這一句
    refuse-eap
    這個選項即對應以上配置文件的選項。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

anda5051 發表於 2016-6-29 07:26 PM

最近我大約也是用這方法架設成功
但想弄一個管理VPN使用者的介面
不知道有沒有現成的程式可用
每次修改 /etc/ppp/chap-secrets
感覺上祕密都被看光了
頁: [1]