歡迎您光臨本站 註冊首頁

Fedora core 2下建立支持MPPE/MPPC的PPTP VPN伺服器

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

(聲明:本文章僅供個人學習使用,版權歸原文作者所有)

一、簡介
前段時間筆者寫了一篇《Fedora core 2下建立Poptop伺服器以及常見問題》的文章,收到許多朋友的歡迎,但是那篇文章只支持MPPE數據加密,不支持MPPC數據壓縮,未免有些遺憾,所以筆者再接再厲閱讀了一些文檔,終於使PPTP VPN實現了MPPC數據壓縮功能。首先我們先來介紹一下MPPE/MPPC的概念。

MPPE:Microsoft Point-to-Point Encryption,微軟的點對點加密協議,可以對在點對點鏈路上傳輸的數據包進行加密,詳細介紹請見RFC3078和RFC3079。

MPPC:Microsoft Point-to-Point Compression,微軟的點對點壓縮協議,可以對在點對點鏈路上傳輸的數據包進行壓縮,詳細介紹請見RFC21189。

那麼要想在Linux環境下使PPTP VPN支持這兩種協議,需要做兩件事情:第一、給Linux內核打補丁,然後重新編譯內核,讓內核支持MPPE/MPPC。第二、給ppp套件打補丁,讓ppp也支持MPPE/MPPC。好啦,知道了原理就好辦了,下面就讓我們一起來實現這些功能吧。

首先先來看看我們試驗的環境,一台安裝了Fedora core 2的伺服器充當了連接內網與外網的NAT主機以及VPN伺服器的作用。外網網卡IP:211.137.115.5,內網網卡IP:10.100.0.200。網路拓撲圖如下:

http://www.gbunix.com/showimg.php?iid=335
圖1:網路拓撲圖

二、下載
先來看看我們需要下載的套件吧。2.6.5-1.358
1、Linux Kernel 2.6.6
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.gz
2、linux-2.6.6-mppe-mppc-1.0.patch.gz
http://www.polbox.com/h/hs001/linux-2.6.6-mppe-mppc-1.0.patch.gz
3、ppp-2.4.3
ftp://ftp.samba.org/pub/ppp/ppp-2.4.3.tar.gz
4、ppp-2.4.3-mppe-mppc-1.1.patch.gz
http://www.polbox.com/h/hs001/ppp-2.4.3-mppe-mppc-1.1.patch.gz
5、pptp-1.1.4
http://internap.dl.sourceforge.n ... tpd-1.1.4-b4.tar.gz
把這些都下載到/usr/src目錄下面,然後準備進行安裝與配置。

三、安裝

1、重新編譯Linux內核,以支持MPPE/MPPC

  Fedora core 2默認的內核版本為kernel 2.6.5-1.358,是不支持MPPE/MPPC的,所以我們要重新下載內核文件並且重新編譯才行,這裡選用了Kernel 2.6.6。
//解壓縮內核文件
#tar zxvf linux-2.6.6.tar.gz
//給內核文件打補丁
#patch ?p0 ?i linux-2.6.6-mppe-mppc-1.0.patch.gz
#cd linux-2.6.6
//進入Linux內核文本配置界面
#make menuconfig
選擇進入Device Drivers -> Networking support ->
<> PPP BSD-Compress compression
<> Microsoft PPP compression/encryption (MPPC/MPPE)
找到上面兩項,分別按下空格鍵,最前面的<>就會變成,如下
PPP BSD-Compress compression
Microsoft PPP compression/encryption (MPPC/MPPE)
表示將這兩項以模塊形式編譯到內核裡面。然後保存退出。
//建立相依的屬性關係
#make dep
//將舊的資料刪除
#make clean
//開始編譯內核
#make bzImage
//開始編譯模塊
#make modules
//將資料安裝在/lib/modules/2.6.6裡面
#make modules_install
//將剛剛make bzImage建立完成的內核安裝到系統裡面
#make install

好啦,經過上面7個步驟就完成了內核編譯的工作,是不是很簡單呀,所以大家不要認為編譯Linux內核很複雜,其實是非常簡單的。
因為我們是以模塊方式來安裝補丁的,所以每次系統啟動時都需要載入模塊才行,因此我們要在/etc/rc.d/rc.local裡面寫入一行:
/sbin/modprobe ppp_mppe_mppc

2、安裝PPP套件

因為Fedora core 2默認情況下已經安裝了ppp-2.4.2-2,但是並不支持MPPE/MPPC,因此我們要先把它卸載掉,然後手工編譯安裝PPP。
#rpm -e --nodeps ppp
//解壓縮ppp-2.4.3
#tar zxvf ppp-2.4.3.tar.gz
//給ppp打補丁
#patch ?p0 ?i ppp-2.4.3-mppe-mppc-1.1.patch.gz
#cd ppp-2.4.3
//進行編譯安裝
#./configure
#make
#make install

3、安裝pptp套件

#tar zxvf pptpd-1.1.4-b4.tar.gz
#cd pptpd-1.1.4-b4
#./configure
#make
#make install
好啦,到這裡我們已經完成了全部的安裝工作,下面將要進行最後的配置工作了。

四、配置

這裡需要修改如下3個配置文件。
/etc/pptpd.conf // Poptop配置文件
/etc/ppp/options.pptpd // Poptop選項文件
/etc/ppp/chap-secrets //賬號、密碼存放文件

/etc/pptpd.conf
option /etc/ppp/options.pptpd
debug
Logwtmp
localip 10.100.0.201
remoteip 10.100.0.202-210

/etc/ppp/options.pptpd
name pptp
lock
mtu 1450
mru 1450
proxyarp
auth
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 3
lcp-echo-interval 5
deflate 0

# Handshake Auth Method
+chap
+mschap-v2

# Data Encryption Methods
mppe required

/etc/ppp/chap-secrets
#VPN客戶賬號和密碼。
# Secrets for authentication using CHAP
# client server secret IP addresses
「username1」 pptpd 「password1」 *
「username2」 pptpd 「password2」 10.100.0.203
注意:後面的IP地址欄可以知道次用戶登陸后講分配的IP地址,如果不具體指定,請用*號代替。

啟動NAT轉發
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG

五、啟動pptpd

# /usr/local/sbin/pptpd

[火星人 ] Fedora core 2下建立支持MPPE/MPPC的PPTP VPN伺服器已經有786次圍觀

http://coctec.com/docs/linux/show-post-202105.html