88344556 2014-07-26
CentOS 6.4 搭建 PPTP VPN的大致步骤:
1.先检查vps是否满足配置pptp vpn的环境。
2.接着是安装配置pptp vpn的相关软件,安装ppp。
3.配置安装好后的pptp软件,这个不像windows那样,安装的过程就是配置的过程。linux的要安装完之后,修改配置文件,才算是完成配置。
4.启动pptp vpn 服务。
5.开启内核和iptables的转发功能。
#########################################
第一步:检测是否符合pptp的搭建环境的要求
服务器版本:CentOS 6.4
如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:
#modprobe ppp-compress-18 && echo ok
这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:
#cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state
上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请你的服务商来解决这个问题。
注意:如果你显示的不是这个文本,而是别的,可能显示的就不一样,这是版本问题,(如你安装的简体中文可能就会出现error之类的一句话。)
CentOS 6.4内核版本在2.6.15以上,都默认集成了MPPE和PPP,因此下面检查可以忽略:
#rpm -q ppp //查询当前系统的ppp是否默认集成了,以及ppp的版本
检查PPP是否支持MPPE
用以下命令检查PPP是否支持MPPE:
#strings ‘/usr/sbin/pppd’ |grep -i mppe | wc –lines
如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。
第二步:
1.安装ppp和iptables
PPTPD要求Linux内核支持mppe,一般来说CentOS安装时已经包含了
#yum install -y perl ppp iptables //centos默认安装了iptables和ppp
2.安装pptpd
对于32位CentOS,执行
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
对于64位CentOS,执行
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm
64位安装的时候如果出现:
warning: pptpd-1.3.4-2.rhel5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY
error: Failed dependencies:
ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64
原因是pptpd与PPP不兼容,下载pptpd-1.3.4-2.el6.x86_64.rpm安装即可。
这里我分享下pptpd-1.3.4-2.el6.x86_64.rpm的下载地址:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2014年资料/7月/26日/CentOS 6.4 安装配置 PPTP VPN
------------------------------------------分割线------------------------------------------
32位安装的时候也会提示上面的信息,自己去下载对应的版本
看到有人建议用–nodeps –force 这个参数,我个人不建议,这个参数可能以后会出现奇怪的问题
注意,我用的是64位,我先用的是32位做过一遍,但就是不成功配置文件都快叫我改烂了,还是不行,但我用64位做的时候,一下就成功了,我不知道是不是我配置有问题。
第三步:修改配置文件
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-dns 8.8.8.8
ms-dns 8.8.4.4
解析:ms-dns 8.8.8.8, ms-dns 8.8.4.4是使用google的dns服务器。
注意:如果虚拟机内核不支持MPPE的话,无法使用加密,用WINDOWS默认VPN连接会显示“证书信任错误”。
解决方法:修改/etc/ppp/options.pptpd注释掉require-mppe-128这行,然后windows的vpn拨号的属性改为可选加密,再次连接就成功了。
2.配置文件/etc/ppp/chap-secrets
#mv /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 pptpd mypassword * //myusername是你的vpn帐号,mypassword是你的vpn的密码,*表示对任何ip,记得不要丢了这个星号。我这里根据这个格式,假设我的vpn的帐号是ksharpdabu,密码是 sky。那么,应该如下:
ksharpdabu pptpd sky *
3.配置文件/etc/pptpd.conf
#mv /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的范围
ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64
4.配置文件/etc/sysctl.conf
将“net.ipv4.ip_forward”改为1:
net.ipv4.ip_forward=1
同时在“net.ipv4.tcp_syncookies = 1”前面加# :
# net.ipv4.tcp_syncookies = 1
保存退出,并执行下面的命令来生效它:
sysctl -p