第一步:检测是否符合pptp的搭建环境的要求
服务器版本:CentOs 6.4 VPS
如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:
#modprobe ppp-compress-18 && echo ok
这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:
#cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state #系统为英文版本 cat: /dev/net/tun: 文件描述符处于错误状态 #系统为简体中文版本
上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请vps空间商的技术客服为你的VPS打开TUN/TAP/PPP功能了
Cent os 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
刚才用了yum安装了ppp,但是这里有个问题,几乎大部分的人都会在这里遇到ppp和pptpd不兼容的错误。因为yum安装ppp,总是安装最新版本的ppp,而由于安装的ppp的版本不同,那么就需要安装对应版本的pptpd才行。
安装pptpd的方法是直接用yum安装,让电脑自动选择对应的版本:
先加入yum源:
#rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
然后用yum安装pptpd:
#yum install pptpd
第三步:修改配置文件
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服务器。
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 pptpd mypassword *
//myusername是你的vpn帐号,mypassword是你的vpn的密码,*表示对任何ip,记得不要丢了这个星号。我这里根据这个格式,假设我的vpn的帐号是abc,密码是 abc123。那么,应该如下:
abc pptpd abc123 *
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服务时,出现“Starting pptpd:”,一直卡着不动的问题,无法启动服务,切记呀!
4.配置文件/etc/sysctl.conf
#vi /etc/sysctl.conf //修改内核设置,使其支持转发
将net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
保存修改后的文件
#/sbin/sysctl -p
第四步:启动pptp vpn服务和iptables
#/sbin/service pptpd start 或者 #service pptpd start
启动iptables和nat转发功能,很关键的呀:
#/sbin/service iptables start //启动iptables #/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE
开启相关协议端口
#iptables -IINPUT -p tcp --dport 1723 -j ACCEPT
允许建立VPN隧道,否则无法验证用户名及密码.
#iptables -IINPUT -p gre -j ACCEPT
保存iptables
#service iptables save
重启iptables
#service iptables restart
最后一步:重启pptp vpn
#/sbin/service pptpd retart 或者 #service pptpd restart
后续步骤:设置pptp vpn 开机启动
#chkconfig pptpd on //开机启动pptp vpn服务 #chkconfig iptables on //开机启动iptables