关于CentOS6.5配置PPTP VPN的方法
因为经常需要查阅一些开发相关的资料,由于GWF作梗,很多国外的网站访问不了。百度搜索有时候又找不到自己想要的资料,无奈之下买了个VPS,并且自己手动搭建了PPTP VPN。从此,妈妈再也不要担心我上不了谷歌了。
言归正传,相信很多人对搭建VPN有需要,而网上很多资料又不是很全,往往按照步骤走下来,搭建VPN还是失败。结合自己的搭建心得,做个搭建PPTP VPN的详细记录,供自己日后参考,也供有需要的朋友借鉴。
第一步:检测是否符合PPTP的搭建环境的要求:
本机的CentOS服务器(64位)版本信息为:CentOS release 6.4(Final),如下图所示:
开始搭建VPN之前的环境检测步骤,执行以下的命令,如果检查结果没有相关支持的话,是不能安装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功能了,貌似有部分vps控制面板上提供打开TUN/TAP/PPP功能的按钮。
第二步,安装ppp和iptables
PPTPD要求Linux内核支持mppe,一般来说CentOS安装时已经包含了。CentOS默认安装了iptables和ppp,我们要先查看已经安装的ppp的版本,再去找对应的pptpd版本。ppp版本查看命令如下:
#rpm -q ppp // 查询当前系统的ppp是否默认集成了,以及ppp的版本
得到如下图所示结果:
ppp和pptpd各个版本下载地址:http://poptop.sourceforge.net/yum/stable/packages/。在这里一定要下载ppp对应的pptpd版本,不然会出错。我所需要下载的版本为pptpd-1.4.0-1.el6.x86_64.rpm,下载及安装命令如下:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm
如下图所示:
第三步,修改配置文件:
1.配置文件/etc/ppp/options.pptpd,命令如下所示:
#cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak #vi /etc/ppp/options.pptpd
将如下内容添加到options.pptpd中:
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
如下图所示:
client处是VPN账号,server处是pptpd,secret处是VPN的密码,IP address处填上*(星号表示对任意IP,记住不要丢了这个星号。)
3.配置文件/etc/pptpd.conf,命令如下所示:
#cp /etc/pptpd.conf /etc/pptpd.conf.bak #vi /etc/pptpd.conf
添加如下两行:
localip 192.168.1.1 remoteip 192.168.1.10-50 //表示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
在这里要注意一点,执行上面命令,可能会出错。具体的解决方案如下:
/*********************************************************************************************
sysctl -P 报错解决办法
问题症状
修改 linux 内核文件
#vi /etc/sysctl.conf后执行sysctl -P 报错
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解决方法如下:
modprobe bridge
lsmod|grep bridge
**************************************************************************/
如下图所示:
第四步,启动pptp vpn服务和iptables
启动pptp vpn的命令如下:
#/sbin/service pptpd start 或者 #service pptpd start
经过前面步骤,我们的VPN已经可以拨号登录了,但是还不能访问任何网页。最后一步就是添加iptables转发规则了。我的规则如下:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.1/24 -j SNAT --to-source XXX.XXX.XXX.XXX (填写自己的VPS网卡IP) iptables -I INPUT 1 -p gre -j ACCEPT iptables -I INPUT 1 -p tcp -m tcp --dport 1723 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT (一般不执行,防火墙默认设置) iptables -A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT iptables -A FORWARD -d 192.168.0.0/24 -i eth0 -j ACCEPT
我的规则如下图所示:
注意上面规则添加中的eth0这个是网卡,不同的电脑是不相同的,可以使用命令ifconfig查看得到。规则添加完毕之后,就是启动iptables了。命令如下:
service iptables start
最后,我们可以设置pptpd和iptables随系统自启动。命令如下图所示:
chkconfig pptpd on
chkconfig iptables on
到此为止,PPTP VPN就配置完成了,如果遇到其他问题,请自行谷歌或者百度。对于iptables的配置没有具体解释,我给的配置是完全可行的,网上给的很多配置不能使用。具体解释可以参照iptables相关规则说明。
参考链接:http://www.dabu.info/centos6-4-structures-pptp-vpn.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。