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支援。
檢查PPP是否支援MPPE,若結果顯示0則表示不支援,而30或更大的數字就表示支援。
strings ‘/usr/sbin/pppd’|grep -i mppe |wc -l
安裝VPN需要安裝三個元件ppp、pptp、pptpd。ppp與pptp我們可以通過yum方式進行安裝,如下圖:
yum –y install ppp pptp
而pptpd無法通過yum方式進行安裝。我們可以到http://pkgs.org/search/pptpd?type=name
這個網站上進行下載相應的安裝包,如下圖:
注意如果你的系統版本是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
rpm -ivh pptpd-1.4.0-3.el6.x86_64.rpm
以上把需要的三個元件都已經安裝完畢,我們接下來進行配置。
pptpd的配置檔案在/etc/pptpd.conf,pppp的配置檔案在/etc/ppp/ options.pptpd.
切換到/etc的根目錄下,編輯pptpd.conf檔案。如下圖:
然後配置本機的內網IP地址,以及客戶端撥號進來後所要分配的IP地址。如下圖:
具體的相關說明如下:
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檔案。內容如下:
我們需要註釋掉require-mschap-v2和require-mppe-128兩行,同時還要啟用ms-dns。如下圖:
該DNS可以填寫公共的DNS伺服器,也可以是你自己配置的。注意name pptpd表示VPN伺服器名稱,該名稱我們在下面會使用到。
下面開始配置VPN訪問的使用者名稱、密碼以及分配的IP地址。/etc/ppp目錄下的chap-secrets檔案。如下圖:
該檔案主要包括四個部分。
Client是VPN登入的使用者名稱
Server 是VPN伺服器名稱,就是options.pptpd檔案中的name pptpd。
Secret是VPN使用者的密碼
IP address是分配給使用者的IP地址,其中*表示任意一個IP地址。
此實驗我們使用的使用者名稱為ilanni。密碼也是ilanni。
注意由於VPN的帳號和密碼是明文儲存,所以我們要修改該檔案的許可權為600。
以上是對相關配置的的修改,下面就是對iptables的修改。
開啟防火牆的IP轉發功能,把net.ipv4.ip_forward賦值為1,如下圖:
儲存並退出,使用sysctl –p命令使剛剛的配置生效。
配置iptables策略,開啟VPN的47和1723埠。如下圖:
-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服務,如下圖:
/etc/init.d/pptpd start
現在使用客戶端進行連線,要注意VPN連線地址。如下圖:
在填寫VPN的連線地址時,我們要填寫的是VPN伺服器的外網IP地址。如下圖:
填寫VPN登入的使用者名稱和密碼。
提示加密型別不對,我們需要修改本地的加密型別。選擇VPN的名稱,安全—資料加密,選擇“可選加密”,如下圖:
然後重新連線。
可以看到已經連線進去了。
在VPN伺服器上檢視多了一張網絡卡,而且也可以看到VPN客戶端獲取到的IP地址。如下圖:
至此VPN的安裝與配置結束。