PS:昨天因同事需求,搭建个PPTP VPN服务器做测试,以前搭建过OpenVPN,现在发现其实PPTP VPN搭建更简单,总结一下:
VPN的英文全称是“Virtual Private Network”,中文翻译是“虚拟专用网络”。虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,目前在交换机,防火墙设备或Windows等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。
虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。
PPTP全称为Point to Point Tunneling Protocol — 点到点隧道协议,是VPN协议中的一种。
一、CentOS 5.x/6.x下PPTP VPN服务器安装
1、安装相关软件包
32位版:
# yum install -y ppp libpcap iptables
# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
# rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm
64位版:
# yum install -y ppp libpcap iptables
# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm
# rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm
2、配置文件编写
①、配置文件/etc/ppp/options.pptpd
# mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
# vim /etc/ppp/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
#这里的DNS可以查看服务器本机使用的DNS地址。
②、配置文件# /etc/ppp/chap-secrets
# mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
# vim /etc/ppp/chap-secrets
输入以下内容
# Secrets for authentication using CHAP
# client server secret IP addresses
myusername pptpd mypassword *
注:这里的myusername和mypassword即为PPTP VPN的登录用户名和密码, 改成你自己的。
③、配置文件/etc/pptpd.conf
# mv /etc/pptpd.conf /etc/pptpd.conf.bak
# vim /etc/pptpd.conf
输入以下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.80.1
remoteip 192.168.80.11-30
注:为拨入VPN的用户动态分配192.168.80.11~192.168.80.30之间的IP
④、配置文件/etc/sysctl.conf
# vim /etc/sysctl.conf
修改以下内容:
net.ipv4.ip_forward = 1
保存、退出后执行:
sysctl -p
3、启动PPTP VPN 服务器端:
# /etc/init.d/pptpd start
4、设置iptables规则并重启:
# vim /etc/sysconfig/iptables
加入下列规则:
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
-A POSTROUTING -s 192.168.80.0/255.255.255.0 -o eth0 -j MASQUERADE
重启防火墙:
# /etc/init.d/iptables start
二、Win7下PPTP VPN客户端设置
1、VPN客户端拨入时出现721错误:
这种情况大数多原因为客户系统,如果为WINXP并且安装了SP2,则可能会出现这种情况,解决方法为:修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\,其中其中 是 WAN 微型端口 (PPTP) 驱动程序的网络适配器,在此项中新建一个DWORD 值ValidateAddress,然后设置为0即可。
服务器端PPP协议配置不正确也会导致此类错误。
2、VPN客户端拨入时出现800错误:
这种情况大数多原因为客户系统连接服务器时使用域名,因临时DNS无法解析而出现这种错误,可更换DNS试一下,如果还是出错此类错误,则可能是无法连接到VPN服务器,可能是VPN服务器关闭或出现故障,也可能是客户电脑上的防火墙阻止了VPN连接请求,可关闭防火墙试一下。
有些使用中转服务器连接到VPN服务器的客户端,也可能出现此类错误,原因为中转服务器中转功能出现故障。
3、VPN客户端拨入时出现619错误:
这种情况大数多原因为客户机连接Internet的网关(如家庭宽带路由或公司上网网关路由或防火墙)NAT-T功能关闭或对VPN支持性不好,主要是对GRE及PPTP协议的NAT-T不支持。可打开网关路由的NAT-T功能,如果还是出现错误,则需要更换网关设备,现在市面上大多数设备已经支持。
4、VPN客户端拨入时出现691错误:
这种情况大数多原因为客户机连接VPN服务器异常中断,因多数服务器限制一个帐户同时只有一个人使用,所以一旦异常断开,则需等待3分钟左右。有些VPN服务器没有设置异常断线检查功能也可能导致用户一旦异常断开后很长时间不能连接。所以解决办法为在服务器上设置异常断线检查程序或功能。
5、VPN客户端拨入时出现733错误:
这种情况大数多原因为客户机拨入VPN服务器后无法获取IP地址,可修复DHCP服务器或设置静态IP地址或地址池。
6、VPN客户端拨入时出现734 ppp链接控制协议终止:
这种情况多数为VPN服务器配置有问题,如果是PPP配置有问题,不支持MPPE加密或支持度不好。请重新编译PPP及MPPE相关程序。对于用于游戏代理的用户,可不使用加密(需在服务器端不要求加密)。
7、VPN客户端拨入时出现718错误:
拨入时用户名和密码出错误,有时也因为服务器端认证服务出现故障。