歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux服務

Linux服務器上的PPTP VPN搭建全攻略

   PPTP的基本概念

  首先,先來理解下什麼是 PPTP。PPTP將PPP(Point-to-Point Protocol)幀封裝進IP數據報中,通過IP網絡如Internet或其他企業專用Intranet等發送。PPTP通過PPTP控制連接來創建、維護、終止一條隧道,並使用通用路由封裝GRE(Generic Routing Encapsulation)對PPP幀進行封裝。封裝前,PPP幀的有效載荷即有效傳輸數據一般會經過加密、壓縮或是兩者的混合處理。PPTP協議假定在PPTP客戶機和PPTP服務器之間有連通且可用的IP網絡。因此如果PPTP客戶機本身已經是某IP網絡的組成部分,那麼即可通過該IP網絡與PPTP服務器取得連接.MPPE只提供連接加密,而不提供端-端加密。端-端加密屬於應用層的加密技術,如果應用中要求實現端-端加密,則可在PPTP隧道建立之後,使用IPSec對兩端的IP數據流進行加密處理。基於Internet的PPTP服務器即使用PPTP協議的VPN服務器,它的一個接口在Internet上,另一個接口在Intranet上。

  PPTP連接過程與隧道維護

  PPTP控制連接建立在PPTP客戶機IP地址和PPTP服務器IP地址之間,PPTP客戶機使用動態分配的TCP端口號,而PPTP服務器則使用保留TCP端口號1723。PPTP控制連接攜帶PPTP呼叫控制和管理信息,用於維護PPTP隧道,其中包括周期性地發送回送請求和回送應答消息,以期檢測出客戶機與服務器之間可能出現的連接中斷。PPTP控制連接數據包包括一個IP報頭,一個TCP報頭和PPTP控制信息,數據包格式如下。所示的PPTP控制連接數據包還包括數據鏈路層報頭和報尾。

2015811181315696.gif (240×63)

  PPTP典型連接過程:

  TCP連接由PPTP客戶機上的一個動態分配的TCP端口到PPTP服務器上的TCP端口1723建立。

2015811181357761.gif (584×379)

  搭建PPTP VPN

  國內訪問google一直都是時好時壞的,以前一直使用host文件,或者dns 最近總是不好使,朋友有台美國的vps,這裡就想到了搭建一個vpn,下面貼出我的安裝步驟

  # 檢查部分

  代碼如下:

  modprobe ppp-compress-18 && echo 'ok! MPPE was found !'

  ok! MPPE was found ! //說明系統存在MPPE

  # 若不存在,請按以下方式安裝注意版本

  代碼如下:

  wget http://cdnetworks-kr-1.dl.sourceforge.net/project/poptop/mppe%20module%20builder/dkms-2.0.10-1/dkms-2.0.10-1.noarch.rpm

  wget http://surfnet.dl.sourceforge.net/project/poptop/mppe%20module%20builder/kernel_ppp_mppe-1.0.2%20dkms-2.0.6/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

  rpm -e kernel_ppp_mppe

  yum install kernel-devel

  rpm -ivh dkms-2.0.10-1.noarch.rpm

  rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

  # 安裝pptpd

  代碼如下:

  # yum -y install ppp

  # 下載地址

  代碼如下:

  # http://surfnet.dl.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/

  wget http://surfnet.dl.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz

  tar zxf pptpd-1.3.4.tar.gz

  cd pptpd-1.3.4

  ./configure \

  --prefix=/soft/pptpd-1.3.4 \

  --enable-bcrelay \

  --with-libwrap

  make

  make install

  mkdir -p /soft/pptpd-1.3.4/etc

  # cp samples/options.pptpd /soft/pptpd-1.3.4/etc

  # 配置文件內容如下

  代碼如下:

  name pptpd

  debug

  #logwtmp

  logfile /var/log/pptpd.log

  lock

  refuse-pap

  refuse-chap

  refuse-mschap

  require-mschap-v2

  require-mppe-128

  proxyarp

  nobsdcomp

  novj

  novjccomp

  nologfd

  ms-dns 8.8.8.8

  ms-dns 8.8.4.4

  # pptp主配置文件

  代碼如下:

  cp samples/pptpd.conf /soft/pptpd-1.3.4/etc

  option /soft/pptpd-1.3.4/etc/options.pptpd

  debug

  stimeout 30

  localip 192.168.142.136 (本地IP)

  remoteip 192.168.142.200-205

  # 拷貝服務文件

  復制代碼

  代碼如下:

  cp pptpd.init /etc/init.d/pptpd

  # 添加vpn用戶

  復制代碼

  代碼如下:

  vi /etc/ppp/chap-secrets

  # client server secret IP addresses // 添加用戶的格式

  chmod +x /etc/init.d/pptpd

  sed -i s#/usr/sbin/pptpd#/soft/pptpd-1.3.4/sbin/pptpd\ --conf\ /soft/pptpd-1.3.4/etc/pptpd.conf\ --option\ /soft/pptpd-1.3.4/etc/options.pptpd#g

  /etc/init.d/pptpd

  /sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.142.0/24 -j MASQUERADE

  /sbin/iptables -P FORWARD ACCEPT

  /sbin/iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT

Copyright © Linux教程網 All Rights Reserved