
因为以下指令输出为“”则认为不支持;输出为“30”或更大的数字就认为支持,MPPE(Microsoft Point toPoint Encryption,微软点对点加密)。
1.安装ppp和iptables
PPTPD要求Linux内核支持mppe,一般来说CentOS安装时早已涵盖了
?p=2178
#yum install -y perl ppp iptables//centos默认安装了iptables和ppp
刚才用了yum安装了ppp,所以这儿有个难题,几乎大部分的人就会在这里遇到ppp和pptpd不兼容的错误。因为yum安装ppp,总是安装最新版本的ppp,而由于安装的ppp的版本不同,所以就需要安装相应版本的pptpd才行。我的版本是pptpd-1.4.0-1.el6.x86_64。
我们要先察看已经安装的ppp的版本,在去找对应的pptpd版本。我手头刚好有两个vps,一个是前年装的pptpvpn,一个是一年后装的pptp vpn,但是,装的yum install ppp的版本不同。
使用上面的指示察看ppp的版本,前提你是yum安装的ppp。
旧的vps上的ppp版本表明:
#yum list installed ppp
显示:
ppp.i3862.4.4-2.el5installed
新的vps上的ppp版本表明;
#yum list installed ppp
显示:
ppp.i6862.4.5-5.el6@base
如果,要对按照ppp版本选择对应的pptpd版本。这里我主要罗列常见的。
ppp2.4.4——————>pptpd 1.3.4
ppp2.5.0——————>pptpd 1.4.0
你们下载的时候切记,分清楚你功能的版本是64位的还是32位的。我个人建议ppp用yum安装,pptpd用rpm的安装,因为即使全都rpm或者代码安装,依赖关系很是烦人。文件名含有数字64的就是64位版本,没有的就是32位版本。可以用上面的指示察看自己的功能是32位还是64位的。
#getconf LONG_BIT
上面假设我这儿的ppp是2.4.4版本,然后安装pptpd
第一种安装pptpd的方式是直接用yum安装pptp mtu 默认值,让手机自动选择对应的版本:
先加入yum源:

#rpm -Uvh
然后用yum安装pptpd:
#yum install pptpd
这是最省时间和气力的。余下的和手动安装没怎么差别了。
第二种是手动安装pptpd包:
对于32位CentOS,执行
wget
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
对于64位CentOS,执行
wget
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm
这里贴上32位的pptpd的rpm的下载地址:
warning: pptpd-1.3.4-2.rhel5.x86_64.rpm: Header V3 DSA/SHA1Signature, key ID 862ac2: NOKEY
error: Failed dependencies:
ppp = 2.4.4 is needed bypptpd-1.3.4-2.rhel5.x86_64
原因是pptpd与PPP不兼容,所以,此时用#yum listinstalled ppp命令察看ppp版本,极有可能ppp是2.4.5版本的。所以,我们要下载pptp1.4.0版本才行,但是这里是64位的功能。下载pptpd-1.4.0-1.el6.x86_64.rpm安装即可。这就是我说的出现版本不兼容的难题,当ppp版本和pptpd版本不兼容时候,都会出现相似的错误。
看到有人建议用--nodeps --force这个参数,我个人不建议,这个参数估计以前会出现奇怪的难题,所以因为实在不行,你就用吧
第三步:修改配置文档
1.配置文档/etc/ppp/options.pptpd
#mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
#vi /etc/ppp/options.pptpd
options.pptpd内容如下:
name pptpd
refuse-pap

refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns8.8.8.8
ms-dns8.8.4.4
解析:ms-dns 8.8.8.8, ms-dns 8.8.4.4是使用google的dns服务器。
2.配置文档/etc/ppp/chap-secrets
#cp /etc/ppp/chap-secrets/etc/ppp/chap-secrets.bak
#vi /etc/ppp/chap-secrets
chap-secrets内容如下:
# Secrets for authentication using CHAP
# client server secret IP addresses
myusername pptpdmypassword*
//myusername是你的vpn账号,mypassword是你的vpn的密钥,*表示对任何ip,忘记不要丢了这个星号。我这儿按照这个文档,假设我的vpn的账号是ksharpdabu,密钥是sky。那么,也是如下:
ksharpdabu pptpd sky*
3.配置文档/etc/pptpd.conf

#cp /etc/pptpd.conf /etc/pptpd.conf.bak
#vi /etc/pptpd.conf
pptpd.conf内容如下:
option/etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30 //表示vpn客户端获得ip的范围
关键点:pptpd.conf这个配置文档必须确保最终是以空行结尾才行,如果会导致启动pptpd服务时,出现“Startingpptpd:”,始终卡着不动的难题,无法启动服务,注意呀!(相关文件可以察看:Startingpptpd: 运行不下去的因素)
ppp = 2.4.4 isneeded by pptpd-1.3.4-2.rhel5.x86_64
4.配置文档/etc/sysctl.conf
#vi /etc/sysctl.conf//修改内核设置,使其支持转发
将net.ipv4.ip_forward =改成net.ipv4.ip_forward = 1
保存修改后的文档
#/sbin/sysctl -p
第四步:启动pptp vpn服务和iptables
#/sbin/service pptpd start 或者 #service pptpd start
经过前面步骤,我们的VPN已经可以拨号登陆了,所以还不能访问任何插件。最后一步就是添加iptables转发规则了,输入上面的命令:
启动iptables和nat转发功能,很关键的呀:
#/sbin/service iptables start //启动iptables
#/sbin/iptables -t nat -A POSTROUTING -o eth0 -s192.168.0.0/24-jMASQUERADE或者使用上面的一种:
#iptables -t nat -A POSTROUTING -o eth0-s192.168.0.0/24-jSNAT--to-source207.210.83.140//你需要将207.210.83.140替换成你的vps的公网ip地址,因为这儿我写的是我的。还有就是有人说我这--to-source前只有一个横杠,当然是有两个横杠的。文章在编辑模式下表明是两个横杠,因为用的是中文输入法,但是,刊登后就成为了一个横杆,但是在代码下复制粘贴也是一横,只有在编辑模式下才能看清楚是两横。但是可以明显看见to后面的那一横比source前的那横长一些,这种都是我操作记录下的指示,不会有错的。为了避免他们出错,我还是用不同的色彩标记吧。
这里我先前写的不是很具体pptp mtu 默认值,现在补上:
#/etc/init.d/iptables save //保留iptables的转发规则
#/sbin/service iptablesrestart//重新启动iptables

我是直接关掉防火墙 反正肯定vps 无所谓
最后一步:重启pptpvpn
#/sbin/service pptpd retart或者 #service pptpdrestart
#############################################3
客户端如何拨号登录vpn,我就不写了,你们可以自行google,因为功能那么多,我不应该xp,win7,centos,mac之类的每位都写,即便网上一大堆,只要你pptpvpn服务器搭建好了,客户端登陆的选择就是简单的事。如果这个也不知道,那我就只能了,自己动手吧。
多余的流程:增设pptp vpn 开机启动
有的人懒的重启后手动开启服务,但是上面我再补上开机自动启动pptp vpn 和 iptables的指示
#chkconfig pptpd on//开机启动pptp vpn服务
#chkconfig iptables on //开机启动iptables
这句话一定要加才能连上
iptables -t nat -A POSTROUTING -o eth0 -s192.168.0.0/24 -j MASQUERADE
网速慢用这个
/sbin/iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS--set-mss 1356
iptables -A FORWARD -p tcp --syn -s 10.87.200.0/31 -j TCPMSS--set-mss 1356
设置防火墙规则
服务构建成功,所以dns老是出难题,找了好多文件,最终找出了防火墙设置规则
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -jMASQUERADE
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
/sbin/iptables -F FORWARD
/sbin/iptables -A FORWARD -p udp -s192.168.0.0/24--dport53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s192.168.0.0/24--dport1723 -j ACCEPT
/sbin/iptables -A FORWARD -p gre -s192.168.0.0/24-jACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -jACCEPT
(172.16.0.0/16)是自己之前设置的ip
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-118988-1.html
活在光环中的女人
实际打起来还不得不考虑美国因素
烊烊加油