PPTP ***配置
简介
×××(Virtual Private Network,虚拟专用网络)是专用网络的延伸,它可以通过共享Internet或公共网络连接模拟点对点专用连接的方式,在本地计算机和远程计算机之间发送数据。 它具有良好的保密性和不受干扰性,使双方能够进行自由而安全的点对点连接。
Linux下常用的×××服务有两个,一个是pptp,另一个则是open***。前者更简单一些,但是只有独立服务器和XEN VPS可以搭建;后者则没有任何限制。前者搭建出来的×××,不需要特殊的×××客户端,直接在Windows下创建×××拨号连接即可;而后者需要安装一个客户端来进行拨号
PPTP,即PPTF协议。该协议是在
PPP协议的基础上开发的一种新的增强型
安全协议,支持多协议
虚拟专用网(×××),可以通过密码
身份验证协议(PAP)、可扩展身份验证协议(EAP)等方法增强安全性。可以使远程用户通过拨入ISP、通过直接连接Internet或其他网络安全地访问企业网。
一、实验环境
服务器版本: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
二、服务端配置
1、检查服务器是否支持
如果检查结果没有这些支持的话,是不能安装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
2、安装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
3、配置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.1、修改主配置文件
[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.2、修改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.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.4、启动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.5、打开路由转发功能
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 0 修改为
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
使修改的文件立刻生效
3.6、添加Iptables转发功能
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
三、客户端测试