PPTP 的配置主要有下面五個步驟:
驗證核心是否載入了 MPPE 模組
安裝所需的軟體包
配置 PPP 和 PPTP 的設定檔
開啟核心的 IP 轉寄功能
啟動 pptpd 守護進程
配置 iptables 防火牆允許存取和轉寄規則
詳細步驟
1.驗證核心是否載入了MPPE模組:
基本都安裝過了,所以略過
2.安裝所需的軟體包:
ppp
PPTP 使用 PPP 協議對使用者資料進行封裝,然後將 PPP 資料幀封裝在 IP 資料報裡,經由 IP 網路傳播。因此首先需要支援 PPP 協議,下面命令安裝 ppp:
yum install -y ppp
pptpd
有了 PPP 協議支援,接下來安裝 pptpd。 首先到 這裡 找到最新版適合你的平台的 pptpd。然後還需要根據核心選擇 32 位或者 64 位元的包。 找到正確的軟體包以後,複製其 URL,然後用 wget 下載到 root 的家目錄(或者用 rpm -ivh URL 直接安裝也行)。譬如我的 64 位元核心 CentOS ,使用下面命令下載:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm
3.配置
ppp
配置 ppp 需要編輯它的兩個設定檔,一個是 option(選項)檔案,一個是使用者賬戶檔案。 首先編輯 option 檔案:
vim /etc/ppp/options.pptpd
尋找ms-dns
修改:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
接下來修改另一個,儲存著使用者賬戶的檔案:
vim /etc/ppp/chap-secrets
這個檔案非常簡單,其中用明文儲存 VPN 用戶端的使用者名稱、服務名稱、密碼和 IP 位址範圍,每行一個賬戶:
username1 pptpd passwd1 *
username2 pptpd passwd2 *
其中第一第三列分別是使用者名稱和密碼; 第二列應該和上面的檔案 /etc/ppp/options.pptpd 中 name 後指定的服務名稱一致; 最後一列限制用戶端 IP 位址,星號表示沒有限制。
pptpd
vim /etc/pptpd.conf
修改如下兩行
localip 192.168.0.1
remoteip 192.168.0.207-217
兩行是比較重要的兩行。VPN 可以這樣理解,Linux 用戶端使用一個虛擬網路裝置 ppp0(Windows 用戶端也可以理解成 VPN 虛擬網卡),串連到伺服器的虛擬網路裝置 ppp0 上,這樣用戶端就加入了伺服器端 ppp0 所在的網路。 localip 就是可以分配給伺服器端 ppp0 的 IP 位址,remoteip 則是將要分配給用戶端 ppp0 (或者虛擬網卡)的。
這兩項都可以是多個 IP,一般 localip 設定一個 IP 就行了,remoteip 則視用戶端數目,分配一段 IP。其中 remoteip 的 IP 段需要和 localip 的 IP 段一致。
localip 和 remoteip 所處的 IP 段可以隨意些指定,但其範圍內不要包含實際網卡 eth0 的 IP 位址。 一般情況下,使用上面設定檔中的配置就好使了,你需要做的只是把 192.168.0.207-217這個 IP 區間修改成你喜歡的 192.168.0.a-b,其中 1<a<b<255。
4.開啟核心ip轉寄功能
要使 VPN 伺服器可以作為網路請求的中轉代理,能夠使用戶端通過 VPN 訪問 Internet,還需要開啟核心的 IP 轉寄功能。可以編輯設定檔:
vim /etc/sysctl.conf
找到其中的行:
net.ipv4.ip_forward = 0
修改為
net.ipv4.ip_forward = 1
然後執行下面命令使上述修改生效:
sysctl -p
5.啟動pptpd 守護進程
上面配置完成後,就可以啟動 pptpd 進程並設定自動啟動了
/etc/init.d/pptpd start
chkconfig --level 35 pptpd on
串連之後如果需要使用者上網,還需要設定NAT,ip轉寄
在linux伺服器上使用iptables,如下:
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to xxx.xxx.xxx.xxx
# xxx.xxx.xxx.xxx 是你的ip
然後配置一下
還有關於iptable的配置,此處不多說了,參考如下:
此處我測試直接關閉了service iptables stop