作者 主題: 安裝及架設VPN-PPTP  (閱讀 112379 次)

0 會員 與 1 訪客 正在閱讀本文。

zoob

  • 鑽研的研究生
  • *****
  • 文章數: 776
    • 檢視個人資料
    • http://www.myunix.idv.tw
安裝及架設VPN-PPTP
« 於: 2003-05-14 21:09 »
安裝及架設VPN-PPTP

作者: zoob (vincent@myunix.adsldns.org)

版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者資訊

前言

PoPToP是在Linux上建置VPN的其中一種方法,它可以讓Linux、Windows 95、98、NT、2000可利用現有套件簡單的撥號網路與VPN Server建立安全的VPN通道。目前可支援40及128位元的加密方式。PoPTop是適用於GPL授權方式的軟體。

PoPToP的首頁: http://www.moretonbay.com/con/pptp.html

安裝環境

Redhat 7.3(Kernel 2.4.20)
PPP-2.4.1
PPTP-1.1.4

一、設定及啟動PPP、PPTP

安裝PPP

(1)首先請先至 http://public.planetmirror.com/pub/mppe/ 下載 ppp-2.4.1-3mppe.src.rpm

(2)rpm -ivh ppp-2.4.1-3mppe.src.rpm

(3)cd /usr/src/redhat/SOURCE

(4)解壓縮ppp-mppe-2.4.1.tar.gz

(5)cd ppp-mppe-2.4.1

(6)./configure;make;make install

安裝pptpd

(1)首先請先至 http://sourceforge.net/project/showfiles.php?group_id=44827 下載 pptpd-1.1.4-b3.tar.gz

(2)解壓縮pptpd-1.1.4-b3.tar.gz

(3)./configure;make;make install


設定/etc/ppp/chap-secrets

增加帳號及密碼,範例如下:

代碼: [選擇]
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
vincent         *       1234                  *


設定/etc/pptpd.conf

範例如下:

代碼: [選擇]
debug
option /etc/ppp/options.pptp
localip 192.168.0.1
remoteip 192.168.1.1-100


註:localip和remoteip的最大連接數為100個,超過的話,將會忽略連接要求

設定/etc/ppp/options.pptp

此處的檔案名稱可隨意取名,但是須與/etc/pptpd.conf裡面的option選項的檔案相符合,範例如下:

lock
debug
auth
+chap
proxyarp


Enable IPforward

代碼: [選擇]
echo 1 > /proc/sys/net/ipv4/ip_forward

啟動pptpd

代碼: [選擇]
pptpd -d

注意/var/log/messages有無錯誤訊息

啟動成功後,會多出一interface,叫做ppp0

新增Windows 2000的「虛擬私人連線」

(1)新增連線
「桌面」->在「網路上芳鄰」按滑鼠右鍵->「內容」->「建立新連線」->「透過Internet連線到私人網路」->輸入主機名稱(192.168.0.1)->完成

(2)設定連線

請將連線內容裡「安全性」的「要求資料加密」取消選取->「確定」

(3)測試連線

Double Click該連線,輸入「使用者名稱」及「密碼」->連線

連線成功後,會多出一虛擬介面叫做「PPP adapter 虛擬私人連線:」
它的Ip address為192.168.1.xx

檢查是否能ping到192.168.0.1及192.168.1.0其它的ip

以上步驟只是讓你能建立PPTP連線,並未有加密的功能。如要增加加密功能,請參考以下步驟

二、PPP+MPPE

重新編譯Kernel

http://public.planetmirror.com/pub/mppe/ 下載linux-2.4.19-openssl-0.9.6b-mppe.patch.gz

(1)cd /usr/src/linux-2.4.20

(2)zcat /tmp/linux-2.4.19-openssl-0.9.6b-mppe.patch.gz | patch -p1

(3)開始compile kernel,這裡不加以敘述過程
請注意在compile kernel,在Network Device裡,一定要將下列項目編譯為Modules

    <M>   PPP support for async serial ports
    <M>   PPP support for sync tty ports
    <M>   PPP Deflate compression
    <M>   PPP BSD-Compress compression


(4)Compile Kernel完畢後,請在/etc/modules.conf加入以下敘述

    alias char-major-108 ppp_generic
    alias /dev/ppp ppp_generic
    alias tty-ldisc-3 ppp_async
    alias tty-ldisc-14 ppp_synctty
    alias ppp-compress-18 ppp_mppe
    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate


(5)重新開機

(6)重新編譯ppp

請至 http://public.planetmirror.com/pub/mppe/ 下載 ppp-2.4.1-MSCHAPv2-fix.patch.gz  至 /tmp目錄

1. 至 /usr/src/redhat/SOURCE/ppp-mppe-2.4.1目錄下執行以下指令

代碼: [選擇]
zcat /tmp/ppp-2.4.1-MSCHAPv2-fix.patch.gz | patch -p1
./configure
make
make install


(7)修改/etc/ppp/options.pptp

    lock
    debug
    proxyarp
    auth
    +chap
    +chapms
    +chapms-v2
    mppe-40
    mppe-128
    mppe-stateless
    ms-wins 192.168.1.2
    ms-dns 192.168.1.2


(8)重新啟動pptpd daemon

代碼: [選擇]
killall pptpd;pptpd -d

(9)建立VPN-PPTP連線

Windows 2000、XP

新增Windows 2000的「虛擬私人連線」

1.新增連線
「桌面」->在「網路上芳鄰」按滑鼠右鍵->「內容」->「建立新連線」->「透過Internet連線到私人網路」->輸入主機名稱(192.168.0.1)->完成

2.設定連線

請將勾選連線內容裡「安全性」的「要求資料加密」->「確定」

3.測試連線

Double Click該連線,輸入「使用者名稱」及「密碼」->連線

連線成功後,會多出一虛擬介面叫做「PPP adapter 虛擬私人連線:」
它的Ip address為192.168.1.xx

檢查是否能ping到192.168.0.1及192.168.1.0其它的ip

在右下角的網路連線圖示裡,點選滑鼠右鍵->選擇「狀態」->選擇「詳細資料」

此時的內容應該為

    伺服器類型                       PPP
    傳輸                                   TCP/IP
    驗證                                   MS CHAP V2
    加密                                   MPPE 128
    壓縮                                   無
    PPP多重連結架構            關閉
    伺服器IP位址                   192.168.0.1
    用戶端IP位址                   192.168.1.1


Windows 9x


依作業系統不同至以下網址下載新的Dial Up Networking Tool,目前最新版本為1.4

Windows 95

http://www.microsoft.com/windows95/downloads

Windows 98

http://www.microsoft.com/windows95/downloads/corporate.asp


也可下載128位元Dial Up Networking Tool程式

http://support.microsoft.com/support/ntserver/128eula.asp

設定撥號網路

1.開啟撥號網路->建立新的連線->裝置請選擇Microsoft VPN Adapter->輸入PPTP Server(192.168.0.1)->完成

2.使用滑鼠右鍵點選剛剛建立的VPN連線->選取內容->選擇伺服器類型->勾選密碼加密->取消勾選Netbeui和Ipx/Spx->確定

3.點選VPN連線->輸入使用者名稱及密碼

4.完成

參考文件網址

http://www.poptop.org/
http://pptpclient.sourceforge.net/
http://public.planetmirror.com/pub/mppe/


註1:PPTP是走Protocol 47的GRE protocol,請記得在防火牆開啟此規則

註2:如要看到網路上的芳鄰時,請在/etc/ppp/options.ppp指定ms-wins選項即可

註3:為何無法連線至192.168.1.1以外的電腦?

請啟動ip_forward及proxyarp.....

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #1 於: 2003-05-14 22:47 »
有機會用到,先推再說!!!!  ^^

pin99

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #2 於: 2003-06-11 02:28 »
感謝分享... :D  :D  :D

小弟有點不解...我可以連上pptpd了...
但是..連上以後可以做甚麼呢?
好像 dns 會找不到...  :(  很多問號 ...

liber

  • 活潑的大學生
  • ***
  • 文章數: 225
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #3 於: 2003-06-11 14:15 »
謝謝 Zoob 大大的著作

但是小弟我在測試的時候出現了點問題,不知道大家有遇到嗎?? :o

OS:RedHat 9.0
Kernel:2.4.20-8


照上述的步驟安裝之後.... pptpd -d 沒有任何的回應

/var/log/message 沒有任何關於 pptpd 的東西

不知道我是不是哪兒做錯了勒??

zoob

  • 鑽研的研究生
  • *****
  • 文章數: 776
    • 檢視個人資料
    • http://www.myunix.idv.tw
安裝及架設VPN-PPTP
« 回覆 #4 於: 2003-06-11 14:23 »
你們是做到我文章的哪個步驟? only PPP or MPPE + PPP

PPP + MPPE的話,是否有custom compile kernel + patch?

liber

  • 活潑的大學生
  • ***
  • 文章數: 225
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #5 於: 2003-06-11 15:29 »
哈哈!!

Zoob 大大果然回覆速度粉快,我設定 PPP+pptp 的時候,依樣畫葫蘆之後 pptpd -d 挖勒不理我

檢查好幾遍之後,決定改安裝 pptpd-1.1.4-b4.i386.rpm,之後 service pptpd restart 好了說

不過我的 ppp0 必須在 Client 撥號連上來之後才會出現

我想我找到問題了!!

如果用 tarball 安裝要用這樣的方式指定他啟動 pptpd -c /etc/pptpd.conf -d

文至於此應該是沒有問題了

但是zoob 請教個問題,您所說的 PPP or MPPE + PPP 這兩個不是一個是有加密的一個則是沒有加密,如果 ppp 選用了加密時連線就會失敗,是這樣解釋的嗎??

謝謝啦
 :lol:  :lol:

zoob

  • 鑽研的研究生
  • *****
  • 文章數: 776
    • 檢視個人資料
    • http://www.myunix.idv.tw
安裝及架設VPN-PPTP
« 回覆 #6 於: 2003-06-11 22:56 »
hi...liber

沒錯!!MPPE(Microsoft Point-To-Point Encryption Protocol)是讓PPP在傳輸過程中加密

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #7 於: 2003-06-30 17:28 »
引用
重新編譯Kernel
http://public.planetmirror.com/pub/mppe/ 下載linux-2.4.19-openssl-0.9.6b-mppe.patch.gz

(1)cd /usr/src/linux-2.4.20

(2)zcat /tmp/linux-2.4.19-openssl-0.9.6b-mppe.patch.gz | patch -p1

我覺得這一段會有問題吧 ~~,
http://www.cert.org/advisories/CA-2002-23.html

如果你是用 SuSe 的再注意一下這篇
http://www.securityfocus.com/advisories/5454

0.9.6b 的 SSL 是有問題的版本,不知道這樣用會不會有問題 ?!
我做的時候參考的是這篇
http://home.swbell.net/berzerke/howto.html

zoob

  • 鑽研的研究生
  • *****
  • 文章數: 776
    • 檢視個人資料
    • http://www.myunix.idv.tw
安裝及架設VPN-PPTP
« 回覆 #8 於: 2003-06-30 17:48 »
引述: "abelyang"
引用
重新編譯Kernel
http://public.planetmirror.com/pub/mppe/ 下載linux-2.4.19-openssl-0.9.6b-mppe.patch.gz

(1)cd /usr/src/linux-2.4.20

(2)zcat /tmp/linux-2.4.19-openssl-0.9.6b-mppe.patch.gz | patch -p1

我覺得這一段會有問題吧 ~~,
http://www.cert.org/advisories/CA-2002-23.html

0.9.6b 的 SSL 是有問題的版本,不知道這樣用會不會有問題 ?!



Hi...abelyang

linux-2.4.19-openssl-0.9.6b-mppe.patch.gz這只是mppe可透過openssl可去加密的kernel patch,只要你的openssl版本有在0.9.6e or  0.9.7-beta之後的版本即可。跟mppe kernel patch沒有什麼關係。

註:我測試過的版本為Kernel 2.4.20 + OpenSSL-0.9.6e + linux-2.4.19-openssl-0.9.6b-mppe.patch.gz,測試過均無問題

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #9 於: 2003-10-01 17:11 »
請問一下, 當我在試做時, 一切順利, 但在測試時, 有兩個問題.
1.從messages中看到, 當client連線進來時, 會有"Cannot determine ethernet address for proxy ARP"的訊息, 不知是否正常??
2.當client連線進去後, 可以ping到另一張網卡的IP, 但是和此張網卡同網段的IP卻都ping不到, 不知是什麼地方有所疏漏??
我目前只在試未加密的方式, 所採取的步驟和上述一樣, 尚望先進能提供解答, 或者是可供研究的地方, 謝謝!!!!

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #10 於: 2003-10-02 00:45 »
引述: "潛水夫"
請問一下, 當我在試做時, 一切順利, 但在測試時, 有兩個問題.
1.從messages中看到, 當client連線進來時, 會有"Cannot determine ethernet address for proxy ARP"的訊息, 不知是否正常??
2.當client連線進去後, 可以ping到另一張網卡的IP, 但是和此張網卡同網段的IP卻都ping不到, 不知是什麼地方有所疏漏??
我目前只在試未加密的方式, 所採取的步驟和上述一樣, 尚望先進能提供解答, 或者是可供研究的地方, 謝謝!!!!


proxy arp沒有自動啟用的關係,
曾在一台freebsd firewall上的pptp server發生同樣的現象,
除了pptp server上的ip外,
其他同網段的ip都找不到,
但手動telnet到pptp server再把proxy arp加入就可以,
但是我另外一台單機freebsd架的就很正常!

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #11 於: 2003-10-02 08:03 »
謝謝你的指導!!!!不好意思, 再請問一下, 那要如何把"proxy arp"加入呢??我的操作步驟都是按照上面做的, 連設定檔的內容都一樣.
還是有什麼額外的手續及設定, 能否麻煩再指點一下.
謝謝!!!!

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #12 於: 2003-10-02 21:50 »
參考arp的指令!

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #13 於: 2003-10-02 21:53 »
謝謝!!!!我試試看.

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #14 於: 2003-10-03 15:36 »
我試著以手動的方式加入, 但是仍然無法ping到其他的機器, 不知是何原因, 能否再指導一下.
謝謝!!!!

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #15 於: 2003-10-31 10:30 »
謝謝zoob大大的熱心協助, VPN Server已上線將近一個月了(真不好意思, 這個一架好後, 又被丟別的工作在忙, 所以現在才來答謝), 其中雖還有一些小問題, 但有錯誤嚐試的經驗後, 已解決部份, 待有時間, 再把安裝步驟及自己的錯誤觀念, 想法post上來.

yuhleon

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
Re: 安裝及架設VPN-PPTP
« 回覆 #16 於: 2004-08-22 00:16 »
引述: "zoob"
安裝及架設VPN-PPTP

作者: zoob (vincent@myunix.adsldns.org)

版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者資訊

(5)重新開機

(6)重新編譯ppp

請至 http://public.planetmirror.com/pub/mppe/ 下載 ppp-2.4.1-MSCHAPv2-fix.patch.gz  至 /tmp目錄

1. 至 /usr/src/redhat/SOURCE/ppp-mppe-2.4.1目錄下執行以下指令

代碼: [選擇]
zcat /tmp/ppp-2.4.1-MSCHAPv2-fix.patch.gz | patch -p1
./configure
make
make install




除了-2.4.1-MSCHAPv2-fix.patch這個,好像還要先執行ppp-2.4.1-openssl-0.9.6-mppe.patch,不然make的時候都會一直過不去...
error: CHAP_MICROSOFT_V2未定義

ychao

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #17 於: 2004-08-30 01:36 »
請問如果client端是Linux的話,應該要怎麼設定呢?

hankue

  • 可愛的小學生
  • *
  • 文章數: 7
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #18 於: 2004-09-01 11:54 »
引述: "潛水夫"
謝謝你的指導!!!!不好意思, 再請問一下, 那要如何把"proxy arp"加入呢??我的操作步驟都是按照上面做的, 連設定檔的內容都一樣.
還是有什麼額外的手續及設定, 能否麻煩再指點一下.
謝謝!!!!
我是在iptables加上/sbin/iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -j MASQUERAD
192.168.11是發給windows的網段

hankue

  • 可愛的小學生
  • *
  • 文章數: 7
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #19 於: 2004-09-03 17:47 »
不知有沒有人在fc2裝成功mppe

aix

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
    • http://www.ktu.tw
我想Linux Server 做Client,要如何設定
« 回覆 #20 於: 2004-11-09 11:48 »
大大:
   請問一下,我想Linux Server 做Client,要如何設定,或那裏有文章可以參考
    套件要去那D/L,,謝謝。

akong

  • 鑽研的研究生
  • *****
  • 文章數: 523
    • 檢視個人資料
    • http://www.aspa.idv.tw
連上VPN後無法上網
« 回覆 #21 於: 2004-12-02 18:27 »
不好意思哦
我想問一下
我已經可以連上VPN了
可是我連上VPN後
虛擬網卡的IP不是我VPN伺服器的DHCP IP
請問是什麼問題呢
我是用fc1+pptp
簡單說
我真實網卡是拿192.168.1.XX
但是當我連上VPN後
那個虛擬網卡的IP是192.168.1.XX
那就衝突了
而且他寫伺服器IP是192.168.0.XX
真的不知道有什麼情形可能會發生這種情形呢

krab

  • 憂鬱的高中生
  • ***
  • 文章數: 153
    • 檢視個人資料
Re: 連上VPN後無法上網
« 回覆 #22 於: 2004-12-07 14:48 »
引述: "akong"
不好意思哦
我想問一下
我已經可以連上VPN了
可是我連上VPN後
虛擬網卡的IP不是我VPN伺服器的DHCP IP
請問是什麼問題呢
我是用fc1+pptp
簡單說
我真實網卡是拿192.168.1.XX
但是當我連上VPN後
那個虛擬網卡的IP是192.168.1.XX
那就衝突了
而且他寫伺服器IP是192.168.0.XX
真的不知道有什麼情形可能會發生這種情形呢


請檢查一下您的設定檔
/etc/pptpd.conf
..
localip 192.168.0.1
remoteip 192.168.1.1


這個檔案指定了vpn server的IP以及vpn client的IP。在goolge裡討論PPTP的似乎很少在此著墨,為什麼這麼設?

當然也可以設成如下組合

localip 192.168.1.1
remoteip 192.168.1.100-200

或者

localip 172.16.1.1
remoteip 172.16.1.11-51

因為我現在正在學習shorewall的設定,shorewall裡有一篇專門討論pptpd,作者就將vpn server 的IP設成local 網卡的IP(192.168.1.254,亦即eth0及ppp0都是同一個IP),而vpn client的IP則設成192.168.1.51-55。作者說明故意設成這樣是要將vpn client的IP視為VPN server local的網段,以方便防火牆的設定。(註shorewall防火牆的設定是以zone的觀念來做的,如果VPN的整個網段都納入local的IP網段,似乎是滿方便的。不過我自己還設得一頭霧水?)

至於在vpn client 如win2k or winxp,vpn連線的gateway可以選擇使用遠端網路的閘道,這樣的話所有的路由都指向vpn server的IP去了,如果您遠端的ppp0(指pptp的interface)沒有做適當的設定(譬如將ppp0 masquerade到對外的interface如eth1的話),您的client就只能在vpn server及client的這條vpn路上跑來跑去,卻永遠也出不去。如果masquerade的話它就有出路了。意思是client所有東西都送到vpn server去,要連外的就從vpn server那邊出去。

如果在vpn client 如win2k or winxp,vpn連線的gateway取消使用遠端網路的閘道
的話,那麼只有vpn的東西會送到vpn server去,而其他的全部用client自家的default gateway。意思是vpn連線成功的時候,系統會建立一條靜態路由專門給vpn使用,其他的就不變了。

以上這些可以在您的client的win2k 或winxp的命令提示字元上下達
netstat -r
比較一下兩者路由表的不同,就很清楚了。

以上是我個人的認識,如果觀念不正確的話,請學長們不吝指正。

snowian

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #23 於: 2004-12-09 02:00 »
CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Dec  9 01:50:35 snowman modprobe: modprobe: Can't locate module ppp-compress-21
Dec  9 01:50:35 snowman modprobe: modprobe: Can't locate module ppp-compress-26
Dec  9 01:50:35 snowman modprobe: modprobe: Can't locate module ppp-compress-24

請問這是那裡出問題??
這是client連進來又斷了後看messege中出現的
我是用centos3.3+kernel2.4.28+pppd2.4.3+pptpd1.2.1
麻煩了

bahia

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #24 於: 2004-12-17 09:34 »
我照上面的方法順利的架了一台VPN Server
但是如果clinet端是使用ADSL 撥接的話
雖然可以連上VPN Server,但是卻無法使用VPN 內部的資源
如果換成固定IP 的ADSL :(  就都正常,請問是什麼原因呢

hotspring

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
vpn
« 回覆 #25 於: 2005-01-02 14:59 »
不好意思,貼到回覆區,想說樓主懂VPN的安裝所以我想來問問二個問題。
因為貼到NetWork區沒人回覆,大概是不懂吧!
希望懂的人回覆一下吧!感謝你們

我目前在做一個有關VPN的報告,班上同學問有沒有實例,我傻眼.......老師也很想要我去找看看有沒有公司的實例,由於我沒有在大公司上班,所以接觸不到VPN。希望有在公司上班的大大可否幫解一下疑問?

問1: 架設一個VPN,員工與公司之間 ( 員工只出差在外 ) 和 總公司與分公司之
間,各需要哪些設備 ( 像路由器....這類等 ) 和 哪些軟體 。

問2: 設備與軟體 或 設備與設備之間的密鑰之交換如何做?
( 這題是問加解密是哪一種?如何做? )

謝謝大大的幫助 ^^
_^ ......請多多指教

moveboy

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
Re: 安裝及架設VPN-PPTP
« 回覆 #26 於: 2005-01-19 13:05 »
引述: "zoob"
安裝及架設VPN-PPTP

作者: zoob (vincent@myunix.adsldns.org)

版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者資訊

前言

PoPToP是在Linux上建置VPN的其中一種方法,它可以讓Linux、Windows 95、98、NT、2000可利用現有套件簡單的撥號網路與VPN Server建立安全的VPN通道。目前可支援40及128位元的加密方式。PoPTop是適用於GPL授權方式的軟體。

PoPToP的首頁: http://www.moretonbay.com/con/pptp.html

安裝環境

Redhat 7.3(Kernel 2.4.20)
PPP-2.4.1
PPTP-1.1.4

一、設定及啟動PPP、PPTP

安裝PPP

(1)首先請先至 http://public.planetmirror.com/pub/mppe/ 下載 ppp-2.4.1-3mppe.src.rpm

(2)rpm -ivh ppp-2.4.1-3mppe.src.rpm

(3)cd /usr/src/redhat/SOURCE

(4)解壓縮ppp-mppe-2.4.1.tar.gz

(5)cd ppp-mppe-2.4.1

(6)./configure;make;make install

安裝pptpd

(1)首先請先至 http://sourceforge.net/project/showfiles.php?group_id=44827 下載 pptpd-1.1.4-b3.tar.gz

(2)解壓縮pptpd-1.1.4-b3.tar.gz

(3)./configure;make;make install


設定/etc/ppp/chap-secrets

增加帳號及密碼,範例如下:

代碼: [選擇]
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
vincent         *       1234                  *


設定/etc/pptpd.conf

範例如下:

代碼: [選擇]
debug
option /etc/ppp/options.pptp
localip 192.168.0.1
remoteip 192.168.1.1-100


註:localip和remoteip的最大連接數為100個,超過的話,將會忽略連接要求

設定/etc/ppp/options.pptp

此處的檔案名稱可隨意取名,但是須與/etc/pptpd.conf裡面的option選項的檔案相符合,範例如下:

lock
debug
auth
+chap
proxyarp


Enable IPforward

代碼: [選擇]
echo 1 > /proc/sys/net/ipv4/ip_forward

啟動pptpd

代碼: [選擇]
pptpd -d

注意/var/log/messages有無錯誤訊息

啟動成功後,會多出一interface,叫做ppp0

新增Windows 2000的「虛擬私人連線」

(1)新增連線
「桌面」->在「網路上芳鄰」按滑鼠右鍵->「內容」->「建立新連線」->「透過Internet連線到私人網路」->輸入主機名稱(192.168.0.1)->完成

(2)設定連線

請將連線內容裡「安全性」的「要求資料加密」取消選取->「確定」

(3)測試連線

Double Click該連線,輸入「使用者名稱」及「密碼」->連線

連線成功後,會多出一虛擬介面叫做「PPP adapter 虛擬私人連線:」
它的Ip address為192.168.1.xx

檢查是否能ping到192.168.0.1及192.168.1.0其它的ip

以上步驟只是讓你能建立PPTP連線,並未有加密的功能。如要增加加密功能,請參考以下步驟

二、PPP+MPPE

重新編譯Kernel

http://public.planetmirror.com/pub/mppe/ 下載linux-2.4.19-openssl-0.9.6b-mppe.patch.gz

(1)cd /usr/src/linux-2.4.20

(2)zcat /tmp/linux-2.4.19-openssl-0.9.6b-mppe.patch.gz | patch -p1

(3)開始compile kernel,這裡不加以敘述過程
請注意在compile kernel,在Network Device裡,一定要將下列項目編譯為Modules

    <M>   PPP support for async serial ports
    <M>   PPP support for sync tty ports
    <M>   PPP Deflate compression
    <M>   PPP BSD-Compress compression


(4)Compile Kernel完畢後,請在/etc/modules.conf加入以下敘述

    alias char-major-108 ppp_generic
    alias /dev/ppp ppp_generic
    alias tty-ldisc-3 ppp_async
    alias tty-ldisc-14 ppp_synctty
    alias ppp-compress-18 ppp_mppe
    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate


(5)重新開機

(6)重新編譯ppp

請至 http://public.planetmirror.com/pub/mppe/ 下載 ppp-2.4.1-MSCHAPv2-fix.patch.gz  至 /tmp目錄

1. 至 /usr/src/redhat/SOURCE/ppp-mppe-2.4.1目錄下執行以下指令

代碼: [選擇]
zcat /tmp/ppp-2.4.1-MSCHAPv2-fix.patch.gz | patch -p1
./configure
make
make install


(7)修改/etc/ppp/options.pptp

    lock
    debug
    proxyarp
    auth
    +chap
    +chapms
    +chapms-v2
    mppe-40
    mppe-128
    mppe-stateless
    ms-wins 192.168.1.2
    ms-dns 192.168.1.2


(8)重新啟動pptpd daemon

代碼: [選擇]
killall pptpd;pptpd -d

(9)建立VPN-PPTP連線

Windows 2000、XP

新增Windows 2000的「虛擬私人連線」

1.新增連線
「桌面」->在「網路上芳鄰」按滑鼠右鍵->「內容」->「建立新連線」->「透過Internet連線到私人網路」->輸入主機名稱(192.168.0.1)->完成

2.設定連線

請將勾選連線內容裡「安全性」的「要求資料加密」->「確定」

3.測試連線

Double Click該連線,輸入「使用者名稱」及「密碼」->連線

連線成功後,會多出一虛擬介面叫做「PPP adapter 虛擬私人連線:」
它的Ip address為192.168.1.xx

檢查是否能ping到192.168.0.1及192.168.1.0其它的ip

在右下角的網路連線圖示裡,點選滑鼠右鍵->選擇「狀態」->選擇「詳細資料」

此時的內容應該為

    伺服器類型                       PPP
    傳輸                                   TCP/IP
    驗證                                   MS CHAP V2
    加密                                   MPPE 128
    壓縮                                   無
    PPP多重連結架構            關閉
    伺服器IP位址                   192.168.0.1
    用戶端IP位址                   192.168.1.1


Windows 9x


依作業系統不同至以下網址下載新的Dial Up Networking Tool,目前最新版本為1.4

Windows 95

http://www.microsoft.com/windows95/downloads

Windows 98

http://www.microsoft.com/windows95/downloads/corporate.asp


也可下載128位元Dial Up Networking Tool程式

http://support.microsoft.com/support/ntserver/128eula.asp

設定撥號網路

1.開啟撥號網路->建立新的連線->裝置請選擇Microsoft VPN Adapter->輸入PPTP Server(192.168.0.1)->完成

2.使用滑鼠右鍵點選剛剛建立的VPN連線->選取內容->選擇伺服器類型->勾選密碼加密->取消勾選Netbeui和Ipx/Spx->確定

3.點選VPN連線->輸入使用者名稱及密碼

4.完成

參考文件網址

http://www.poptop.org/
http://pptpclient.sourceforge.net/
http://public.planetmirror.com/pub/mppe/


註1:PPTP是走Protocol 47的GRE protocol,請記得在防火牆開啟此規則

註2:如要看到網路上的芳鄰時,請在/etc/ppp/options.ppp指定ms-wins選項即可

註3:為何無法連線至192.168.1.1以外的電腦?

請啟動ip_forward及proxyarp.....



真不好意思請教一下感激不儘我作到最後怎麼都有錯誤訊息
/etc/hotplug/net.agent: NET unregister event not supported
都會出現這個錯誤訊息說
我是用winxp連就出現這個錯誤無法連線說
但是我如果用win2000去連是正常的不知道是啥麼問題
請大家教小弟一下感恩喔

akong

  • 鑽研的研究生
  • *****
  • 文章數: 523
    • 檢視個人資料
    • http://www.aspa.idv.tw
架好VPN出了問題
« 回覆 #27 於: 2005-02-24 17:14 »
我按照網路上的教學
已經安裝好VPN
但是有一個很奇怪的問題
就是當我連線到VPN的時候
連上了
但是在開網頁時
開到一半就掛了
應該是說所有的網路通訊都是跑到一半就掛了
請問還有什麼可能呢
我有設定MASQUERADE
請各位大大多多指教

hankue

  • 可愛的小學生
  • *
  • 文章數: 7
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #28 於: 2005-05-04 16:14 »
我用Kernel 2.6.10-1.771_FC2custom手動將linux-2.6.0-test9-openssl-0.9.6b-mppe.patch.gz內容加上去,配上手動將pppd-2.4.2-chapms-strip-domain.patch.gz 改到ppp-2.4.2-5.2.FC2.src.rpm內,再重新做出ppp-2.4.3-5.2.FC2.rpm.
/etc/pptpd.conf 的內容如果用option /etc/ppp/options.pptp 的話會出現pppd[5005]: In file /etc/ppp/options.pptp: unrecognizedb option '+chapms'
如果直接將options.pptp內容貼到pptpd.conf內,
將連線內容裡「安全性」的「要求資料加密」取消選取->「確定」 可以連上,如果還打勾的話會失敗,不知是否要改裝ppp-2.4.1-3mppe.i386.rpm才行

tomjo

  • 懷疑的國中生
  • **
  • 文章數: 78
    • 檢視個人資料
安裝及架設VPN-PPTP
« 回覆 #29 於: 2005-05-19 10:27 »
請問小弟是用 Redhat 9 + pptp 1.2.1-1 (未加密)
在執行完 pptpd -d 後,用 xp 來撥接測試,卻一直無法連上耶~
錯誤訊息如下:

May 19 10:13:24 rv pptpd[11004]: CTRL: Client 59.120.68.146 control connection started
May 19 10:13:24 rv pptpd[11004]: CTRL: Starting call (launching pppd, opening GRE)
May 19 10:13:24 rv pppd[11005]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
May 19 10:13:24 rv pppd[11005]: pptpd-logwtmp: $Version$
May 19 10:13:24 rv pppd[11005]: pppd 2.4.3 started by root, uid 0
May 19 10:13:24 rv /etc/hotplug/net.agent: assuming ppp0 is already up
May 19 10:13:24 rv pppd[11005]: Using interface ppp0
May 19 10:13:24 rv pppd[11005]: Connect: ppp0 <--> /dev/pts/4
May 19 10:13:24 rv pptpd[11004]: GRE: Bad checksum from pppd.
May 19 10:13:24 rv pptpd[11004]: GRE: read(fd=5,buffer=8056740,len=8260) from network failed: status = -1 error = Protocol not available
May 19 10:13:24 rv pptpd[11004]: CTRL: GRE read or PTY write failed (gre,pty)=(5,4)
May 19 10:13:24 rv pppd[11005]: Modem hangup
May 19 10:13:24 rv pppd[11005]: Connection terminated.
May 19 10:13:24 rv pppd[11005]: Exit.
May 19 10:13:24 rv pptpd[11004]: CTRL: Client 59.120.68.146 control connection finished
May 19 10:13:24 rv /etc/hotplug/net.agent: NET unregister event not supported

/etc/pptpd.conf 設定如下
option  /etc/ppp/options.pptp
debug
logwtmp
localip 192.168.200.1
remoteip 192.168.1.2-10

/etc/ppp/options.pptp
lock
debug
auth
+chap
proxyarp

不知是那裡有設定錯誤呢? 還是有其它的地方沒注意到的,請大大們幫小弟留意一下~謝謝。