CentOS上搭建基於PPTP協議的VPN服務的流程

來源:互聯網
上載者:User

   關於PPTP

  點對點通道通訊協定(英語:Point to Point Tunneling Protocol,縮寫為PPTP)是實現虛擬私人網路(VPN)的方式之一。PPTP使用傳輸控制通訊協定(TCP)建立控制通道來發送控制命令,以及利用通用路由封裝(GRE)通道來封裝點對點通訊協定 (PPP)(PPP)資料包以發送資料。這個協議最早由微軟等廠商主導開發。

  PPTP的協議規範本身並未描述加密或身分識別驗證的部分,它依靠點對點通訊協定 (PPP)(PPP)來實現這些安全性功能。因為PPTP協議內建在微軟視窗系統家族的各個產品中,在微軟點對點通訊協定 (PPP)(PPP)協議堆棧中,提供了各種標準的身分識別驗證與加密機制來支援PPTP。 在微軟視窗系統中,它可以搭配PAP、CHAP、MS-CHAP v1/v2或EAP-TLS來進行身分識別驗證。通常也可以搭配微軟點對點加密(MPPE)或IPSec的加密機制來提高安全性。

  在Windows或Mac OS平台之外,Linux與FreeBSD等平台也提供開放原始碼的版本。

  PPTP以通用路由封裝(GRE)協議向對方作一般的點對點傳輸。通過TCP1723連接埠來發起和管理GRE狀態。因為PPTP需要2個網路狀態,因此會對穿越防火牆造成困難。很多防火牆不能完整地傳遞串連,導致無法串連。 在Windows或Mac OS平台,通常PPTP可搭配MSCHAP-v2或EAP-TLS進行身分識別驗證 ,也可配合微軟點對點加密(MPPE)進行串連時的加密。

  與PPTP相似的另一種常見的VPN協議是第二層通道通訊協定(L2TP)。

  搭建步驟

  1、檢查伺服器是否有必要的支援。如果檢查結果沒有這些支援的話,是不能安裝pptp的。執行指令:

  代碼如下:

  #modprobe ppp-compress-18 && echo ok

  這條執行執行後,顯示“ok”則表明通過。不過接下來還需要做另一個檢查,輸入指令:

  代碼如下:

  #cat /dev/net/tun

  如果這條指令顯示結果為下面的文本,則表明通過:

  代碼如下:

  cat: /dev/net/tun: File descriptor in bad state

  上述兩條均通過,才能安裝pptp。否則就只能考慮openvpn,或者請你的服務商來解決這個問題。

  2、安裝ppp和iptables。預設情況下,完整的CentOS是帶有這兩個組件的,但是精簡版的系統可能沒有。我們輸入下面的命令來確認,如果沒有則進行安裝,有的話系統不會做任何動作:

  #yum install -y ppp iptables

  3、安裝pptp。這個軟體在yum源裡是沒有的,我們需要手動下載。我們先切換到tmp目錄:

  #cd /tmp

  然後執行下面的命令來下載pptp安裝包:

  代碼如下:

  #wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm

  (32位系統使用)

  代碼如下:

  #wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm

  (64位系統使用)

  如果你的CentOS是32位的,則執行32位的那條指令;如果是64位的CentOS,則執行64位的那條指令。注意不要搞錯了。

  接下來安裝pptp,同樣分32位和64位系統:

  代碼如下:

  #rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

  (32位系統使用)

  代碼如下:

  #rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

  (64位系統使用)

  4、配置pptp。首先我們要編輯/etc/pptpd.conf檔案:

  代碼如下:

  #vim /etc/pptpd.conf

  找到“locapip”和“remoteip”這兩個配置項,將前面的“;”注釋符去掉,更改為你期望的IP段值。localip表示伺服器的IP,remoteip表示分配給用戶端的IP地址,可以設定為區間。這裡我們使用pptp預設的配置:

  代碼如下:

  localip 192.168.0.1

  remoteip 192.168.0.234-238,192.168.0.245

  注意,這裡的IP段設定,將直接影響後面的iptables規則添加命令。請注意匹配的正確性,如果你嫌麻煩,建議就用本文的配置,就可以一直複製命令和文本使用了。

  接下來我們再編輯/etc/ppp/options.pptpd檔案,為VPN添加Google DNS:

  代碼如下:

  #vim /etc/ppp/options.pptpd

  在末尾添加下面兩行:

  代碼如下:

  ms-dns 8.8.8.8

  ms-dns 8.8.4.4

  5、設定pptp VPN帳號密碼。我們需要編輯/etc/ppp/chap-secrets這個檔案:

  代碼如下:

  #vim /etc/ppp/chap-secrets

  在這個檔案裡面,按照“使用者名稱 pptpd 密碼 *”的形式編寫,一行一個帳號和密碼。比如添加使用者名稱為test,密碼為1234的使用者,則編輯如下內容:

  代碼如下:

  test pptpd 1234 *

  6、修改核心設定,使其支援轉寄。編輯/etc/sysctl.conf檔案:

  代碼如下:

  #vim /etc/sysctl.conf

  將“net.ipv4.ip_forward”改為1,變成下面的形式:

  代碼如下:

  net.ipv4.ip_forward=1

  儲存退出,並執行下面的命令來生效它:

  代碼如下:

  #sysctl -p

  7、添加iptables轉寄規則。

  代碼如下:

  iptables -t nat -A POSTROUTING -s 192.168.85.0/24 (PPTP用戶端IP)-j SNAT --to 192.168.0.105(要轉寄出公網的IP)

  然後我們輸入下面的指令讓iptables儲存我們剛才的轉寄規則,以便重啟系統後不需要再次添加:

  代碼如下:

  #/etc/init.d/iptables save

  然後我們重啟iptables:

  代碼如下:

  #/etc/init.d/iptables restart

  8、重啟pptp服務。輸入下面的指令重啟pptp:

  代碼如下:

  #/etc/init.d/pptpd restart

  現在你已經可以串連自己的VPN並瀏覽網頁了。不過我們還需要做最後的一步。

  9、設定開機自動運行服務。我們最後一步是將pptp和iptables設定為開機自動運行,這樣就不需要每次重啟伺服器後手動啟動服務了。當然你不需要自動啟動服務的話可以忽略這一步。輸入指令:

  代碼如下:

  #chkconfig pptpd on

  #chkconfig iptables on

  這樣就大功告成了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.