簡介
×××(Virtual Private Network,虛擬專用網絡)是專用網絡的延伸,它能夠經過共享Internet或公共網絡鏈接模擬點對點專用鏈接的方式,在本地計算機和遠程計算機之間發送數據。 它具備良好的保密性和不受干擾性,使雙方可以進行自由而安全的點對點鏈接。
Linux下經常使用的×××服務有兩個,一個是pptp,另外一個則是open***。前者更簡單一些,可是隻有獨立服務器和XEN VPS能夠搭建;後者則沒有任何限制。前者搭建出來的×××,不須要特殊的×××客戶端,直接在Windows下建立×××撥號鏈接便可;然後者須要安裝一個客戶端來進行撥號
PPTP,即PPTF協議。該協議是在
PPP協議的基礎上開發的一種新的加強型
安全協議,支持多協議
虛擬專用網(×××),能夠經過密碼
身份驗證協議(PAP)、可擴展身份驗證協議(EAP)等方法加強安全性。可使遠程用戶經過撥入ISP、經過直接鏈接Internet或其餘網絡安全地訪問企業網。
1、實驗環境
服務器版本:CentOs 5.6
×××服務器:eth0=192.168.0.10 eth1=10.0.0.1
內網IP地址:10.0.0.1 外網IP地址:192.168.0.10
客戶端地址:192.168.0.200
2、服務端配置
一、檢查服務器是否支持
若是檢查結果沒有這些支持的話,是不能安裝pptp的。執行指令:
[root@localhost ~]# modprobe ppp-compress-18 && echo ok
Ok
結果顯示「OK」則表示經過
[root@localhost ~]# cat /dev/net/tun
若是輸出如下文本,則代表經過:
cat: /dev/net/tun: File descriptor in bad state
二、安裝PPTP服務
[root@localhost ~]# tar xvf pptpd-1.3.1.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/pptpd-1.3.1/
[root@localhost pptpd-1.3.1]# ./configure --prefix=/usr/local/pptpd-1.3.1 --enable-bcrelay --with-libwrap
[root@localhost pptpd-1.3.1]# make
[root@localhost pptpd-1.3.1]# make install
確認安裝完成
[root@localhost ~]# ll /usr/local/pptpd-1.3.1/
如下配置爲解決版本報錯問題
[root@localhost plugins]# pwd
/usr/local/src/pptpd-1.3.1/plugins
[root@localhost plugins]# mv pptpd-logwtmp.so pptpd-logwtmp.so_bak
[root@localhost plugins]# sed -i 's/2\.4\.3/2\.4\.4/g' patchlevel.h
[root@localhost plugins]# make
執行make後會重新生成一個pptpd-logwtmp.so 文件
[root@localhost plugins]# mkdir /usr/lib/pptpd/
[root@localhost plugins]# cp pptpd-logwtmp.so /usr/lib/pptpd/
報錯日誌(執行以上操做不錯出現此現象)
[root@localhost ~]#tailf /var/log/messages
Couldn't load plugin /usr/lib/pptpd/pptpd-logwtmp.so
Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4
三、配置PPTP服務
[root@localhost ~]# cd /usr/local/pptpd-1.3.1/
[root@localhost pptpd-1.3.1]# mkdir etc
[root@localhost pptpd-1.3.1]# cd /usr/local/src/pptpd-1.3.1/samples/
[root@localhost samples]# cp pptpd.conf /usr/local/pptpd-1.3.1/etc/
[root@localhost samples]# cp options.pptpd /usr/local/pptpd-1.3.1/etc/
[root@localhost samples]# cp chap-secrets /etc/ppp/
3.一、修改主配置文件
[root@localhost etc]# pwd
/usr/local/pptpd-1.3.1/etc
[root@localhost etc]# grep -v "^#" pptpd.conf | grep -v "^$"
option /usr/local/pptpd-1.3.1/etc/options.pptpd
debug
stimeout 30
logwtmp
localip 192.168.0.10
remoteip 10.0.0.10-20
註釋:
option /usr/local/pptpd-1.3.1/etc/options.pptpd
指定pptpd擴展屬性配置文件options.pptpd
debug是調試模式,有關pptpd的信息和錯誤都會記錄在/var/log/message中.有利於排錯 stimeout 設置客戶端鏈接pptpd server 時最長鏈接等待時間既是鏈接超時時間,單位秒。
localip 表示服務器的IP
remoteip 設置的是客戶端鏈接到pptpd server 後能夠分配置的IP地址範圍,(10.0.0.0)
3.二、修改options.pptpd
[root@localhost etc]# pwd
/usr/local/pptpd-1.3.1/etc
[root@localhost etc]# grep -v "^#" options.pptpd | grep -v "^$"
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
註釋:
注:通常只需修改ms-dns,分配給×××客戶端的DNS服務器IP地址
name pptpd 是pptpd server的名稱
refuse-pap 拒絕pap 身份驗證模式
refuse-chap 拒絕chap 身份驗證模式
refuse-mschap 拒絕mschap 身份驗證模式
require-mschap-v2 在端點進行鏈接無收時須要使用微軟的mschap-v2進行身份驗證
require-mppe-128 MPPE模塊使用128 爲進行加密
ms-dns 8.8.8.8 ppp 爲windows 客戶端提供DNS,可指定兩個DNS服務器地址
proxyarp 代理ARP代理鍵值
debug 開啓調試模式,把相應的信息記錄在/var/log/message中
lock 鎖定科幻的的PTY 設備文件
nobsdcomp 禁用BSD 壓縮模式
novj
novjccomp 禁用Van Jacobson 壓縮模式
nologfd 禁止將錯誤信息記錄到標準錯誤輸出設備
3.三、爲PPTP添加賬號密碼
[root@localhost ppp]# pwd
/etc/ppp
[root@localhost ppp]# cat chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
#username pptpd password *
test pptpd test *
3.四、啓動PPTP服務
[root@localhost ~]# /usr/local/pptpd-1.3.1/sbin/pptpd -c /usr/local/pptpd-1.3.1/etc/pptpd.conf -o /usr/local/pptpd-1.3.1/etc/options.pptpd
查看服務端口是否監聽
[root@localhost ~]# netstat -anplut | grep 1723
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 1091/pptpd
3.五、打開路由轉發功能
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 0 修改成
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
使修改的文件馬上生效
3.六、添加Iptables轉發功能
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
3、客戶端測試