1. 程式人生 > >CentOS上使用PPTP搭建VPN

CentOS上使用PPTP搭建VPN

介紹下PPTP的相關知識:

PPTP(點到點隧道協議)是一種用於讓遠端使用者撥號連線到本地的ISP,通過因特網安全遠端訪問公司資源的新型技術。它能將PPP(點到點協議)幀封裝成IP資料包,以便能夠在基於IP的網際網路上進行傳輸。PPTP使用TCP(傳輸控制協議)連線的建立,維護,與終止隧道,並使用GRE(通用路由封裝)將PPP幀封裝成隧道資料。被封裝後的PPP幀的有效載荷可以被加密或者壓縮或者同時被加密與壓縮。

本次實驗使用的centos 6.5 64bit。

安裝之前檢查系統相容性。

檢查核心MPPE補丁,確定核心是否支援mppe:

modprobe ppp-compress-18 && echo ok

如果顯示ok,核心已經具備了mppe支援。

clip_image001

檢查PPP是否支援MPPE,若結果顯示0則表示不支援,而30或更大的數字就表示支援。

strings ‘/usr/sbin/pppd’|grep -i mppe |wc -l

clip_image002

安裝VPN需要安裝三個元件ppp、pptp、pptpd。ppp與pptp我們可以通過yum方式進行安裝,如下圖:

clip_image003

yum –y install ppp pptp

clip_image004

而pptpd無法通過yum方式進行安裝。我們可以到http://pkgs.org/search/pptpd?type=name

這個網站上進行下載相應的安裝包,如下圖:

clip_image005

clip_image006

注意如果你的系統版本是32bit的就下載i686版本。如果是系統是64bit的下載X86_64版本的。

如何檢視linux系統的版本,可以參考我另外一篇文章《爛泥:檢視linux系統的版本》。你也可以去度娘下。

pptpd下載完畢後,進行安裝,如下圖:

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/pptpd-1.4.0-3.el6.x86_64.rpm

clip_image007

clip_image008

rpm -ivh pptpd-1.4.0-3.el6.x86_64.rpm

以上把需要的三個元件都已經安裝完畢,我們接下來進行配置。

pptpd的配置檔案在/etc/pptpd.conf,pppp的配置檔案在/etc/ppp/ options.pptpd.

切換到/etc的根目錄下,編輯pptpd.conf檔案。如下圖:

clip_image009

在這個檔案中,我們需要把logwtmp註釋掉,如下圖:clip_image010

然後配置本機的內網IP地址,以及客戶端撥號進來後所要分配的IP地址。如下圖:

clip_image011

具體的相關說明如下:

option /etc/ppp/options.pptpd用來表明pptp加密選項檔案路徑;

stimeout 120 —-開始PPTP控制連線的超時時間,以秒計;

debug —-把所有debug資訊記入系統日誌/var/log/messages;

localip —-伺服器VPN虛擬介面將分配的IP地址,可設定為與VPN伺服器內網地址相同網段的IP,也可以設定為另一網段的IP;

remoteip —-客戶端VPN連線成功後將分配的IP地址段,同樣可設定為與VPN伺服器內網地址相同網段的IP地址段,也可以設定為另一網段的IP地址段;

下面開始配置ppp的配置檔案,編輯options.pptpd檔案。內容如下:

clip_image012

我們需要註釋掉require-mschap-v2和require-mppe-128兩行,同時還要啟用ms-dns。如下圖:

clip_image013

該DNS可以填寫公共的DNS伺服器,也可以是你自己配置的。注意name pptpd表示VPN伺服器名稱,該名稱我們在下面會使用到。

下面開始配置VPN訪問的使用者名稱、密碼以及分配的IP地址。/etc/ppp目錄下的chap-secrets檔案。如下圖:

clip_image014

該檔案主要包括四個部分。

Client是VPN登入的使用者名稱

Server 是VPN伺服器名稱,就是options.pptpd檔案中的name pptpd。

Secret是VPN使用者的密碼

IP address是分配給使用者的IP地址,其中*表示任意一個IP地址。

此實驗我們使用的使用者名稱為ilanni。密碼也是ilanni。

注意由於VPN的帳號和密碼是明文儲存,所以我們要修改該檔案的許可權為600。

clip_image015

以上是對相關配置的的修改,下面就是對iptables的修改。

開啟防火牆的IP轉發功能,把net.ipv4.ip_forward賦值為1,如下圖:

clip_image016

儲存並退出,使用sysctl –p命令使剛剛的配置生效。

clip_image017

配置iptables策略,開啟VPN的47和1723埠。如下圖:

clip_image018

-A INPUT -p gre -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 47 -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 1723 -j ACCEPT

如果你想限制固定的IP地址才能撥號VPN,可以進行如下設定:

-A INPUT -p gre -s 100.65.2114.134 -j ACCEPT

-A INPUT -p tcp –dport 47 -s 100.65.2114.134 -j ACCEPT

-A INPUT -p tcp –dport 1723 -s 100.65.2114.134 -j ACCEPT

其中100.65.2114.134是可以撥號VPN的IP地址。

現在開始啟動pptpd服務,如下圖:

clip_image019

/etc/init.d/pptpd start

現在使用客戶端進行連線,要注意VPN連線地址。如下圖:

clip_image020

在填寫VPN的連線地址時,我們要填寫的是VPN伺服器的外網IP地址。如下圖:

clip_image021

clip_image022

填寫VPN登入的使用者名稱和密碼。

clip_image023

提示加密型別不對,我們需要修改本地的加密型別。選擇VPN的名稱,安全—資料加密,選擇“可選加密”,如下圖:

clip_image024

然後重新連線。

clip_image025

可以看到已經連線進去了。

在VPN伺服器上檢視多了一張網絡卡,而且也可以看到VPN客戶端獲取到的IP地址。如下圖:

clip_image026

clip_image027

至此VPN的安裝與配置結束。